For Headset Developers

oculus rift high res consumer edition (9)

VR SLI and multi-res shading are features targeted mainly at developers building engines for VR games. But GameWorks VR also includes a few more low-level features designed for VR headset developers to take advantage of in their own platform software.

Direct Mode and Front Buffer Rendering

Anyone who’s worked with a VR headset has probably had the experience of their system naively treating it like just another monitor: extending the desktop onto it, randomly moving application windows to it, causing screen flashes when you plug it in, and so on. But a VR headset isn’t just another monitor, and treating it as such just creates unnecessary friction for users.

With Direct Mode, the display driver recognizes a headset when it’s plugged in and hides it from the operating system, preventing all those user-experience problems while still allowing VR apps to render to the headset. This also has some handy side effects: we can ensure we’re always in fullscreen-exclusive mode on the headset without any interference from the OS, and we can offer VR headset developers precise control over frame queuing and vsync behavior. That not only improves the user experience, it helps ensure that the latency between rendering and display scan-out is as low as possible.

Another benefit of Direct Mode is that we can expose the ability to render directly to the front buffer—i.e. the buffer currently being scanned out to the display. Although it takes advanced low-level know-how to make use of this feature, it can help reduce latency still further, using tricks like rendering during vblank or racing the beam.

SEE ALSO
Meta Releases 'Horizon Hyperscape' for Quest 3, Letting You Explore (and maybe eventually upload) Photorealistic Places

Context Priorities

To provide the most comfortable VR experience, games would ideally run perfectly consistently at 90 FPS, never missing a single frame. Unfortunately, with multitasking operating systems, memory paging, background streaming, and so forth, there are a lot of things going on that can cause even a perfectly optimized game to occasionally stutter or hitch. Missed frames are annoying even when playing on a regular screen, but in VR they’re incredibly distracting and even sickening.

To help fight this problem, we enable the option to create a special high-priority D3D11 device in our driver. When work is submitted to this device, it preempts whatever else is running on the GPU, switches to the high-priority context, then goes back to what it was originally doing afterward. This supports features like async timewarp, which can re-warp the previous frame if a game ever stutters or hitches and doesn’t deliver a new frame on schedule.


That’s GameWorks VR! NVIDIA is really excited about the future of virtual reality, and is working hard to bring the fastest GPUs and best tools for developers to build amazing VR experiences. For developers interested in receiving our SDK, they can learn more and register at developer.nvidia.com/vr.


Gameworks VR Community Q&A

1
2
3
4

This article may contain affiliate links. If you click an affiliate link and buy a product we may receive a small commission which helps support the publication. More information.


Based in the UK, Paul has been immersed in interactive entertainment for the best part of 27 years and has followed advances in gaming with a passionate fervour. His obsession with graphical fidelity over the years has had him branded a ‘graphics whore’ (which he views as the highest compliment) more than once and he holds a particular candle for the dream of the ultimate immersive gaming experience. Having followed and been disappointed by the original VR explosion of the 90s, he then founded RiftVR.com to follow the new and exciting prospect of the rebirth of VR in products like the Oculus Rift. Paul joined forces with Ben to help build the new Road to VR in preparation for what he sees as VR’s coming of age over the next few years.
  • Roy

    Link to page two not working…

    • Paul James

      Sorry about that – fixed across the board.

  • WadeWatts

    I am super excited for this. As a developer I want to support the highest quality VR experience for users of my VR game. Do you have BETA access for VR developers and if so how do I sign up?

    • Adored

      You should contact AMD about LiquidVR as that’s what everybody else is doing. Nvidia is at least a year behind here and probably more.