Version 0.20 - Frog Cookie 🐸🍪
Pre-release
Pre-release
henlo 🦢
🐸🍪🐸 Frog Cookies Detected 🐸🍪🐸
🐸🍪🐸 Eat the frog cookies! 🐸🍪🐸
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