metro redux games crash upon loading certain levels on amdgpu
system info
- os: manjaro kyria 19.0.2 with kernel 5.5.13-1
- gpu: radeon r9 390 (also rx 580 8gb and r5 integrated gpu)
- mesa: 20.1.0-devel (mesa-git from standard pamac package manager)
- x server: 1.20.8
hi! this is my first bug report, so forgive me if i'm doing something wrong or don't give sufficient info :)
the issue i'm encountering in both metro redux games is that it crashes when loading specific levels, such as "the enemy of my enemy" (metro: last light redux) and "dungeon" (metro 2033 redux) levels. from my testing the crash does not occur randomly throughout the game, but only when loading these levels, which is reproducible every time. the bug effectively stops me from progressing in the story. the loading screen appears regularly, then hangs for a moment, then displays correctly again for half a second and then shows a static image again for maybe 15 to 20 seconds, after which the game closes to desktop. when the image freezes, the music also stops playing. the steam fps counter disappears at the start of the second image freeze as well. the game crashes after only 5 to 10 seconds when on lower graphics settings. the issue also sometimes causes web browser tabs in the background to crash.
i strongly assume that it must be an amdgpu/radeonsi related issue, since i have never encountered this issue on the proprietary nvidia drivers, with everything in the system being identical except the video card. nouveau on a gtx 770 also worked without issue (as did a terascale 2 hd 6320 integrated gpu using the radeon drivers, if i recall correctly). the only problematic gpus were my laptop gpu (gcn integrated r5 gpu on an a8 7410), my rx 580 8gb and r9 390, all running amdgpu. i encountered the issue maybe a year ago on my laptop, but i can't say if it ever worked correctly.
the only vaguely related bug report was this one #557, which mentions hyperz. rerunning with R600_DEBUG=nohyperz however did not fix the issue.
i ran a trace with apitrace, but it put out an 8gb file after maybe 30 seconds, so i doubt that i'm doing it correctly. if there is anything else i can do to help you reproduce the issue, please tell me what to do.
i would really appreciate it if you could have a look at this problem, as i assume many other people might encounter it as well when the native version of metro exodus releases soon and they want to replay the first two games.
thanks!