mesa_glthread: Some games don't render or hang amdgpu driver on RPCS3 async render
Been testing this issue the whole day, this issue has just left me incredibly confused:
mesa_glthread=true, some games will not render using RPCS3 async shader compiler mode (others will work just fine). All tested games render fine on sync shader compiler mode on all scenarios. With
mesa_glthread=false the async (and sync) shader compiler mode works fine for all games.
Tested environments (RPCS3 Shader ASync mode):
- amdgpu with a R9 280X GCN1 GPU: Driver hangs the whole OS and requires it to be rebooted, seems to happen during shader compilation, maybe related to yuzu-emu #1348 (closed) or #2967 (closed)?
mai 13 12:58:08 crystal kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, signaled seq=5017, emitted seq=5019 mai 13 12:58:08 crystal kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process rpcs3 pid 2879 thread rpcs3:cs0 pid 2933
- amdgpu with a RX 470 Polaris10 GPU: The games render while displaying a black screen (can hear audio going fine).
- iris with a HD 530: The games render while displaying a black screen (can hear audio going fine).
apitrace on the scenarios where the entire OS doesn't hang the trace gets replayed back properly with stuff rendering normally, even though in real-time nothing displayed.
I've tried enabling MESA_DEBUG logging, but nothing is logged, KHR_DEBUG logging in-app doesn't show anything as well. I'm not sure what kind of information do you need for this one. I have found how to reproduce this with a non-commercial, homebrew game, so I'll include the steps for it:
- Get RPCS3 and install the software requirements listed on Quickstart
- Start RPCS3 with
- Start RPCS3 with
- Install the UFO Racer v3.4 homebrew game (drag and drop package to the emulator UI)
- On Settings -> GPU -> Shader Mode you can alternate between ASync and Sync modes
- Boot the game, the issue happens immediately and the game doesn't display on ASync mode
Please ask for further information / logs / traces, whatever is helpful, as I have no clue what else to provide in this case.