Why we wrote our own virtual display driver for game streaming
Headless streaming needs a virtual display — and the off-the-shelf ones fight Secure Boot, skip HDR, and still need a separate capture step. So we wrote our own: a signed, all-Rust Windows display driver that renders at your client’s exact resolution, carries HDR, and feeds the encoder directly.
To stream a game at your phone, tablet, or handheld’s exact resolution — and to stream a PC with no monitor attached at all — the host needs a virtual display for the game to render onto. The usual answer is to install an off-the-shelf virtual-display driver. We tried that, hit its limits, and wrote our own.
Why a virtual display in the first place
- Native client resolution. The game renders at exactly your client’s width × height and refresh rate — an ultrawide phone, a 16:10 handheld, 120 Hz — instead of being letterboxed or scaled from the host’s monitor. (More on that in ultrawide 32:9 streaming.)
- Headless. A streaming box often has no monitor plugged in at all; a virtual display gives Windows something to composite to.
- Isolation. The streamed session is its own display, separate from whatever else is on the machine.
Where the off-the-shelf drivers fall short
- Secure Boot + signing. Many community virtual-display drivers are unsigned or awkward to load with Secure Boot on — a recurring support headache.
- No real HDR. Most don’t advertise HDR correctly, so the OS treats the virtual display as SDR. (We had to close a related Vulkan-HDR gap too — see the HDR fix.)
- Capture is still bolted on. They give you a display, but you still have to capture it with Desktop Duplication or WGC, with all their blind spots.
What we built
punktfunk ships pf-vdisplay: a signed, all-Rust Windows display driver built on Windows’ Indirect Display Driver (IddCx) model. It loads cleanly with Secure Boot on, exposes the exact mode your client asks for (down to custom refresh rates), composes in 10-bit FP16 for HDR, and — crucially — is also the capture source. Instead of a separate capture API pulling frames back out of Windows, the driver pushes each finished frame straight to the encoder. We call that IDD-push.
The payoff
Owning the display driver collapses three things that are usually separate — the virtual display, HDR support, and screen capture — into one path we control end to end. That’s how punktfunk streams at your client’s native resolution, in HDR, including the Windows lock screen, without a stack of workarounds. See the whole picture in the best self-hosted game streaming setups in 2026.