D7VK 2.0 has been released, bringing a suite of performance improvements and bug fixes for users running retro Direct3D titles on Linux. The update, detailed by developer WinterSnowfall, specifically targets CPU-limited scenarios where players may see up to a two-fold increase in performance.

Quick Facts

  • Version: 2.0
  • Core Update: Rebased on DXVK 3.0.2.
  • Key Performance Gain: Up to 2x performance increase in CPU-limited scenarios.
  • Notable Fixes: Half-Life, The Sims: Complete Collection, and Dungeon Keeper 2.

Key Performance and Rendering Improvements

The most significant gains in this release come from optimizations to CPU ProcessVertices calls. By implementing hand-rolled SSE helpers, the developer has managed to drastically improve performance for titles that rely on these calls. A notable example provided in the release notes is Half-Life, which saw its framerate climb from 19.8 FPS to the 60 FPS cap.

Other performance-related changes include:

  • Workaround for Managed Buffers: A fix for D3D9 managed pool buffer placement drastically improves upload performance for GoldSrc engine titles and games like Toy Story 2: Buzz Lightyear to the Rescue.
  • Logger Cleanup: Debug loggers have been stripped from hot paths, significantly reducing CPU overhead.
  • Surface Attachment Handling: Simplified handling due to an upstream WineD3D DDraw bug fix, speeding up all surface Flip calls.

Bug Fixes and Compatibility

Beyond raw performance, version 2.0 addresses several long-standing rendering and compatibility issues:

  • Rendering Fixes: Dungeon Keeper 2 and the Matrox G400 TechDemo no longer suffer from minor rendering issues related to video memory bump luminance formats.
  • Clipping and Light Issues: Empire Earth, Total Annihilation: Kingdoms, and Revenant have received fixes for clipping. Additionally, Need for Speed: Porsche now correctly displays projected light terrain on night tracks.
  • Stability: A regression causing a black screen in The Sims: Complete Collection has been resolved.
  • Device Caps: The update adds better reporting for surface dimension caps, mimicking age-accurate hardware like the Nvidia Riva TNT2 and ATI Rage 128, which resolves various game-specific graphical errors.

The update also includes a frame limit for Dungeon Keeper 2 to prevent animations for water and flame surfaces from running too quickly, and ensures the code handles unknown GUIDs by creating a HAL device, which fixes texture filtering issues in Revenant.