Update: Binaries were re-built with 03c6df56c1a114a2eda77acd49eda865e6363679 due to a potential bug in GCC 9.1.
VK_EXT_shader_demote_to_helper_invocation extension is now used to implement the
discard instruction in shaders, which may improve performance in some games. This requires a winevulkan update, as well as the following driver versions:
- AMD: Not supported
- Intel: Mesa 19.2-git
- Nvidia: 418.52.14 (Vulkan beta)
Additionally, the previous early-discard optimization which works without this extension has been enabled on RADV with the ACO compiler backend. It is not enabled with the default LLVM backend due to LLVM bugs.
In order to reduce stalls on the main rendering thread, presentation is now being performed on the command submission thread that was introduced in DXVK 1.2. This can improve performance especially in scenarios with high frame rates and when command submission is expensive.
One game that benefits is Quake Champions on AMD GPUs.
Resource upload chages
If available, DXVK will now use the copy engines of the Vulkan device for initial resource uploads. This may slightly improve frame time consistency if a game loads a large number of textures during gameplay. Currently, this is only supported on the AMDVLK and Nvidia drivers.
Bug fixes and Improvements
- Removed busy-waiting during presentation. This change will most likely not affect performance, but can reduce CPU load considerably in GPU-limited scenarios.
- Improved error logging in out-of-memory conditions (PR #1112)
- Improved MSVC compatibility (PR #945, PR #1110)
- Fixed incorrect behaviour when an already mapped image subresource gets mapped again. Encountered in Final Fantasy XIV.
- Scrap Mechanic: Fixed crash caused by incorrect
RSGetViewportbehaviour (#1116, PR #1117)