protonscr

All Serious Engine games (Serious Sam, Talos Principle) incorrectly detect the driver version

dxvkclosed
doitsujin/dxvk#2461 · opened 2022-01-27 by adolfintel · updated 2022-01-27 · 4 comments · github
Aadolfintel 2022-01-27 github

When using DXVK, all Serious Engine games complain at launch about the video driver being too old. Looking at the logs, it seems to think that the driver version is 0.0.0.1008

I'm not sure how the game determines this version, as the only function that I could find in DXVK that returns a driver version seems to return the maximum positive 32 bit integer and is detected as 65535.65535 by most games.

The problem can be worked around by replacing the content of SeriousSam4/Config/CheckDriver.lua with gfx_iReqDriverVersion = 0;, after which, the games run perfectly.

OS: Manjaro with Linux 5.16
Wine: wine-ge 7.0
DXVK: 1.9.4 (built from current master)
GPU: AMD 6900XT

Tested games: The Talos Principle, Serious Sam 4, Serious Sam Siberian Mayhem

KK0bin maintainer 2022-01-27 github

Does it read a proper driver version with WineD3D?

Aadolfintel 2022-01-27 github

Nope, looks like it gets the same version from WineD3D. Maybe it reads it from some inf file?

KK0bin maintainer 2022-01-27 github

D3D11 has no way to query the driver version so games often use something like NvAPI/AMD AGS to do that.

Aadolfintel 2022-01-27 github

Oh yeah, there's an amd_ags dll in the game files, thanks for the info. I'll see if there's some way to trick it into reporting another version

Nothing extracted yet.