Select your language

D9VK has been updated to 0.40.1.

  D9VK is a layer for translating Direct3D9 calls to Vulkan, used in Wine and based on DXVK. Developer Joshua Ashton has released a big update. D9VK was posted on github under version 0.40 - Croakacola, and a couple of hours later version 0.40.1 - Croakacola Zero was posted.

  This release is based on the latest release of DXVK. It includes many changes to improve gaming performance. Support was added for the new DirectX 9 features, experimental shader predefinition, and much more.


  Features of the D9VK 0.40 version:

  • Implemented the ability to use more than 4 GB of video memory on 32-bit applications.
    • It helps a lot in Skyrim/Oblivion fashion, etc.
  • Asynchronous presentation enabled for all vendors
  • Removed unnecessary CS sync point in query data lookup
  • Minor improvements in query clearing
  • Improving the internal time measurement (use a new watch for a specific platform)
    • Works around MinGW, high_resolution_clock being absolutely terrible.
  • Postponed MANAGEDSYSTEMMEM loading buffers until PrepareDraw time
    • Performance fix in Risen and Legend of the Heroes: Trails of the Sky.
  • Implemented by D3DTA_CONSTANT
    • Fix color rendering in SpinTires/Mudrunner
  • Improved D3D9Ex compatibility / specifics
    • Processed by ResetEx vs. Reset nuance.
  • Miscellaneous code cleanup/refactoring
  • Made WRITEONLY buffers mapped directly
    • May improve performance, but also works with an error in CS:GO when it is still writing to the buffer after unlocking.
  • Implemented by SetDialogBoxMode
  • Implemented vertex blending
  • Implemented indexed vertex mixing (including for SWVP)
  • HUD sampler counter redesigned to use new, more extensible HUD system
  • Minor performance improvements over shader linking, linking input layouts and persistent loading
  • Added option d3d9.dialogBoxMode, which can be enabled to disable D9VK, accepting exclusive full-screen modes

Error correction

  • Handled w == 0 unusual for POSITION_T
    • Fixed solar flares in GTA:SA.
  • Fixed NaN/INF light attentations rendering incorrectly ( @ CME42 )
    • Fairlight virtual vodka demo fixed.
  • Fixed End TIMESTAMPDISJOINT Requests
  • Removed the VCACHE setting for Nvidia (corresponds to the native one) and updated the values to the extent that they put modern maps.
  • Fixed memory tracking behavior for D3D9Ex
  • Fixed Vampire: Masquerade Bloodlines runs on machines with lots of VRAM
    • Work was done on an error in the game, created textures, until he could measure the amount of VRAM.
  • Fixed mirrors in Max Payne 2.
    • Implicitly saturated with some operations with fixed functions
  • Fixed custom video on TVs in The Sims 2.
    • Work was done on an error in this game, in which they displayed black if X4R4G4B4 was set as a potential RT format.
  • Исправлен рендеринг Silent Hunter 3.
    • The fill function with texture conversion has been fixed, now it behaves like 1 in the range of the actual input to the text coordinate of the rasterizer and 0 outside this.
  • Fixed aspect ratio in Senran Kagura Shinovi Versus
    • The game bug was circumvented, due to which, if any super-wide modes were set (even if the game was only 16: 9), he would select them by turning off not 16: 9 modes for this game.
  • Fixed width/height for the "partial presentations" we make.
  • Fixed a bug due to which the black screen in Dungeons and Dragons: Dragonshard.
    • He wrote, FOG but not FOG included something that we did not relate to properly.
  • Bug with rendering shadows in Crysis fixed.
    • Microsoft documentation for TEXKILL operations is incorrect, all 4 components are used when shader SM2 or higher.
  • Fixed a potential race that could have occurred in ProcessVertices
  • Fixed crash of Metal Slug X at startup
    • In this old version of ANGLE, the error indicated D3DFMT_D32 as a possible depth format, but then stops processing it when converting OpenGL, which causes UNREACHABLE to cause an error and, therefore, to crash.
    • Disabled D3DFMT_D32 for this game.
  • Fixed auto-sculpt in Need for Speed: Carbon
    • Note, MANAGED that loading requires a lock, not an unlock, the game uses this quirk because it does not unlock it before the frame ends, but still expects you to see a preview by blocking it.
  • Moved from The Sims 2 application profiles to add-on product headers ( @nelsonjchen )
  • Fixed black trees in Risen 1
    • The position must be marked as invariant.

  Features of the D9VK 0.40.1 version:

  • Fixed default value for COLOR0 in vertex shaders: vec4 (1)
  • Fixed a bug due to which the bits of slots for shader outputs were incorrectly applied by default and, therefore, were incorrectly fixed by the backend, causing them to be replaced by vec4 (0)

  Deviation from the developer:

Do not use d3dx9 or d3dcompiler with d9vk in Wine. They make invalid API calls and generate bad shaders.

If you are compiling with MinGW, use the dwarf2 exception patch to improve performance.