[Crocus] Grand Theft Auto: San Andreas + gallium-nine GPU hang
System information
System: Host: val Kernel: 5.13.6-200.fc34.x86_64 x86_64 bits: 64 compiler: gcc v: 2.35.1-41.fc34 Desktop: KDE Plasma 5.22.4
tk: Qt 5.15.2 wm: kwin_x11 dm: SDDM Distro: Fedora release 34 (Thirty Four)
CPU: Info: Dual Core model: Intel Core i7-2640M bits: 64 type: MT MCP arch: Sandy Bridge rev: 7 cache: L2: 4 MiB
flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 22327
Speed: 2082 MHz min/max: 800/3500 MHz Core speeds (MHz): 1: 2082 2: 2863 3: 2872 4: 1688
Graphics: Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics vendor: Lenovo driver: i915 v: kernel
bus-ID: 00:02.0 chip-ID: 8086:0126
Display: x11 server: X.Org 1.20.11 compositor: kwin_x11 driver: loaded: intel unloaded: fbdev,modesetting,vesa
resolution: 1366x768~60Hz s-dpi: 96
OpenGL: renderer: Mesa DRI Intel HD Graphics 3000 (SNB GT2) v: 3.3 Mesa 21.2.0 compat-v: 3.0 direct render: Yes
- Wine/Proton version: wine 6.13
- gallium-nine v0.8.0.385
Describe the issue
Grand Theft Auto: San Andreas leads to GPU hang right after starting the game when used on Intel HD 3000 (gen 6) with d3dadapter9 + gallium-nine.
The game works fine on Radeon HD 5450 (r600) with exactly the same software setup.
How to reproduce
- Install Grand Theft Auto: San Andreas (I have Russian 1C release, but that shouldn't matter)
- Install gallium-nine and ensure it is enabled correctly
- Run the game with
MESA_LOADER_DRIVER_OVERRIDE=crocus
- Start the game process (new game).
Right after the intro scene the GPU hangs.
Log files as attachment
gta-sa-crocus-gpu-error.bz2
gta-sa-gpu-hang-d3d9.trace.xz
Any extra information would be greatly appreciated
On kernel 5.4, the game causes GPU hangs after ≈every frame. This kernel version properly resets the GPU every time, so the system could be recovered (or sometimes the game crashes with wine crash window).
On newer kernels (5.13), the behavior is a bit different: there's only a single GPU hang message in dmesg, the game continues to work (you can blindly walk in the game or press escape and hear menu item selection sound etc) but the GPU never recovers even after closing the game: all you see are two last buffers between which the GPU switches indefinitely until logging out or rebooting the system.
No issues when the game is running with built-in Wine d3d→opengl translation (without gallium-nine).