github WinterSnowfall/d7vk v1.12
Version 1.12

3 hours ago

While further CPU ProcessVertices optimizations have been postponed, and the swapchain rework has been benched indefinitely, the latter because it has proven to be more trouble than it's worth, this release still (somehow) manages to roll out quite a few noticeable performance improvements.

But let's start with the overall performance improvements of various APIs since their official introduction in D7VK. Mind you 99% of what you will be seeing are CPU improvements, since being GPU limited in these early APIs is a tough ask even on the most sluggish of modern GPUs*.

*Note: While I have upgraded my GPU drivers since v1.2/v1.0 times, my hardware configuration has remained the same, so the numbers are as like to like as they'll ever get.

D3D6 - 3DMark 99 Max:

D7VK v1.2 D7VK v1.12
D7VK_MAX 99_v112

D3D7 - 3DMark 2000 v1.1:

D7VK v1.0 D7VK v1.12
D7VK_1 0 2000_v112

Some micro-optimizations have been added specifically in this release and can, at times, have a dramatic effect in CPU limited scenarios.

Unreal Tournament - D7VK v1.11 Unreal Tournament - D7VK v1.12
V111 v112

Fixes/additions:

  • Rebased on top of the recently released DXVK 3.0.1, which brings numerous fixed function fixes and improvements into early D3D as well.
  • Pulled in an upstream regression fix for bump map texture stages. As such, bump maps are now again applied correctly instead of being MIA.
  • Simplified the color key transparency implementation, which removes the need for a fallback tolerance mode.
  • Optimized wrapped surface checks by tuning for fast lookup times vs insert times, which improves CPU-bound performance overall and rather drastically in D3D7 multi-texture stage situations, such as in Unreal Tournament with the OldUnreal patches.
  • Handle texture use of non-texture surfaces, which fixes white 3D models in The Sims: Complete Collection.
  • Improved handling of partial viewport clears, which fixes most, but not all, rendering problems in Star Trek: Starfleet Academy.
  • Aligned default VGA adapter naming with native DDraw, which was needed by the Matrox TechDemo 3D sample.
  • Optimized D3D6/5/3 viewport clear color transforms, which speeds up the calls ever so slightly.
  • Removed advertising of stipple transparency (aka screen-door transparency) in D3D6/5, since apparently it wasn't supported even on age-accurate GPUs, such as the Riva TNT2.
  • Tweak the assignment of texture/material handles, which now happens explicitly when an application requests them, not on texture/material creation. This helps reduce the overall handle count.
  • Added a loader validation logic to prevent D7VK from loading its own dll and causing endless recursion. This could happen if D7VK's dll was copied to the system path without properly renaming Wine's ddraw.dll first (to ddraw_.dll). In case a self-load is detected, D7VK will now error out instead of live-locking.
  • Properly handle devices created with Wine's custom device GUID, which is an alias for HAL as far as D7VK is concerned. This isn't common in most applications, but can be useful for apitrace playback.

Happy retro gaming and enjoy the extra speed, or battery life, depending on your platform (reminder that all early D3D APIs enable VSync, unless the application goes out of its way to disable it... and very few games bother to do that).

Don't miss a new d7vk release

NewReleases is sending notifications on new releases.