I've been experiencing problems with open-source AMD GPU driver and specific OpenGL applications. Particularly, Tabletop Simulator and Left 4 Dead 2 exhibit this behavior. After a few minutes since game launches, it (apparently randomly) deadlocks, screen stops to refresh. If game is minimized and maximized again, it will show black screen. From this state, it could only be closed with SIGINT in terminal or SIGKILL. Left 4 Dead 2 has similar issue, but unlike Tabletop Simulator, it doesn't seem to deadlock in main menu.
Dual AMD Radeon RX 480 (Polaris 10).
4.7.0 kernel with AMD GPU built as module (PowerPlay component enabled).
mesa git (9999).
xf86-video-amdgpu git (9999).
Direct Rendering works, GPU is detected according to glxinfo:
direct rendering: Yes
OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.2.0 / 4.7.1-gentoo, LLVM 3.7.1)
XOrg log shows GPUs are initialized:
[ 30.903] (II) AMDGPU(G0): [DRI2] Setup complete
[ 30.903] (II) AMDGPU(G0): [DRI2] DRI driver: radeonsi
[ 30.903] (II) AMDGPU(G0): [DRI2] VDPAU driver: radeonsi
[ 30.905] (**) AMDGPU(G0): DRI3 enabled
[ 30.963] (II) AMDGPU(0): [DRI2] Setup complete
[ 30.963] (II) AMDGPU(0): [DRI2] DRI driver: radeonsi
[ 30.963] (II) AMDGPU(0): [DRI2] VDPAU driver: radeonsi
[ 30.964] (**) AMDGPU(0): DRI3 enabled
[ 31.036] (II) GLX: Initialized DRI2 GL provider for screen 0
DRI3 is enabled (though GLX uses DRI2 for some reason).
Here's my device configuration:
Identifier "AMD Radeon RX 480 (POLARIS10)"
Option "DRI" "3"
Option "AccelMethod" "glamor"
Before deadlock, nothing is printed to terminal. I've also attempted using GALLIUM_HUD environment variable to display various information. There's nothing unusual right before deadlock (no VRAM usage spike, no high GPU load, etc). Deadlocks seem to be completely random (I see no relation between scene complexity, CPU load, etc). I.e. it may deadlock both on idle scene and during active physics simulation (in case of Tabletop Simulator). Looks like an AMD GPU issue.
If additional info is needed, let me know.
This could be a duplicate of bug 97174, try the LD_PRELOAD / LIBGL_DRI3_DISABLE workarounds described there.
Yes, that worked, many thanks! Looks like this was Steam's bug rather than driver's failure.
*** This bug has been marked as a duplicate of bug 97174 ***