libretro / libretro/RetroArch

[Linux] "Failed to compile vertex shader stage" on second core launch since upgraded to 1.10.0

Open
#13,583 15 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

glslang gpu api: vulkan platform: linux
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)

  1. Start retroarch
  2. Launch a content
  3. Notice the shader preset is correctly applied
  4. Close content (simple content restart through quick menu does not apply here, content has to be closed)
  5. Launch another content (or the same, no matter)
  6. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.