This release features a general overhaul and cleanup of D7VK's interaction with DXVK's D3D9 backend, particularly in the area of vertex processing, but also in terms of VSync handling.
The former is expected to technically improve GPU bound performance. And I say technically because being GPU bound in D3D7 and earlier APIs requires a potato level GPU and is only really noticeable in benchmarking. Still, some games such as Praetorians will get a noticeable boost because of the improved handling of SYSTEMMEM buffers, which are now marked with DYNAMIC usage. 3DMark 2000/99 scores will also see some positive impact.
Apart from that, this release also fixes a few regressions, mostly affecting D3D5 titles, which were brought about by the addition of D3D3 support in v1.5. It also captures a fair share of general bugfixing, enabling more early D3D titles to be playable, such as:
Fixes/additions:
- Tweaked vertex processing mappings, which generally improves performance and addresses various buffer locality issues, fixing crashes seen in Age of Wonders II: The Wizard's Throne and Escape From Monkey Island.
- Exposed DDCAPS2_FLIPNOVSYNC and flip interval capabilities in DDraw, with proper handling. This has enabled previously greyed out VSync controls in Re-Volt.
- Fixed a regression in Deathtrap Dungeon, caused by D3D3-D3D5 viewport interoperability.
- Thanks to @CkNoSFeRaTU, a bug affecting the D3D6 renderer (background color clears in particular) in Need for Speed III: Hot Pursuit was identified and fixed.
- Fixed invalid color key update skipping during
SetTexture()calls, which has fixed various color key transparency artifacts in Moto Racer. - Fixed a D3D6 specific bug which caused alpha blending states set by the application to be wrongly overridden. This has fixed missing transparency issues in Need for Speed III: Hot Pursuit, Slave Zero and potentially other titles.
- Worked around a color keying precision issue in Metal Fatigue.
- Handled an oversight in texture re-mapping during swapchain resets. This has fixed occasional texture corruption following mode switches in Vampire: The Masquerade - Redemption, Crusaders of Might and Magic, Tony Hawk's Pro Skater 2 and Total Annihilation: Kingdoms.
- Worked around a game bug in Total Annihilation: Kingdoms which prevented video cut scene playback and menu animations from working correctly.
- Advertise the full (non-LAA) 32-bit 2 GB of memory space when reporting texture/video memory. This has been increased from 1 GB previously, since D3D7 and earlier games have been observed to overflow only above 2 GB. This is needed and useful because some later D3D API titles (including some later D3D9 games) query DDraw to consult overall memory availability.
- Thanks again to the superb investigative skills of @CkNoSFeRaTU, we've worked around 8-bit mode/texture support needed by DethKarz, in order to prevent a startup crash and missing in-game textures. The game will now start properly and use 16-bit textures by default.
The Glide king is dead, long live the Glide king!
In a rare case of a D3D(6) renderer offering more features than its Glide counterpart, I strongly encourage anyone playing Total Annihilation: Kingdoms to use D3D, for its native support of 16:9 resolutions, better texture filtering options (only bilinear, actually, but even that is missing in Glide) and hardware cursor support.
| D7VK v1.6 | Glide (via nGlide) |
|---|---|
|
|
Now go forth and have some retro D3D fun! And do please report any bugs you come across, should they not already be present on our issue tracker.




