Nvidia GameWorks VR Multi-Res Shading And Other Parlor Tricks

As the countdown continues to serious, first generation, flagship-level virtual reality (see: HTC/Valve Vive, Q4 2015; Oculus Rift, Q1 2016), the companies making the serious graphics processing hardware to power it all are jockeying for pre-eminence, each taking turns laying claim to the rendering brawn in the forgotten boxes conveniently hidden for those mind-blowing VR demos, and then touting the sophisticated brains still required to eke out every last microsecond of latency. Better that minds are blown than chunks, as it were.

We know plenty about the Nvidia GeForce and AMD Radeon brawn. A little more now (see our Nvidia GeForce GTX 980 Ti review), and even more soon enough (Fiji bound, anyone?). As for the brains, late last year Nvidia provided details on VR Direct, early this year AMD rolled out Liquid VR, and it all sounded eerily similar, suggesting perhaps a strong bit of guidance from the likes of Oculus.

Now comes Nvidia's GameWorks VR, a collection of technology initiatives for VR game developers and headset makers to make VR games perform better. It's a subset of the overall Nvidia GameWorks development tools and libraries.

Nvidia has provided several details behind GameWorks VR, specifically related to image manipulation. For those who've tried on a VR headset, you know that it is, for all practical purposes, a completely immersive experience with a very wide field of view, accomplished by a spherical warping of light onto your eyes, pushing out focus to about 20 feet to ensure there's no eye strain. 

A warped image cannot be rendered natively, so the GPU warps the image first, squeezing the pixels on the edge of the image, while ballooning out the center, effectively gobbling up processing power only to compromise some of the fidelity of the original image geometry.


To overcome this, Nvidia employs multi-resolution shading, which is another way of saying that GPU cycles aren't spent rendering pixels you'll never see anyway. At a high level, Nvidia's technology compresses the outer edges of the image. It does so by dividing the image into nine regions, called viewports, each of which is instructed to render at a particular resolution and to remember that scaling factor. The center image (the sweet spot) might be rendered 1:1, but for the scaling at the edges changes the GPU does less work, and the performance rises. And you're none the wiser. 

For those prone to sound smart at parties, this bit of optimization using viewports makes use of Maxwell's multi-projection acceleration geometry (specifically the second-gen GM2xx GPUs). The result is delivering just enough pixel density at maximum compression, just before the warped image is visible. Nvidia claimed that it can get up to twice the pixel shader performance improvement by doing so, and that the quality difference is imperceptible. 

I was able to see some of this in action. Nvidia cranked up the compression on an image little by little, turning compression on and off for before and after views. I paid special attention to the edges of the image, and in most cases I really couldn't see any difference. It was only when Nvidia turned compression up past around 50 percent that I could see a visible blur and shake at the outer edges, something Nvidia is continuing to improve upon.

Between now and the launch of products such as the HTC/Valve Vive and the Oculus Rift, expect to see more updates from both AMD and Nvidia. Nvidia's VR Direct, like AMD's Liquid VR, includes enhancements such as Asynchronous Timewarp, which is different than the warping that multi-resolution shading provides. Michael Antonov, chief software architect at Oculus, provided a pretty good explanation of it and its downfalls here, and we discussed how it works in our overview of AMD's Liquid VR here.

Nvidia's VR Direct also includes VR SLI so that multiple GPUs can update each eye separately, but also in sync; that is, the frames aren't rendered in an alternating fashion, for hopefully obvious reasons. VR Direct also makes use of Maxwell's DSR and MFAA. And all of these settings are delivered automatically with GeForce Experience.

When consumer headsets do ship, there will be game-ready drivers, or optimized game settings, including SLI profiles for VR, all delivered through GeForce Experience. These settings are specifically customized to a user's hardware.

Follow Fritz Nelson @fnelson. Follow us @tomshardware, on Facebook and on Google+.

This thread is closed for comments
9 comments
    Your comment
  • thor220
    The problem with GameWorks is that Nvidia doesn't allow the game devs to give AMD or any other GPU vendor access to code that uses Nvidia GameWorks IP (nor give tips or hits on what that code entails, enabling to optimize it).

    With the latest GameWorks title, Project cards (and yet another disaster for AMD users) one can be certain that only Nvidia users will have an enjoyable experience with any game branded with Nvidia GameWorks.
  • Shankovich
    So this is nVidia's answer to Liquid VR I take it. Like what they're doing, very impressive, but if it's proprietary so...yea.
  • somebodyspecial
    316517 said:
    The problem with GameWorks is that Nvidia doesn't allow the game devs to give AMD or any other GPU vendor access to code that uses Nvidia GameWorks IP (nor give tips or hits on what that code entails, enabling to optimize it). With the latest GameWorks title, Project cards (and yet another disaster for AMD users) one can be certain that only Nvidia users will have an enjoyable experience with any game branded with Nvidia GameWorks.


    The problem with AMD's Mantle is it doesn't work with anyone else, so you should expect MANTLE AMD branded games to work best on them...LOL. Intel was turned down after looking to get hands on with Mantle code 4, count them FOUR times and gave up.

    I really wish whiners would stop this crap. Also note, the recent debacle with Witcher 3 and project cars is AMD's fault for not having anything to do with them until the end. IE, AMD came to Witcher3 guys in the last two months before launch asking for TressFX to be in for launch (the devs said this!) while it was clear 2+ years ago NV's hairworks crap was being worked on IN the game as it was shown in public at a show. Why didn't AMD approach them at THAT time 2yrs ago to work with them on TressFX? Then they go around whining they were denied? Well duh, you can't approach people in the last two months of POLISHING whining about major feature support. Do that approach when it's being DEVELOPED years before. The second AMD saw the wolves on screen touting NV hair, they should have made a phone call to set up some dev time for TressFX. But they didn't. Also note how badly it affects non-maxwell cards. A simple config file change fixes it in both cases anyway or likely in a patch coming up no doubt. Clearly the major amount of time was spent on maximizing the potential of maxwell performance (duh, new gen). Patches are already adding perf to older cards and AMD is releasing drivers to supposedly fix their perf (as it should!).

    Sure, if a company spends 2-3yrs working with a dev to showcase their hardware you should expect it will run great on their hardware. Both sides do it, so get over it. IF you come up with some REALLY great effects that run on your hardware excellent, that's your job and it isn't your job to share that hard work. Again, get over it.

    Quit acting like a victim (AMD needs to do this too). AMD isn't a victim, unless it's by their own choice to go after consoles, mantle etc, instead of spending ALL of that money on CPU/GPU/DX Drivers. These 3 things are why they are behind in everything. I hope they fix it with ZEN, and start acting like a survivor instead of a victim (quit whining, put out better stuff that we want to buy).

    https://steamcommunity.com/app/234630/discussions/0/613957600528900678/
    Project Cars guy asks boss if they could post what he said about AMD blaming them:
    "What can I say but he should take better stock of what's happening in his company. We're reaching out to AMD with all of our efforts. We've provided them 20 keys as I say. They were invited to work with us for years."

    "Looking through company mails the last I can see they (AMD) talked to us was October of last year."

    "We've had emails back and forth with them yesterday also. I reiterate that this is mainly a driver issue but we'll obviously do anything we can from our side."

    Golly...I guess all that NV work on DirectX 11 drivers pays off. Duh. While AMD worked on mantle, they ignored DirectX. Their last WHQL driver was Dec I think? You should get the point.

    There is more he said but those 3 pretty much say what the Witcher guys said. AMD's fault they didn't come to them. One the other side, Nvidia approached both. It isn't Nvidia's fault AMD doesn't have the cash (or is it willingness) to work with more people. It's AMD's fault for losing $6Billion in 12 years. If I started a business today, and in twelve years, my total profits was a NEGATIVE 6 BILLION dollars, I would not expect to be able to put out top tier products no matter what business I was in. Well DUH. Hats off to them for surviving this long under such terrible mismanagement. That tells you just how great the engineers are at AMD for actually putting out great hardware with basically no budget (negative budget that is). The PROBLEM is management.