Software 42294 Published by

A new version of D9VK, a Vulkan-based DirectX 9 translation layer for WINE based on DXVK has been released



Features
Improved Perf

Stopped using DEVICE_LOCAL memory for shader constant buffers (@doitsujin)
Misc. performance improvements
Skip waiting for D3DLOCK_READONLY on buffers
Optimized UndirtySamplers

General

Implemented d3d9.samplerAnisotropy option
Implemented d3d9.maxAvailableMemory option
Implemented d3d9.floatEmulation option
Implemented GetRasterStatus (for Undertale)
Cache monitor info
Implemented ProcessVertices (Software Vertex Processing)
Uses a geometry shader that emits no vertices and does buffer writes
Correctly implement D3DMULTISAMPLE_NONMASKABLE
Implemented TexBem, TexM3x2Tex and TexM3x3Tex
Enabled lenient clear for some UE3 titles
Otherwise they don't end up clearing their full RT due to viewport rules and random alignment
Implement undocumented managed pool for D3D9Ex
Implement async. present
Implemented presentation regions

Bug Fixes

Ignore lock flag DISCARD when NOOVERWRITE/not a dynamic resource is specified
Improved nested locking behaviour and other locking fixes
Fixed systemmem texture wait behaviour
Ignore partial discards for textures
Fixed a bug setting dirty vertex/pixel shader flag in SetTextureStageState
Improved memory tracking behaviour
Fixed ResolveZ implementation
Fixed some blending behaviour in fixed function pipeline
Improved app compatibility in CheckDeviceFormatConversion

New Fixed Function Support!

Implemented fixed function lighting
Implemented fixed function frog fog
Lots more (eg. texcoord offset, tci_cameraspaceposition, specular magic!)

There is a lot more that wasn't mentioned above too, but was either bugs fixed that didn't affect the previous release or new behaviour or too minor to mention (I actually want to release this and not spend all day writing a changelog ????).
Notes

Please do not use wine's d3d9x or d3dcompiler with d9vk. They make invalid API calls and generate bad shaders. I cannot stress this enough.

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

ドイツ人 (doitsujin): for creating the base of the project, DXVK
Rhedox and CME: for helping with debugging
VKx and Frog Family Discords: for helping with testing

Thank you and Enjoy!