Frogging-Family / wine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds
861 stars 156 forks source link

DXVK GPL Async #1057

Closed GrabbenD closed 1 year ago

GrabbenD commented 1 year ago

DXVK-Async project aimed to eliminate stutter caused by shaders. However, the project never got included in TKG (https://github.com/Frogging-Family/wine-tkg-git/issues/807) and ultimiately it was discontinued (and even removed from ProtonGE) since:

DXVK ASYNC was a hack to skip shader compilation stutter by not waiting for shaders to compile. It avoids the stutter but can in its place introduce graphical bugs such as seeing through walls while shaders are being compiled, which is unacceptable in competitive games especially.

Which ultimately could result in anticheats being triggered:

It was removed because it can possibly trigger anticheat due to behaving similarly to how things like wallhacks work.

However, it seems like there's a new project which continues the work of DXVK-Async which instead is built with GPL: https://gitlab.com/Ph42oN/dxvk-gplasync

It sounds like this should eliminate shader stutter without triggering anticheat:

GPL (Graphics Pipeline Library) similarly is able to avoid stutter in many cases (but not all cases) but without the graphics bugs. It does, however, require drivers to support the relevant Vulkan extension, which only very recent drivers do.


Some DX12 games like Halo Infinite has been suffering from intermittent stutter for years which is massively reduced just by walking around the map (until the next round starts). Seems like shaders is still a big source of stuttering even with Mesa 23.1.6

What do you think about introducing optional support for dxvk-gplasync to combat this issue?

Tk-Glitch commented 1 year ago

D3d12 games don't make use of dxvk so this is totally irrelevant for Halo.

Regarding d3d9-11 it doesn't make much sense anymore since gpl support was added. The worst offenders were afaik Quake champions, Apex legends (in d3d11 mode) and Dishonored 2 (path off exile was the last one but got a vulkan renderer which works much better than the d3d11 one ever did). Those games are playing fine with gpl tbh.

Tk-Glitch commented 1 year ago

Btw, the asynchronous pipeline compiler hack was actually offered in -tkg tools at some point, and was removed when it became irrelevant following functional gpl support in both radv and dxvk.

GrabbenD commented 1 year ago

Thanks a ton for the details and quick answer @Tk-Glitch!

You're right, it's default in Mesa 23.1+. By the way, while researching how to use this, I came across the author's request about adding it to https://github.com/Frogging-Family/dxvk-tools/issues/25, perhaps he has more details why it's still useful today (I'm closing this duplicate ticket)

Well.. It's unfortunate that this wont resolve my stuttering issues in Halo Infinite, I've been trying for months to find a solution 🙁