Urgent.News

What's breaking now, across thousands of outlets.

Tech

Triton: DirectX 11 Driver for QEMU

Article URL: https://blog.getutm.app/2026/introducing-triton-directx-11-driver-for-qemu/ Comments URL: https://news.ycombinator.com/item?id=49221711 Points: 199 # Comments: 44

In the prequel, Neptune was introduced as a Direct3D protocol forwarding layer for VirtIO. Neptune allowed the serialization of Direct3D API calls across the hypervisor boundary, enabling Wine games on a Linux guest with a Linux host to run faster than with DXVK directly. This work laid the foundation for modern graphics acceleration in Windows guests, achieved through the creation of Triton, a new Windows driver in conjunction with Neptune.

Neptune, like previous attempts, built d3d11.dll and dxgi.dll which fully implements the Direct3D API set and, when placed next to a game's executable, can load them instead of Windows' own drivers, allowing some games to run. However, this approach has several disadvantages: poor performance due to the window compositor's use of CPU blitting, inability to replace system files without causing issues with anti-cheats, and the need to copy files to every application seeking graphics acceleration, which is not user-friendly.

The more effective approach is to implement DirectX DDIs (Device Driver Interface), as it communicates with the system Direct3D and DXGI libraries. The correct method is to focus on implementing the UMD and KMD (User-Mode Driver and Kernel-Mode Driver) rather than emulating DirectX APIs. This is where Triton comes into play, implementing the UMD with the DirectX DDI interface and establishing a private interface with the KMD for communication with the VirtIO device.

The KMD has already been solved, thanks to anonymix007 and arehnman's work on a KMD for Venus, a Vulkan implementation. Since Vulkan doesn't need to implement the DirectX DDI, the UMD's interface mirrors the "replace d3d11.dll" approach, which talks directly with the KMD to drive commands to QEMU. The Triton project chose anonymix007's branch for its more feature-complete KMD implementation.

The hard part now is implementing the DDI for DirectX 11. With few open-source DDI implementations available, the project draws inspiration from Mesa's DirectX 10 UMD and VirtualBox's DirectX 11 UMD. Mesa's DirectX 10 UMD, an alternative for OpenGL, emits Gallium API calls, which are then converted into native graphics driver APIs by the Gallium backend driver.

However, the project decided against using VirtualBox's driver due to compatibility issues and the conversion of DDI calls into bytecode. Instead, they aim to implement the DirectX DDI directly in QEMU, promising modern graphics acceleration for Windows guests running in QEMU virtual machines.

Written by urgent.news from Hacker News Best's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

This story

This is one outlet's version. Read the fullest account.

Read the original at blog.getutm.app →

More in Tech

More from Saturday 8 August →