glthread: Loading a shader cache in yuzu slows down with mesa_glthread=true
System information
System: Host: Qykopi Kernel: 5.11.8-140-tkg-bmq x86_64 bits: 64 compiler: gcc v: 10.2.0 Desktop: Xfce 4.16.0
tk: Gtk 3.24.24 wm: xfwm4 dm: GDM, LightDM Distro: Arch Linux
CPU: Info: 8-Core model: AMD Ryzen 7 2700X bits: 64 type: MT MCP arch: Zen+ rev: 2 cache: L2: 4 MiB
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 118303
Speed: 2134 MHz min/max: 2200/3700 MHz boost: enabled Core speeds (MHz): 1: 2134 2: 2135 3: 2075 4: 2157 5: 4152
6: 2132 7: 2118 8: 2133 9: 2142 10: 2125 11: 3039 12: 2382 13: 2197 14: 2134 15: 2121 16: 2152
Graphics: Device-1: NVIDIA GK104GL [Quadro K4200] driver: nvidia v: 460.67 bus-ID: 04:00.0 chip-ID: 10de:11b4
Device-2: Advanced Micro Devices [AMD/ATI] Tonga PRO [Radeon R9 285/380] vendor: XFX Pine driver: amdgpu v: kernel
bus-ID: 09:00.0 chip-ID: 1002:6939
Device-3: NVIDIA GM200 [GeForce GTX 980 Ti] vendor: ZOTAC driver: nvidia v: 460.67 bus-ID: 0a:00.0
chip-ID: 10de:17c8
Display: x11 server: X.Org 1.20.10 compositor: picom driver: loaded: amdgpu,nvidia unloaded: modesetting
resolution: 1: 2560x1440 2: 1920x1200~60Hz s-dpi: 96
OpenGL: renderer: AMD Radeon R9 380 Series (TONGA DRM 3.40.0 5.11.8-140-tkg-bmq LLVM 11.1.0) v: 4.6 Mesa 21.0.1
direct render: Yes
The primary GPU is AMD Radeon R9 380 4GB
Describe the issue
While trying to boot a guest application in yuzu, loading a shader cache is far slower and uses much less CPU. Typically, yuzu uses all of the CPU's cores to compile shaders, but with mesa_glthread=true
it now no longer does that. I observed the regression after updating from Mesa 20.3.4 to 21.0.1.
Regression
Caused by either 9edfbd62 or 8e7270de
Pointing at two commits rather than one or the related MR: I narrowed it to 9edfbd62, working my way down from mesa-21.0.0-rc1
until it starting working properly again, then back up. I was reluctant to test the earlier commit 8e7270de since it and the other seem related from their description.
Any extra information would be greatly appreciated
Sorry that I'm not able to give any more of a technical description than that. I know how to use git and can do some basic C++, not anything relevant to understanding either a graphics driver or an OpenGL application.