Sporif/dxvk-async

If this is an improvement to DXVK, why doesn't the author of DXVK implement it?

g-k-m opened this issue · 6 comments

g-k-m commented

If this is an improvement to DXVK, why doesn't the author of DXVK implement it? What's the catch?

After the initial controversy where it got pulled from official dxvk (tho it's debated whether there even was any legit anti cheat issues related to dxvk, but he didn't want to deal with any shitfall legit or not) the dev decided that he didn't think it was the correct way to handle the shader stutter issue anyway.

It is a bit of a hack and can cause graphical issues while shaders compile because the game might try to render something before a background shader thread is done. I don't know how much it happens in practice though.
That's not to say that dxvk-async isn't useful because it does alleviate one of the traditional sore points of dxvk, which is why it is so popular.
The official dxvk version have another way to deal with this now since 2.0.

Tho note i was not around back then myself nor am i familiar with the technical inners of any of this so i might get some details wrong.

Heh, except the fact that even dxvk GIT is crap stutter-wise

After the initial controversy where it got pulled from official dxvk (tho it's debated whether there even was any legit anti cheat issues related to dxvk, but he didn't want to deal with any shitfall legit or not) the dev decided that he didn't think it was the correct way to handle the shader stutter issue anyway.

It is a bit of a hack and can cause graphical issues while shaders compile because the game might try to render something before a background shader thread is done. I don't know how much it happens in practice though. That's not to say that dxvk-async isn't useful because it does alleviate one of the traditional sore points of dxvk, which is why it is so popular. The official dxvk version have another way to deal with this now since 2.0.

Tho note i was not around back then myself nor am i familiar with the technical inners of any of this so i might get some details wrong.

Do you know what exactly might be the new thing in v2.0? I just tried it and the stutters are horrible. Is there any other setting that might help with this?

https://github.com/doitsujin/dxvk/releases/tag/v2.0
You can read about it under "Shader compilation changes"

Currently only Nvidia have the required extension in a stable release.
The ideal use of the extension also depends on the game as some games wont try to load their shaders up front. UE4 games usually being especially bad unless you force it with some extra engine variables (they have a bad reputation sometimes even on Windows). Tho even at draw time it should be a bit better than before.
A few smaller changes are also coming in next release afaik

AMD has the extension in Git, enabled by an environment variable.

Intel has it unmerged, in limbo or something.

And async is still better on Windows, for Arc cards, where Intel is also unlikely to implement Graphics Pipeline Library extension unless it becomes a mandatory part of some spec they intend to support.