VKD3D-Proton is a fork of VKD3D which aims to implement the full Direct3D 12 API on top of Vulkan. The project serves to develop support for Direct3D 12 in Proton.
This release focuses on performance and bug fixes.
- Improved paging chain latency and one-frame interval between frames.
- Format information retrieval has been optimized.
- Eliminated stuttering when compiling pipeline in certain scenarios.
- Rewritten how image compositing is handled for color and stencil targets.
Eliminates a lot of barriers, which gives significant performance gains when tied to the GPU.
~15%-20% increase in GPU performance in Horizon Zero Dawn, ~10% in Death Stranding, and 5%-10% increase in many other games.
- Enabling support for sparse 3D textures (tile level 3 resources).
- Bug fixes and workarounds
- Various bug fixes in DXIL.
- Fix for a weird bug where the sun was coming through the walls in RE: Village.
- Fix for a bug in the game Cyberpunk 2077 where a black screen was displayed in some locations.
- Fixes for various bugs (in benchmark and vkd3d-proton) allowing GravityMark to run.
- Improved robustness to some application bugs related to NULL descriptors.
- Fixed bug with FP64 constant vector processing in DXBC.
- Fixed a bug where the Cyberpunk 2077 inventory screen was causing false GPU hangs on RADV.
- Added workaround for Necromunda: Hired Gun when character models displayed random garbage on RADV.
- Fixed a bug in Necromunda: Hired Gun that was causing random screen flickers.
- Fixed windowed mode tracking when exiting full screen. Fixed Alt-Tab handling in Horizon Zero Dawn.
- Temporary workaround for SRV ResourceMinLODClamp. Fix for black earth rendering in DIRT 5.
- However, excessively bright HDR rendering in DIRT 5 unfortunately persists :(
- Correct maximum swapchain delay has been implemented.
Features for developers:
Various features useful for developers have been added to make debugging easier.
- Descriptor QA can instrument runtime shaders for GPU checks.
Performance is high enough (> 40 FPS) that games can be played in this mode.
See the README for details.
- Enabled to forcibly disable the CONCURRENT queue and use the EXCLUSIVE queue.
Invalid, but can be useful as a speed hack on Polaris when single_queue is not an optionand for testing differences in driver behavior.
See here for more details.