Table of contents
Open Table of contents
Introduction
I’ve been using VR headsets for several years, starting with the Oculus Quest 2, and have played PCVR games wirelessly using Virtual Desktop, Oculus Link, and Steam Link. Even though these methods require streaming video at high resolutions and frame rates for both eyes, it is very comfortable to use due to their low latency.
However, when I tried to play some flat game using a big virtual screen, achieve the same smoothness as with VR games. Running any flat game felt clunky and laggy. Frame counter on PC showing over 120 FPS, but it felt like 40 FPS and significant input lag, even though I had steady 90 or 120 FPS in VR mod with no input lag.
If it is your case, so Virtual Display Driver should help you
Virtual Display Driver
The Virtual Display Driver creates a virtual display in Windows that acts and functions just like a real one. It’s useful for streaming, virtual reality applications, recording, headless servers, etc. The benefit over a physical display is the ability to adjust resolutions and refresh rates beyond the physical displays capabilities. For example, this would enable the ability to stream a game from your home PC using game streaming software at 240 Hz at 8K while owning a 60Hz 1080p monitor (unrealistic, but explains the abilities well). For servers without displays, this enabled remote desktop and screen streaming to other systems as if there were a display installed.
Supports emulating resolutions from 640 x 480 to 7680 x 4320 (8K), and refresh rates including 60Hz, 75Hz, 90Hz, 120Hz, 144Hz, 165Hz, 240Hz, 480Hz, and 500Hz. The virtual monitor uses Indirect Display Driver (IDD) and it is available for Windows 10 or later
Installation
I suggest watching the video version, but you can always find the latest installation instructions here
Also, before you install the driver, I really suggest changing the options.txt file to choose the screen sizes and frequency that suitable for you. This way, you won’t see resolutions you don’t need, like the ones in the screenshot below
There is my list of useful resolutions that suitable for quest headsets, just feel free toot edit options.txt
1920, 1080, 60
1920, 1080, 90
1920, 1080, 120
2560, 1440, 60
2560, 1440, 90
2560, 1440, 120
3840, 2160, 60
3840, 2160, 90
3840, 2160, 120
It is not only for VR
Streaming to VR headsets is not the only case. You can create headless game or work station, that doesn’t need a physical monitor plugged in. You can use Steam Link or another app to stream games to your phone or laptop.
I personally do not recommend using the built-in Windows Remote Desktop because it requires setting a password for your PC, has significant latency and low framerate, is not flexible, and lacks options such as resolution and bitrate. It also exclusively gains access to your PC, preventing mirroring the picture to a TV, etc. Just opt for some third-party RDP software to build your game or workstation.
Why does this even work?
I didn’t find any articles about which OS APIs this software use to capture the screen. I suspect that that software such as Virtual Desktop or Steam Link, instead of directly capturing game frames from the game engine via some graphical API, it captures the window, where the game is attached or even the entire screen using the Windows API. For instance, if you have a 60Hz screen and your game generate 100 FPS, your screen show you maximum 60 frames per second. And when you try to stream a game with 100 FPS from 60Hz screen to 120Hz screen (such as Oculus Quest’s screen), you’ll get 60 FPS only
Anyway, Virtual Display Driver solves the issue and we can enjoy of using a big screen in VR headset with low latency and high framerate