AMD and Nvidia each have more specialized tricks up their sleeves that each side hopes will give it an edge with VR developers, however.
AMD’s asynchronous shaders
AMD’s proud of the Asynchronous Compute Engine hardware baked into the GCN GPU architecture that current-gen Radeons are built around, which allow greater flexibility for running compute and graphics tasks concurrently. The Oculus Rift’s “Asynchronous Timewarp” feature can take particular advantage of AMD’s async shaders.
“Asynchronous Timewarp is a technique that generates intermediate frames in situations when the game can’t maintain frame rate,” according to Oculus. Basically, Timewarp checks your headset’s position right before displaying an image, and if your head position’s moved since the last frame was rendered, Timewarp will slightly adjust the image to match your current orientation, “which would obviously reduce judder,” according to Faiz. In other words, Timewarp helps compensate for latency issues that could otherwise make you puke.
This video from 2014 does a great job explaining Timewarp in detail.
The dedicated Asynchronous Compute Engine hardware in Radeon GPUs let AMD graphics cards perform Timewarp calculations without disturbing the main graphics pipeline—an advantage when keeping new frames flowing mere milliseconds apart can mean the difference between a magical VR experience and a nausea-filled one.
“Performance will be consistent because you’re not using the graphics rendering pipeline to do the same work, and it’ll also be very efficient, and very quick,” says Faiz. “There are other ways to do it, but with Radeon, you have dedicated hardware to do this compute work. We’ve see great benefits to having this dedicated hardware compared to [a software technique called] ‘preemption,’ where you pause the graphics pipeline, do this compute work, then you pause, then you resume.” That’s what GeForce cards, which lack dedicated asynchronous shader hardware, have to do.
Support for AMD’s asynchronous hardware is baked into Oculus’ SDK, “which means all applications will take advantage of this once Timewarp is active,” says AMD’s Antal Tungler. Yay!
Nvidia’s multi-res shading
Nvidia’s VRWorks tools are already integrated into many of the engines being used to build VR experiences, including Unity Engine, Max Play, Unreal Engine, and “others not announced yet,” according to Nvidia’s Burke. The major feature you want to pay attention to there is Nvidia’s multi-res shading, which we covered when the technology was originally unveiled. “We believe multi-res shading is a game changer for VR applications,” says Burke.
Multi-res shading takes advantage of the way GPUs render images to drastically reduce the performance needed to power VR scenes. Graphics cards spit out images as a straight-ahead, flat scene—what you’d see on a standard monitor. VR headsets, however, rely on a pair of over-the-eye lenses to push the focal point of scenes out into the distance, scrunching the edges of rendered environments together into an oval shape to make them appear correctly when viewed through the lenses. Like this!
Sign up for Computerworld eNewsletters.