Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
(Redirected from Direct Mode)

Direct mode is a way of connecting a tethered head-mounted display to a PC in which the graphics driver or operating system recognizes the headset as a VR display instead of an ordinary monitor, keeps it out of the desktop, and lets VR software render to it directly.[1][2] It replaced the earlier "extended mode", in which Windows treated the headset as one more monitor.[3]

In direct mode, the display driver treats the HMD as an entity separate from the operating system and accessible only to VR apps. It improves plug-and-play capabilities and prevents numerous UX issues that occur when the OS treats the HMD as just another monitor. It also allows HMD developers to reduce latency by giving them the control over frame queuing and vsync behavior.[4][5]

Direct mode is supported by GameWorks VR by Nvidia.[6] AMD offered a comparable feature, Direct-to-Display, in LiquidVR.[7] The Oculus PC runtime adopted a driver-level direct mode in 2015 and dropped extended mode,[8] and SteamVR added direct mode for the HTC Vive Pre in February 2016.[9] On Linux, the same idea is implemented through DRM leasing, which reached the mainline kernel in Linux 4.15, and the kernel's "non-desktop" display property.[10][11]

Reviewed 27 September 2026. Reopened every cited source and checked the dates, driver versions, quotes, Windows EDID versions and Linux DRM lease details against them. About review dates.

Extended mode and its problems

In extended mode, which the Oculus runtime supported until 2015, Windows treated the headset as a visible additional desktop monitor.[3] SteamVR used the same approach until 2016; UploadVR described it this way: "Extended Mode causes your computer to treat Vive as if it is an additional monitor and not a separate device with unique display needs."[12]

Microsoft's hardware documentation lists the resulting problems. The Windows desktop is extended to the headset, applications can launch onto it and the mouse cursor can roam onto it. Third-party VR compositors also have to present through ordinary window-based APIs, which do not give exclusive access to the display and route frames through the Windows desktop compositor, where they "can incur extra nondeterministic latency in some scenarios".[1] The Monado project gives a more basic example: without direct mode, "the left eye sees the left half of the desktop, the right eye sees the right half".[11] Road to VR reported that flashing displays when the headset was detected, desktop applications opening on the wrong display, and fullscreen compositor warnings were among the SteamVR problems that direct mode resolved.[9]

How it works

In NVIDIA's implementation, the driver recognizes when a connected display is a VR headset rather than a monitor and hides it from the operating system, so that Windows does not extend the desktop onto it or move windows onto it. VR software can then take over the display and render to it with exclusive access, without the OS compositor in the path. NVIDIA's Windows Direct Mode API also exposes video modes and vsync timing and gives control over the flip chain, so that VR software can manage the time between rendering and scan-out itself.[2] NVIDIA states that the driver treats the HMD "as a special display solely for VR applications", and that direct mode uses Context priority for control over GPU scheduling.[5]

The software that owns the headset in direct mode is normally the VR runtime's compositor. In NVIDIA's 2015 description, the Oculus and Valve software stacks each include a VR compositor process: VR apps do not present to the headset directly but submit rendered frames to the compositor, which "owns and manages the actual display". The compositor can also re-present and warp an old frame for an updated head pose when an app misses a frame, a technique known as asynchronous timewarp.[2]

NVIDIA also used direct mode to expose front buffer rendering. The front buffer is the buffer currently being scanned out to the display; rendering to it directly, with methods such as rendering during vertical blank or "racing the beam", can cut latency further but requires low-level expertise.[2] In SteamVR, direct mode also allowed the headset to go into standby, which Road to VR noted saves power and display life.[9]

AMD's Direct-to-Display in LiquidVR "bypasses the operating system and sends the result of VR rendering straight to the headset for lower latency and better compatibility". AMD exposed it in a special SDK for headset vendors, not to applications.[13]

History

Oculus runtime

The Oculus SDK 0.4.0 beta, released in July 2014 for the Oculus Rift DK2, introduced an Oculus Display Driver for Windows. According to Road to VR, it allowed direct rendering to the Rift "instead of treating the headset as a regular monitor"; this optional mode reduced latency, avoided Windows monitor settings, and could mirror the Rift's image to a window on an external monitor.[14] The display driver was Windows-only. With SDK 0.4.1 in August 2014, Oculus added Mac support, but the Mac version had no display driver and "always works in Extend Desktop mode".[15]

The Oculus PC SDK 0.7, scheduled for release on 20 August 2015, replaced this approach with "Direct Driver Mode", developed with NVIDIA and AMD. Instead of inserting VR functionality between the operating system and the graphics driver, headset awareness was added to the driver itself. Oculus removed extended mode in the same release.[8] The mode needed NVIDIA driver 355.83 or later, or AMD Catalyst driver 15.200.1062.1005 or later.[3]

GPU vendors

At the 2015 Game Developers Conference (GDC), NVIDIA's Nathan Reed and Oculus's Dean Beeler presented "VR Direct: How NVIDIA Technology is Improving the VR Experience", describing VR Direct as "a set of hardware and software technologies designed to cut down graphics latency and accelerate stereo rendering performance".[16] AMD announced LiquidVR at the same conference on 3 March 2015, listing direct-to-display "for intuitively attaching VR headsets" among its features and making an alpha of the LiquidVR SDK 1.0 available to registered developers.[7]

NVIDIA's GameWorks VR SDK, presented by Reed at SIGGRAPH 2015, listed direct mode with VR SLI, multi-resolution rendering and context priorities.[17] In a November 2015 press release, NVIDIA described direct mode as treating "VR headsets as head-mounted displays accessible only to VR applications, rather than a typical Windows monitor, providing better plug and play support and compatibility for VR headsets."[6] NVIDIA's current VRWorks developer page also lists Direct Mode.[5]

SteamVR

Valve added direct mode to a SteamVR beta in February 2016 for the HTC Vive Pre developer headset. Before this, SteamVR had used extended mode. Direct mode required NVIDIA driver 361.75 or AMD driver 1.0.3.16 or newer.[9][12]

Windows display standard

Microsoft later defined a way for headsets to identify themselves to Windows. A headset's EDID firmware can include a Microsoft vendor-specific data block (VSDB) so that Windows recognizes it from the moment it is plugged in, keeps it out of the regular desktop, and makes it available to third-party compositors through the Windows.Devices.Display.Core APIs.[1] Microsoft's documentation lists three versions of the block:[1]

Version Intended use Supported from
0x1 HMD (VR/AR) displays used by the Windows Mixed Reality experience Windows 10 version 1703
0x2 HMD (VR/AR) displays used by non-Microsoft compositors Windows 10 version 1809
0x3 Specialized displays that are not HMDs Windows 10 version 1903

The same document says VESA's DisplayID v2.0 or later is the preferred way to deliver this information for HMDs, and the VSDB should be used when a device must use an EDID.[1]

Linux

Writing in 2017, X.Org developer Keith Packard said that Valve had asked him to help with Linux graphics issues, the first being to support head-mounted displays better "by getting the window system out of the way". His plan was to "split off some of the output resources from the window system and hand them to the HMD compositor to perform mode setting and page flips".[18] In his 2017 X.Org Developer's Conference talk, Packard described a "lease" as a contract in which the X server (the "lessor") leaves a set of display resources alone while a VR application (the "lessee") sets modes and flips frame buffers on them, and takes the display back when the lease ends.[19] DRM mode object leasing "for improving VR use cases" was merged in Linux 4.15, released on 28 January 2018.[10]

The kernel marks headsets with a non_desktop connector property, a hint that "the console/desktop, should not be displayed on it".[20] The flag is set from a hard-coded EDID quirk list, from the Microsoft VSDB described above, and from a DisplayID primary-use field indicating a head-mounted VR or AR display. The quirk list in the kernel's drm_edid.c covers the Valve Index, HTC Vive and Vive Pro, Oculus Rift DK1, DK2, CV1 and Rift S, several Windows Mixed Reality headsets, PlayStation VR, and Sensics and OSVR HDK headsets.[21]

For applications, the Vulkan extension VK_EXT_direct_mode_display lets programs "take exclusive control of displays associated with a native windowing system". Its contributors were four NVIDIA engineers and Pierre-Loup Griffais of Valve, and the specification was last modified on 13 December 2016.[22] The open-source OpenXR runtime Monado uses these pieces. With the proprietary NVIDIA driver, supported headsets are hidden from X.Org by a hard-coded allowlist; with Intel and AMD drivers, the kernel's non-desktop quirk applies. Monado then acquires the display with VK_EXT_acquire_xlib_display. On Wayland, its "wayland direct" target requests the headset through the drm-lease-v1 protocol; if the compositor does not support the protocol, the headset appears as a regular monitor and Monado can be run with its plain "wayland" target instead.[11] The drm-lease-v1 protocol, still in the wayland-protocols staging area, is implemented by compositors including KWin, Mutter, Sway and Wayfire.[23]

Implementations

Platform or vendor Name First available Notes
Oculus SDK (Windows) Oculus Display Driver SDK 0.4.0, July 2014 Optional; extended mode remained available[14]
Oculus PC SDK Direct Driver Mode SDK 0.7, August 2015 Built with NVIDIA and AMD; extended mode removed[8]
Nvidia Direct Mode (in GameWorks VR, later VRWorks) 2015 Includes front buffer rendering and context priority[2][5]
AMD Direct-to-Display (LiquidVR) Announced March 2015 SDK for headset vendors, not applications[13]
SteamVR Direct mode Beta, February 2016 First offered for the HTC Vive Pre[9]
Windows 10 Microsoft HMD EDID VSDB Version 1703 (2017) Version 0x2 for third-party compositors from Windows 10 version 1809[1]
Linux kernel DRM leasing, non_desktop property DRM leasing in Linux 4.15, January 2018 Used by Monado through Vulkan and the Wayland drm-lease-v1 protocol[10][11]

See also

References

  1. ↑ 1.0 1.1 1.2 1.3 1.4 1.5 "EDID Extension for Head-Mounted and Specialized Monitors". Microsoft Learn. Microsoft. 2025-04-24. https://learn.microsoft.com/en-us/windows-hardware/drivers/display/specialized-monitors-edid-extension. Retrieved 2026-09-27.
  2. ↑ 2.0 2.1 2.2 2.3 2.4 Nathan Reed (2015). "NVIDIA GameWorks VR (SIGGRAPH 2015 slides with speaker notes)". Nathan Reed's coding blog. NVIDIA. https://www.reedbeta.com/talks/gameworks-vr/GameWorks_VR_SIGGRAPH_2015.pdf. Retrieved 2026-09-27.
  3. ↑ 3.0 3.1 3.2 Paul James (2015-08-30). "New NVIDIA and AMD Drivers Unlock 'Direct Driver Mode' for Oculus Rift Users". Road to VR. https://www.roadtovr.com/new-nvidia-and-amd-drivers-unlock-direct-driver-mode-for-oculus-rift-users/. Retrieved 2026-09-27.
  4. ↑ https://developer.nvidia.com/virtual-reality-development
  5. ↑ 5.0 5.1 5.2 5.3 "VRWorks for High-Performance VR Graphics". NVIDIA Developer. NVIDIA. https://developer.nvidia.com/VRworks. Retrieved 2026-09-27.
  6. ↑ 6.0 6.1 "NVIDIA VR Platforms Deliver Massive Performance Boost for Virtual Reality". NVIDIA Newsroom. NVIDIA. 2015-11-19. https://nvidianews.nvidia.com/news/nvidia-vr-platforms-deliver-massive-performance-boost-for-virtual-reality. Retrieved 2026-09-27.
  7. ↑ 7.0 7.1 "AMD Takes Aim at Exceptional Content, Comfort and Compatibility With New LiquidVR(TM) Technologies". AMD Investor Relations. AMD. 2015-03-03. https://ir.amd.com/news-events/press-releases/detail/602/amd-takes-aim-at-exceptional-content-comfort-and-compatibility-with-new-liquidvrtm-technologies. Retrieved 2026-09-27.
  8. ↑ 8.0 8.1 8.2 Paul James (2015-08-07). "Oculus PC SDK 0.7 is a Major Overhaul, New Direct Driver Mode Made with NVIDIA & AMD". Road to VR. https://www.roadtovr.com/oculus-pc-sdk-0-7-brings-new-direct-driver-mode-and-a-major-overhaul/. Retrieved 2026-09-27.
  9. ↑ 9.0 9.1 9.2 9.3 9.4 Paul James (2016-02-11). "SteamVR and HTC Vive Pre Gets 'Direct Mode'". Road to VR. https://roadtovr.com/steamvr-and-vive-pre-gets-direct-mode/. Retrieved 2026-09-27.
  10. ↑ 10.0 10.1 10.2 "Linux 4.15". KernelNewbies. 2018-01-28. https://kernelnewbies.org/Linux_4.15. Retrieved 2026-09-27.
  11. ↑ 11.0 11.1 11.2 11.3 "What is Direct Mode". Monado. freedesktop.org. https://monado.freedesktop.org/direct-mode.html. Retrieved 2026-09-27.
  12. ↑ 12.0 12.1 Joe Durbin (2016-02-09). "Latest Steam VR Update Brings Direct Mode To Vive Pre". UploadVR. https://www.uploadvr.com/latest-steam-vr-update-brings-direct-mode-to-vive-pre/. Retrieved 2026-09-27.
  13. ↑ 13.0 13.1 "LiquidVR". AMD GPUOpen. AMD. https://gpuopen.com/liquidvr/. Retrieved 2026-09-27.
  14. ↑ 14.0 14.1 Ben Lang (2014-07-25). "Oculus SDK 0.4.0 Beta Now Available for Windows, New Display Option Reduces Latency". Road to VR. https://roadtovr.com/new-oculus-sdk-0-4-0-beta-now-available-windows/. Retrieved 2026-09-27.
  15. ↑ Ben Lang (2014-08-12). "Oculus SDK 0.4.1 Beta Released: Mac OSX Support, SSE Fix, UE4 and More". Road to VR. https://www.roadtovr.com/oculus-sdk-0-4-1-beta-mac-osx-sse-ue4/. Retrieved 2026-09-27.
  16. ↑ Dean Beeler, Nathan Reed (2015). "VR Direct: How NVIDIA Technology is Improving the VR Experience (Presented by NVIDIA)". GDC Vault. https://www.gdcvault.com/play/1022391/VR-Direct-How-NVIDIA-Technology. Retrieved 2026-09-27.
  17. ↑ Nathan Reed. "SIGGRAPH 2015: NVIDIA GameWorks VR". Nathan Reed's coding blog. https://www.reedbeta.com/talks/gameworks-vr/. Retrieved 2026-09-27.
  18. ↑ Keith Packard (2017-03-14). "Consulting for Valve in my spare time". keithp.com. https://keithp.com/blogs/Valve/. Retrieved 2026-09-27.
  19. ↑ Keith Packard (2017). "DRM Leases (XDC 2017 slides)". X.Org Foundation. https://www.x.org/wiki/Events/XDC2017/packard_drm_lease.pdf. Retrieved 2026-09-27.
  20. ↑ "Kernel Mode Setting (KMS)". The Linux Kernel documentation. https://docs.kernel.org/gpu/drm-kms.html. Retrieved 2026-09-27.
  21. ↑ "drivers/gpu/drm/drm_edid.c". Linux kernel source (GitHub mirror). https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_edid.c. Retrieved 2026-09-27.
  22. ↑ "VK_EXT_direct_mode_display". Vulkan Documentation. Khronos Group. https://docs.vulkan.org/refpages/latest/refpages/source/VK_EXT_direct_mode_display.html. Retrieved 2026-09-27.
  23. ↑ "DRM lease (drm-lease-v1)". Wayland Explorer. https://wayland.app/protocols/drm-lease-v1. Retrieved 2026-09-27.