[Linux] "Failed to compile vertex shader stage" on second core launch since upgraded to 1.10.0
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
Description
Since i upgraded to RetroArch 1.10, slang shaders do not apply the second time i launch a core (whatever the core, i use a global preset). On the second run there is the following error:
[INFO] [Shaders]: Specific shader preset found at "/home/ben/.config/retroarch/config/global.slangp".
[INFO] Watching file for changes: /home/ben/.config/retroarch/shaders/shaders_slang/crt/crt-lottes-multipass-glow.slangp
[INFO] Watching file for changes: /home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-easymode-halation/linearize.slang
[INFO] Watching file for changes: /home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-easymode-halation/blur_horiz.slang
[INFO] Watching file for changes: /home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-easymode-halation/blur_vert.slang
[INFO] Watching file for changes: /home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-easymode-halation/threshold.slang
[INFO] Watching file for changes: /home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-lottes-multipass/bloompass.slang
[INFO] Watching file for changes: /home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-lottes-multipass/scanpass-glow.slang
[INFO] [slang]: Compiling shader: "/home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-easymode-halation/linearize.slang".
[ERROR]
[ERROR] [slang]: Failed to compile vertex shader stage.
[ERROR] [Vulkan]: Failed to compile shader: "/home/ben/.config/retroarch/shaders/shaders_slang/crt/shaders/crt-easymode-halation/linearize.slang".
[ERROR] [Vulkan]: Failed to create preset: "/home/ben/.config/retroarch/config/global.slangp".
First run after launch retroarch is OK. If i close retroarch, then restart it works again (but on the second run the same error occurs again of course).
To make things simple, i have to quit Retroarch each time i change a core/game to make shaders work again.
Expected behavior
Slang shaders is applied on every core launch without having to shutdown and restart Retroarch.
Actual behavior
Shaders do not apply second time a core is run after retroarch is launched.
Steps to reproduce the bug
(Consider a slang shader preset is configured globally)
- Start retroarch
- Launch a content
- Notice the shader preset is correctly applied
- Close content (simple content restart through quick menu does not apply here, content has to be closed)
- Launch another content (or the same, no matter)
- Notice this time the shader preset is not applied at all
Bisect Results
Issue appeared just after upgrading to 1.10 through pacman (archlinux). Previous versions did not have this issue.
Version/Commit
- RetroArch: 1.10.0 - b71be7efd2
Environment information
- OS: Archlinux
Verbose logs of a RA session
retroarch.cfg.txt
EDIT:
- Only slang shaders are affected (works ok with GLSL)
- v1.9.14 is not affected by this bug
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the second core launch with the global.slangp preset and reviewing the linked verbose session log, comparing the affected 1.10.0 build with 1.9.14. Trace the Vulkan slang shader compilation path after content closes; done means the preset applies successfully on every subsequent launch without restarting RetroArch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, linux
- Domain
- computer-graphics, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100