Skip to content

@Joshua-Ashton Joshua-Ashton released this Sep 24, 2019 · 1321 commits to master since this release

I know, the pun really sucks 🍭🐸



  • Implemented locking of MSAA images with intermediate resolve (invalid behaviour in d3d9 docs, but everyone supports this)
  • Implemented locking of depth stencil images (and MSAA depth stencil images)
  • Implemented video formats YUV2 and YUVY via. compute shader
  • Implemented extended constant set when software vertex processing is enabled
  • Minor performance improvements


  • Implemented TexM3x3Spec
  • Implemented TexM3x3VSpec
  • Implemented constant bounds checking (fixes vert. explosions in The Witcher 2) by @doitsujin

Fixed Function

  • Implemented D3DTSS_TCI_SPHEREMAP
  • Use unresolved arguments for fastpath decision, may improve performance

Bug Fixes


  • Made ProcessVertices support optional (fixes D9VK on Haswell)
  • Fixed texture offsets and alignments when locking block compressed textures
  • Fixed a bug in UpdateSurface where block compressed textures had incorrect copy offsets
  • Fixed a crash when calling SetLOD on a D3DPOOL_SYSTEMMEM image
  • Handle degenerate present regions (fixes a crash when playing a recent version of A Hat in Time)
  • Set scissor to viewport (fixes minimap in GTA IV)
  • Removed pointer initialization in CreateVertexShader (matches native behaviour, fixes a crash in The Witcher)
  • Fixed the texture (and not the mip) extent being used in ColorFill on full surfaces
  • Fixed src/dst subresource being confused in GetRenderTargetData (fixes cars in GRID)
  • Report NOTAVAILABLE rather than INVALIDCALL for unavailable sample counts
  • Fixed uploads of partial locking of buffers -- some games go OOB
  • Removed unbinding for mismatching rt/ds extents (introduces regressions)
  • Fully wait in GetRenderTargetData for it to complete (fixes rthdribl 2.0 demo)
  • Fixed black walls in Serious Sam 2 (improved border color normalization)


  • Always export COLOR0 and COLOR1 in vertex shaders (fixes rendering errors in some fixed func. games)

Fixed Function

  • Ensured normalize(0) -> 0 in fixed function (@CME42 fixes a bug in fr-030 demo)
  • Fixed a bug where fixed function shaders were generating incorrect keys
  • Handled color/alpha write special case behaviour for D3DTOP_DOTPRODUCT3
  • Fixed some minor validation errors and a bug where some fixed function shaders were using features not exposed in GLSL
  • Ignore texcoord count given to API when special transform flags are used.
  • Respect count for texture projection, rather than use the image count
  • Workaround for an Nvidia bug where they were using the incorrect value for projection
  • Fixed bias in D3DTOP_DOTPRODUCT3


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.


  • ドイツ人 (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! <3

- Josh 🐸 ❤️ ~

Assets 3
You can’t perform that action at this time.