D7VK 2.2 Lands, Completing the Ancient D3D Rendering Pipeline on Linux
The new release rebases on DXVK v3.1 and finally stabilizes Direct3D 3, closing the loop on Win95-era 3D gaming.
D7VK 2.2 shipped today, bringing Direct3D 3 support to the same polish level as its newer siblings and officially wrapping up the project's immediate-mode DDraw-era coverage. If you've been trying to run late-90s Windows 3D games on Linux without fighting through decades of legacy driver bottlenecks, this is the update you've been waiting for.
D7VK isn't a standalone implementation. It slips between Wine's native DDraw front-end and DXVK's D3D9 backend, routing older APIs through Vulkan. That architectural choice means you get DXVK's proven performance infrastructure without needing a full Direct3D rewrite. The project maintains 750 stars on GitHub, sits firmly in the indie preservation niche, and explicitly won't merge back into upstream DXVK. Philip Rebohle's team has drawn a line at D3D8 and below. Better late than never.
The D3D3 hardening
Today's release rebases on DXVK 3.1, which dropped the same day. From there, the update focuses heavily on Direct3D 3, which first arrived in D7VK back in v1.5 in March 2024. The author calls D3D3 titles artifacts lost to time, and honestly, tracking down working dumps for games that never got official patches back in the 1990s is part of the charm. The new commit fixes refcounting for D3D3 devices to match native behavior, enables color key handling for pure D3D3 setups, and refactors execute buffer validation using freshly written Wine tests.
On top of the D3D3 polish, v2.2 tweaks texture handle lifecycle management across D3D5 and D3D3, fixes a vertex input FVF determination bug in execute buffers, and corrects a legacy projection matrix calculation. Developer @CkNoSFeRaTU contributed the projection matrix fix alongside months of historical API detective work. Color key normalized range math got optimized, which speeds up titles relying on that transparency method. The refactored Begin()/Vertex()/End() draw path for D3D6/5 cuts memory overhead, which notably helps Frogger (1997).
Why it matters
It's a niche tool for a niche crowd, but the execution is surprisingly thorough. You won't be running retained-mode applications or mixed D3D/DDraw/GDI setups, and the project will stay separate from mainline DXVK. However, for immediate-mode titles built between DirectX 3 and 7, the Vulkan translation layer just became significantly more reliable. The performance jump from the v1.x era to today is genuinely striking. v2.0 already matched a Lunar Lake laptop running on battery against a desktop RTX 4070 in CPU-limited scenarios. That's not exactly cutting-edge hardware, but it proves the pipeline works.
If you're running a Win95 or Win98 3D title through Wine and finally decided it was time to try Linux, the full changelog and binaries are on the D7VK GitHub releases page. Keep the issue tracker bookmarked. The project currently sits at 40 open issues, mostly tracking edge cases in specific legacy games. Head here to report your own findings. Keep in mind that immediate-mode is the only supported rendering mode, but for what it does, D7VK 2.2 is the most complete translation layer we've seen so far.
Head here to get the new release from GitHub.
