Emulator Issues #13433
openShader compilation triggered by graphics settings changes can't be aborted and will freeze up the GUI if attempted
0%
Description
Game Name?
Any
Game ID?
Any
MD5 Hash?
N/A
What's the problem? Describe what went wrong.
If you have "Compile shaders before starting" enabled and then, while a game is running, toggle a graphics settings which requires reloading the shaders (e.g. enabling/disabling "Per-Pixel Lightning" or MSAA), the game will pause and the shader compilation progress bar will show up. While the progress bar is showing, the compilation can't be aborted, trying to do so (e.g. clicking "Stop" button from Dolphin's toolbar) will freeze up the entire GUI until the compilation is finished.
What steps will reproduce the problem?
- Make sure "Compile shaders before starting" is enabled and boot any game
- While the game is running, enable/disable "Per-Pixel Lightning" or MSAA
- The game will pause and the shader compilation progress bar will now show up
- Before the shader compilation finishes, try to stop the emulation (e.g. Stop button in the toolbar)
- The entire GUI will now freeze, until the shader compilation is done
Is the issue present in the latest development version?
Yes. Tested on 5.0-20734
Is the issue present in the latest stable version?
N/A. Last stable doesn't have ubershaders, nor the "compile shaders before starting" option
If the issue isn't present in the latest stable version, which is the first broken version?
N/A
What are your PC specifications? (CPU, GPU, Operating System, more)
OS: Windows 11 Insider Preview (build 26016.1000)
CPU: Intel Core i7-11800H
GPU: NVIDIA GeForce RTX 3060 Laptop
Is there anything else that can help developers narrow down the issue?
I remember this used to be a issue when booting up games, you could cause the same GUI freeze by trying to stop emulation before the compilation was done. This is now fixed (pressing Stop in the toolbar will abort the shader compilation immediately and won't freeze the GUI), but it only works when booting up. Extending this behavior to cases where the shader compilation is triggered later (like when enabling/disabling "Per-Pixel Lightning" or MSAA while the game is running) should fix this issue.
No data to display