protonscr

Detect dxvk 3+

dxvkclosed question
doitsujin/dxvk#5791 · opened 2026-07-12 by jon-tr · updated 2026-08-03 · 7 comments · github
Jjon-tr 2026-07-12 github

I'm supporting an old game and prior to dxvk 3.0 I had to disable certain graphics features to stop rendering artifacts. With dxvk 3.0+ the game is now flawless, so I can turn those features back on.

Is there a reliable way to detect dxvk 3+ which will keep on working going forward?

Ddoitsujin maintainer 2026-07-12 github

which game is this specifically, which API, and do you know which change made it work?

In general there's no real way to distinguish between DXVK versions from the D3D side.

Jjon-tr 2026-07-12 github

Splinter Cell Chaos Theory Versus using the Reloaded or Enhanced mod and DXVK is loaded using x86 d3d9.dll. Lighting in this game was broken on modern windows/GPUs and previously I had to make a different fix for DXVK and regular DX. I never managed to get the 'God Rays' lighting effect to behave on DXVK before 3.0, so I had to turn it off and a few other effects got lost as a side effect. Now the regular DX fix is perfect on DXVK and I assumed it was the 3.0 shader rewrite which fixed it

Mmirh 2026-07-15 github

SK just checks for dxvk by scanning the dll for its name.
You can do the same for DXVK: and then after a NULL character you get your version.

Mmisyltoad 2026-07-15 github

please just remove your workarounds and not care about supporting older DXVK versions.

Ddoitsujin maintainer 2026-07-15 github

That is generally what I'd recommend as well, the only real problem I guess is communicating that Linux users will have to use proton-experimental for the forseeable future.

Mmirh 2026-07-15 github

Since the use case here is mainly resurrecting old games (chiefly on windows), I'm afraid some of their users might as well still be using 1.10 too.

Qqinlili23333 2026-07-19 github

I once had an idea to make DXVK version detectable by properly align DeviceIdentifier behaviour to Microsoft document (https://github.com/doitsujin/dxvk/pull/4869#discussion_r2060261986).
In my suggestion before we can combine GPU name and DXVK version to generate unique GUID for each combination.

Not sure whether we should go with such implementation, or we need some better solution.

But for this specific issue, my suggestion is simply don't do any special hack for DXVK, treat it as just some normal DX9 renderer, and it's user's responsibility to keep DXVK updated.

Proton versions

Upstream links

DLLs