Skip to content

DXVK v3.1 (modded for WoW)

Choose a tag to compare

@Raz0r1337 Raz0r1337 released this 06 Oct 14:31
· 150 commits to st0ny-main since this release
23e8612

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 v3.1 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
  4. Descriptor update templates are enabled. DXVK uses descriptor update templates in 32-bit games again, as it did up to DXVK 3.0.2, which avoids stutter caused by CPU overhead, especially on Wine. If they cause problems, add the line dxvk.enableDescriptorUpdateTemplates = False to dxvk.conf.

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 v3.1

Feature support

DXGI incremental presentation

Added basic support for DXGI present parameters. This fixes UI rendering issues in VirtualDJ (doitsujin#5853), and is also used by various game launchers, such as Ubisoft Connect.

If supported by the driver, VK_KHR_incremental_present is leveraged to forward dirty rectangles to Vulkan, which may reduce the amount of work the compositor has to do, but is not guaranteed to do so.

D3D11 buffer render targets

Implemented support for creating render target views on buffers directly. This is primarily used by various older Frostbite engine titles, including Battlefield 3 where it fixes a long-standing issue with clouds misrendering in some situations (doitsujin#5857).

Note: This feature is emulated by creating a 1D texture internally. It is not meant to be performant.

Intel vendor extensions

Intel-specific extension libraries are now loaded when using an Intel GPU, which is a requirement for Proton to support Intel vendor extensions for D3D11 in the future. This will work similarly to AMDAGS and NVAPI extensions that are already supported.

Bug fixes and Improvements

  • Improved compatibility with some external overlays that hook specific DXGI entry points (PR doitsujin#5846, PR doitsujin#5851).
  • Render areas in render passes are more aggressively optimized to the actual rendered image region on tiling GPUs.
  • Fixed a D3D9 fog regression that broke rendering in Mabinogi, The Witcher 1 and potentially other games. (doitsujin#5804, doitsujin#5808)
  • Fixed a crash when applications try to compile shaders that can only work with D3D12.
  • Worked around a specific type of out-of-memory crash on Nvidia GPUs with descriptor heaps enabled. (doitsujin#5855)
    Additionally, added dxvk.enableNvCudaInterop configuration option so users can explicitly disable VK_NVX_* extensions. This may be helpful for troubleshooting similar out-of-memory errors, but disables DLSS support.
  • Ghost Recon Breakpoint: Fixed an issue where pipeline state would not be set up properly for a specific shader.
    Also fixed an issue with water misrendering on Nvidia GPUs. (doitsujin#5849, doitsujin/dxbc-spirv#92)
  • Mirrors Edge: Fixed some Vulkan validation errors. (doitsujin#5826)
  • RaceRoom Racing Experience: Fixed an issue where the web-based UI wouldn't render properly on Proton 11.