Software 42837 Published by

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



Features
New General API Stuff

Properly implement queries for format support w/ respective usages
Implement D3DOK_NOAUTOGEN return code for CreateTexture functions
Quietened a lot of stubs that don't matter
Improved return codes to not advertise things we don't support
Refactored adapter code, w/ misc. cleanup and safer code
Very basic border color support
Fixes shadows in some games that use inverse blending + border of ~ 1,1,1,1
Improved AllocUpBuffer behaviour to reduce memory fragmentation (@doitsujin)

New Fixed Function Support!

Implemented D3DTSS_TEXCOORDINDEX

New Shader Support!

Implement DemoteToHelperInvocation for NV/Intel for Discards
Implemented sign and bias modifiers
Implemented TexReg{Ar,Gb,Rgb} ops
Implemented TexDp3Tex
Implemented Crs

Bug Fixes
D3D9

Removed support for R8G8B8 (not supported anywhere natively anymore, and causes issues in newer games that use it incorrectly
Add a low weight implicit flush to UpdateTexture
Can improve loading times in some games where we used to stall on some uploads (eg. Sims 2)
Check mip level range in GetCubeMapSurface (@K0bin)

DXSO (Shader Fixes)

Saturated diffuse and specular color on PS 1.x and 2.x (COLOR0 and COLOR1 outputs in VS)
Clamped constants to -1.0f and 1.0f in PS 1.x shaders
Corrected Dz and Dw implementation
Fixed texcoord/texcrd op across all shader models (@Joshua-Ashton & @K0bin)

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!