Skip to content

DXVK v2.7 (modded for WoW)

Choose a tag to compare

@Raz0r1337 Raz0r1337 released this 06 Oct 13:55
· 1177 commits to st0ny-main since this release
6e36775

A version of DXVK specifically adapted to the folder structure of World of Warcraft 1.12 and 3.3.5a.

Perfect for Stormhand's Project Reforged and Trimitor's WotLK 3.3.5a HD Client.

This release contains the 32-bit d3d9.dll, built from upstream DXVK v2.7 with the following modifications:

  1. dxvk.conf is located in WoW's WTF directory. DXVK looks for WTF/dxvk.conf first and falls back to dxvk.conf in the game directory if it does not exist. DXVK_CONFIG_FILE still takes precedence.
  2. Logs are written to WoW's Logs folder. If that folder does not exist, the logs are written to the game directory instead. DXVK_LOG_PATH still takes precedence.
  3. The hardware cursor size is configurable. Add the line d3d9.enlargeHardwareCursor = 1-4 to dxvk.conf to enlarge or reduce the cursor:
    • 1: original size
    • 2: double size (default)
    • 3: triple size
    • 4: quadruple size

Installation

  1. Download DXVK-WoW.zip and extract d3d9.dll into your WoW directory, next to the game executable.
  2. Optional: create WTF/dxvk.conf to change settings, e.g. d3d9.enlargeHardwareCursor = 1 for the original cursor size.
  3. To uninstall, delete d3d9.dll from the WoW directory.

A GPU and driver with Vulkan support are required.


Original release notes of DXVK v2.7

Driver support

The Vulkan extension VK_KHR_maintenance5 is now required. DXVK has been relying on guarantees made by this extension since version 2.5, so in order to remove some maintenance burden, fallbacks that would allow older drivers to run were now removed.

Please check the driver support page on the Wiki for details.

Note: These changes will primarily affect Windows users on AMD Polaris and Vega GPUs, for which AMD has effectively discontinued driver support. On Linux, these older GPUs will keep working on RADV when using Mesa 25.0 or newer.

Due to a growing number of compatibility issues with the AMD Windows driver in general, supporting it is no longer a priority.

Binding model changes

Descriptor management was largely rewritten and modernized. On newer AMD and Nvidia cards, VK_EXT_descriptor_buffer is now used by default, which significantly reduces CPU overhead compared to the legacy binding model and may thus improve CPU-bound performance in games such as Final Fantasy XIV, God of War, Metaphor: ReFantazio, Watch Dogs 2 and others.

This feature remains disabled on older GPUs due to severe performance regressions in some cases, specifically on Nvidia Pascal or older, as well as AMD RDNA2 or older when using AMDVLK or the AMD Windows driver. RADV is unaffected by these issues.

Note: A small hit to GPU-bound performance is expected in some cases, in exchange for more consistent overall performance. Users can override the default behaviour with the dxvk.enableDescriptorBuffer option. Enabling Resizeable BAR on supported systems is strongly recommended.

Memory management

Memory defragmentation is now enabled by default on Intel Battlemage and Lunar Lake GPUs. On older Intel GPUs, this feature remains disabled as it may cause rendering issues for unknown reasons, see doitsujin#4395.

On discrete GPUs, DXVK will now enforce the driver-reported VRAM budget as much as possible, and dynamically evict unused resources to system memory when under memory pressure. This should improve performance in many Unity Engine titles on VRAM-constrained systems, and may allow for higher texture quality settings to be used in some games. Temporary slowdowns and stutters are still expected when exceeding VRAM capacity.

Note: This feature currently does not work as intended on AMD GPUs due to kernel driver issues.

Legacy feature removal

The state cache was introduced in Version 0.80 to reduce shader compilation stutter, and has been largely unused since the introduction of VK_EXT_graphics_pipeline_library in DXVK 2.0. In order to reduce maintenance burden, particularly with pipeline-related changes in this release, this legacy feature was now removed.

Additionally, the d3d9.forceSwapchainMSAA option was removed. This feature was not really useful since most games either use additional render targets or provide a built-in MSAA option themselves anyway. For games that do not provide built-in MSAA, users are encouraged to use Gamescope to run these games with a higher render resolution instead.

Bug fixes and Improvements

  • Added support for planar video output views. (PR doitsujin#4872).
    This is required for video playback in JR EAST Train Simulator.
  • D3D11 shaders will now zero-initialize all variables and groupshared memory by default in order to work around game bugs resulting in undefined behaviour. The d3d11.zeroWorkgroupMemory option was removed accordingly.
  • Optimized D3D9 StretchRect in certain multisample resolve cases encountered in Source Engine. (PR doitsujin#5023)
  • Fixed an instance of invalid Vulkan usage in Modulus, and possibly other Unity Engine games that use the D3D11 video API.
  • Implemented support for the ID3DDestructionNotifier interface.
  • Vulkan devices that lack the required feature support to run DXVK will no longer be listed as DXGI / D3D9 adapters. This may fix crashes in case an outdated graphics driver or an unsupported integrated GPU are present on the system.
  • Trying to build DXVK in a MinGW environment with AVX enabled will now result in a compile-time error.
    We cannot support AVX builds due to toolchain issues, nor is it expected to be beneficial.
  • Astebreed: Fixed crash when changing graphics options. (PR doitsujin#5034)
  • GTR - FIA GT Racing Game: Worked around a game issue that would cause it to not start. (PR doitsujin#5072)
  • LEGO City Undercover: Worked around a game issue that would cause the intro video to be broken. (doitsujin#4997, PR doitsujin#5000)
  • Star Trek: Starfleet Command III: Worked around resource leak in GOG build. (PR doitsujin#5056)
  • Test Drive Unlimited 2: Worked around alt-tab issue causing input loss. (PR doitsujin#5057)
  • Wargame: European Escalation: Worked around gamma issue when the game detects an Nvidia GPU. (PR doitsujin#5055)