Version 0.40 - Croakacola 🥤🐸
Pre-release
Pre-release
Ah, refreshing. Much better than the ripoff by that 🐕 called 'Bepis'.
Features
- Implemented the ability to use more than 4GB VRAM on 32-bit applications.
- Helps greatly in modded Skyrim/Oblivion, etc.
- Enabled async presentation across all vendors
- Removed an unncecessary CS sync point in query data retrieval
- Minor query flushing improvements
- Improve internal time measurement (use new platform-specific clock)
- Works around MinGW's
high_resolution_clock
being absolutely terrible.
- Works around MinGW's
- Deferred
MANAGED
+SYSTEMMEM
buffers upload untilPrepareDraw
time- Fixes performance in Risen and Legend of the Heroes: Trails of the Sky.
- Implemented
D3DTA_CONSTANT
- Fixes bloom rendering in SpinTyres/Mudrunner
- Improved D3D9Ex compatibility/specifics
- Handled ResetEx vs. Reset nuance.
- Misc. code cleanup/refactoring
- Made
WRITEONLY
buffers mapped directly- May improve performance, but also works around a game bug in CS:GO where it was still writing to the buffer after it was unlocked.
- Implemented
SetDialogBoxMode
- Implemented vertex blending
- Implemented indexed vertex blending (including for SWVP)
- Remade the sampler count HUD to use the new more extensible HUD system
- Minor performance improvements wrt. binding shaders, binding input layouts and constant uploading
- Added option
d3d9.dialogBoxMode
, which can be enabled to disable D9VK taking exclusive fullscreen
Bug Fixes
- Correctly handled a
w == 0
quirk forPOSITION_T
- Fixed Sun Flares in GTA: SA.
- Fixed
NaN
/INF
light attentations rendering incorrectly (@CME42)- Fixes Virtual Vodka demo by Fairlight.
- Fixed ending
TIMESTAMPDISJOINT
queries - Removed exposing
VCACHE
for Nvidia (matches native) and updated the values to what modern cards expose. - Fixed memory tracking behaviour for D3D9Ex
- Fixed Vampire: The Masquerade Bloodlines launching on machines with high amounts of VRAM
- Worked around a game bug, it was creating textures until it couldn't anymore to measure VRAM amount.
- Fixed mirrors in Max Payne 2.
- Implicitly saturated some fixed function operations
- Fixed user videos on TVs in The Sims 2.
- Worked around a game bug where they would display black if
X4R4G4B4
was exposed as a potential RT format.
- Worked around a game bug where they would display black if
- Fixed Silent Hunter 3 rendering.
- Fixed function texture transform paddings now behave as 1 in range of the actual input to what the rasterizer texcoord, and 0 outside of that.
- Fixed aspect ratio in Senran Kagura Shinovi Versus
- Worked around a game bug where if any ultra-wide modes were exposed (even though the game is 16:9 only) it would chose them by disabling non 16:9 modes for that game.
- Fix width/height for "partial presentations" that we do.
- Fixed Dungeons and Dragons: Dragonshard rendering as black
- It was writing to
FOG
but it didn't haveFOG
enabled which we weren't treating properly.
- It was writing to
- Fixed shadows in Crysis rendering incorrectly
- The Microsoft documentation for the
TEXKILL
op is incorrect, all 4 components are used when the shader is SM2 or above.
- The Microsoft documentation for the
- Fixed a potential race that could happen in ProcessVertices
- Fixed Metal Slug X crash to startup
- A bug in this old version of ANGLE lists
D3DFMT_D32
as a possible depth format but then proceeds to not handle it in the OpenGL conversion, causing anUNREACHABLE
to occur and thus a crash. - Disabled
D3DFMT_D32
for this game.
- A bug in this old version of ANGLE lists
- Fixed autosculpt in Need for Speed: Carbon
- Mark
MANAGED
as needing an upload in Lock rather than Unlock, the game relies on this quirk as it doesnt unlock it until after the frame but still expects you to see the preview by locking it.
- Mark
- Carried over the The Sims 2 app profiles over to the spinoff titles (@nelsonjchen)
- Fixed black trees in Risen 1
- Position needed to be marked as invariant.
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! ❤