This repository has been archived by the owner on Jan 21, 2025. It is now read-only.
Version 0.30 - Froglet 🐸🍼
Pre-release
Pre-release
Smol frogs be like: ᵣᵢᵦᵦᵢₜ ᵣᵢᵦᵦᵢₜ 🐸🍼
Features
- Rebased upon latest DXVK 1.4.4! 🐸🎉
- Improved performance when locking
D3DPOOL_DEFAULT
textures via. dirty tracking to avoid unnecessary waiting and copies. - Improved performance by avoiding throwing out
D3DUSAGE_DYNAMIC
buffers on unlock. - Allow DISCARD on non-
D3DUSAGE_DYNAMIC
resources, which may improve perf in some cases (mirrors native behaviour.) - Other misc. locking changes.
- Implemented
D3DRS_POINTSIZE
,D3DRS_POINTSIZE_MIN
,D3DRS_POINTSIZE_MAX
,D3DRS_POINTSCALE_A
,D3DRS_POINTSCALE_B
,D3DRS_POINTSCALE_C
,D3DRS_POINTSCALEENABLE
andD3DRS_POINTSPRITEENABLE
. - Implemented
D3DRS_SHADEMODE
.- Fixes some GameMaker titles.
- Implemented shader predication (experimental).
- Compressed down and improved normalization of fixed function shader keys.
- Implemented a new, more efficient method of hazard tracking enabled for all titles.
- Removes the now-redundant
d3d9.hasHazards
option.
- Removes the now-redundant
- Improved perf. by respecting access type across all of WaitForResource.
- Improved perf. by checking for resource usage before before syncing with the thread in WaitForResource. (mirrors D3D11 change)
- Faked AMD for CS:GO to bypass NVAPI
- Note: You still cannot play CS:GO with D9VK or Proton w/ VAC due to signature checks! (You will be dumped into
-insecure
on launch.)
- Note: You still cannot play CS:GO with D9VK or Proton w/ VAC due to signature checks! (You will be dumped into
- Improve perf by removing duplicate blend state sent to the CS.
- Generate adapter LUIDs when Vulkan does not provide them.
- Spoof device/vendor for Halo 2
- Fixes it falling into an invalid render path on some systems where it'd render degenerate tris for fullscreen passes.
- Fixes it showing annoying unsupported driver/device messages on startup.
Bug Fixes
- Implemented
d3d9.invariantPosition
option.- Enabled this for Halo 2, as otherwise imprecision messes up depth test on NV.
- Disabled
D3DLOCK_DISCARD
andD3DLOCK_NOOVERWRITE
for anything other thanD3DPOOL_DEFAULT
pool- Fixes flickering in Halo CE.
- Retry setting display mode without frequency if it fails.
- Fixes Battlefield 2 CTD.
- Respected projection texture stage flag in PS 1.x
- Fixes Psychonauts' video projections and shadows in some older titles.
- Apply given swizzle to texture sample ops.
- Affects a lot of games, pretty silly oversight on my behalf.
- Disabled alpha test if alpha to coverage is active.
- Fixes the spoopy ghosty people in Alan Wake 2.
- Zero-initialized output registers that get used
- The Sims 2 sometimes only writes to .x of them, but reads .yzw and expects 0.
- Fixed a bug where StretchRect would fail if the dst sample count was != 1.
- Fixes Anno 1404 and Halo 2's player customizer notably.
- Fixed handling of Z extent with POSITION_T, notably wrt. depth testing being enabled.
- Fixes Manhunt.
- Use VK_BLEND_FACTOR_ONE when with an X8 render target and wanting to get DESTALPHA/INVDESTALPHA.
- Try-catch all of Present, not just the presentation.
- Fixes a bug where if recreation failed the application would crash.
- Fixed the return value for failed presentations.
- Set the driver version to INT64_MAX rather than UINT64_MAX.
- Some games, such as Halo 2, interpret this as signed data.
- Fixed a bug where multiple mips were exposed in RT views causing validation errors.
- Fixed the wrong view being used in the generateMipMaps call.
- Default invalid/OOR blend factors to ZERO rather than ONE
- Fixes lighting in Payday 2.
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
- You: for your love and support and helping me get to where I am today! ❤