Is there an existing issue for this?
Description
When "Load shader preset on content load" (auto-apply shader preset) is enabled and the shader preset is CRT Royale (a preset that recursively #references many sub-preset/shader files), RetroArch triggers an Android ANR ("Input dispatching timed out ... Waited 5000ms for KeyEvent") shortly after cold-starting content. Tapping "Wait" in the ANR dialog does not resolve it — the ANR recurs roughly every 5 seconds until the the process is killed.
I've also noticed the ANR appears tied to content/ROM size: with a small ROM (e.g. Street Smart), auto-loading CRT Royale on cold start does not trigger the ANR. With a larger ROM (e.g. The Crystal of Kings), the same auto-load triggers it.
Applying the exact same CRT Royale preset manually via the Quick Menu while content is already running works fine with only a brief, sub-5-second hitch — no ANR. The problem only appears when the preset is loaded automatically during the cold-start/content-load path.
Expected behavior
Shader preset loads (with a normal loading hitch) without triggering an ANR, matching the behavior of manually loading the same preset from the Quick Menu during an active session.
Steps to reproduce the bug
- Set a CRT Royale shader preset as the active shader for a core (e.g. via core/content shader override) with "auto-apply shader preset on content load" enabled
- Fully close RetroArch (kill process)
- Relaunch RetroArch and load the same content Observe ANR dialog within a few seconds of the content loading
Version/Commit
Android (aarch64), latest stable (1.22.2)
Bisect Results
No response
Present in the nightly version
I don't know
Platform & operating system
Android 16
Affected Cores
mame(current), fbneo
Environment information
Device: Lenovo Yoga Pad Pro 12.7 (TB520FU), Snapdragon 8 Gen 3
anr_2026-09-01-12-42-04-961.txt
Relevant log output
Subject: Input dispatching timed out (a68fb05 com.retroarch.aarch64/com.retroarch.browser.retroactivity.RetroActivityFuture is not responding. Waited 5000ms for KeyEvent).
"Thread-3" sysTid=16091
#00 string_tokenize
#01 glslang_read_shader_file+500
#02 glslang_read_shader_file+1400
#03 glslang_read_shader_file+1400 <- recursive re-entry (reference chain)
#04 slang_preprocess_parse_parameters+68
#05 (libretroarch-activity.so, offset only)
#06 video_shader_load_preset_into_shader+808
#07 menu_shader_manager_init+472
#08 (libretroarch-activity.so, offset only)
#09 (libretroarch-activity.so, offset only)
#10 rarch_main+528
Starting game: "/storage/emulated/0/ROMs/arcade/SNK/crysking.zip"
Game name: crysking
Game description: The Crystal of Kings
[Environ] SET_ROTATION: "0" (0 deg).
[SRAM] SRAM 불러오기 건너뛰는 중.
[Core] libretro API 버전: 1, 컴파일 대상 API: 1
[Core] Geometry: 320x240, Aspect: 1.333, FPS: 60.05, Sample rate: 48000.00 Hz.
[Video] Set video size to: 960x720.
[Vulkan] Vulkan dynamic library loaded.
[Vulkan] Setting swap interval: 1.
[Vulkan] Created Android surface: 529145507744.
[Vulkan] Found GPU at index 0: "Adreno (TM) 750".
[Vulkan] Using GPU index 0.
[Vulkan] Using semaphores for WSI acquire.
[Vulkan] Using GPU: "Adreno (TM) 750".
[Vulkan] Queue family 0 supports 3 sub-queues.
[Vulkan] Got 6 swapchain images.
[Vulkan] Native window size: 2944x1840.
[Vulkan] Using resolution 2944x1840.
[Vulkan] Using BGRA8888 format.
[Shaders] Specific shader preset found at "/storage/emulated/0/RetroArch/config/MAME/MAME.slangp".
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #0.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #1.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-approx.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #2.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/blurs/shaders/royale/blur9fast-vertical.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #3.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/blurs/shaders/royale/blur9fast-horizontal.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #4.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang".
[Vulkan] Using render target format R8G8B8A8_UNORM for pass output #5.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang".
[Vulkan] Using render target format R8G8B8A8_UNORM for pass output #6.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #7.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-brightpass.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #8.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-vertical.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #9.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang".
[Vulkan] Using render target format R8G8B8A8_SRGB for pass output #10.
[Slang] Compiling shader: "/data/user/0/com.retroarch.aarch64/shaders/shaders_slang/crt/shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang".
[Vulkan] Using render target format R8G8B8A8_UNORM for pass output #11.
[Vulkan] Creating framebuffer 1024x1024 (max 1 level(s)).
[Vulkan] Creating framebuffer 1024x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 64x105 (max 1 level(s)).
[Vulkan] Creating framebuffer 140x105 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 4294967295 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Input] Found joypad driver: "android".
[Video] Found display server: "android".
[Audio] Set audio input rate to: 47956.48 Hz.
[Vulkan] Creating framebuffer 1024x1024 (max 1 level(s)).
[Vulkan] Creating framebuffer 1024x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 64x105 (max 1 level(s)).
[Vulkan] Creating framebuffer 140x105 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 4294967295 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[OpenSL] Requested audio latency: 128 ms.
[OpenSL] Setting audio latency: Block size = 768, Blocks = 32, Total = 24576...
[Audio] Started synchronous audio driver.
[Display] Found display driver: "vulkan".
[Vulkan] Native window size: 2944x1840.
[Vulkan] Creating framebuffer 1024x1024 (max 1 level(s)).
[Vulkan] Creating framebuffer 1024x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 320x240 (max 1 level(s)).
[Vulkan] Creating framebuffer 64x105 (max 1 level(s)).
[Vulkan] Creating framebuffer 140x105 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 4294967295 level(s)).
[Vulkan] Creating framebuffer 2240x1680 (max 1 level(s)).
[Vulkan] Updating framebuffer size 320x240 (format: 43).
[Vulkan] Updating framebuffer size 320x1680 (format: 43).
Is there an existing issue for this?
Description
When "Load shader preset on content load" (auto-apply shader preset) is enabled and the shader preset is CRT Royale (a preset that recursively #references many sub-preset/shader files), RetroArch triggers an Android ANR ("Input dispatching timed out ... Waited 5000ms for KeyEvent") shortly after cold-starting content. Tapping "Wait" in the ANR dialog does not resolve it — the ANR recurs roughly every 5 seconds until the the process is killed.
I've also noticed the ANR appears tied to content/ROM size: with a small ROM (e.g. Street Smart), auto-loading CRT Royale on cold start does not trigger the ANR. With a larger ROM (e.g. The Crystal of Kings), the same auto-load triggers it.
Applying the exact same CRT Royale preset manually via the Quick Menu while content is already running works fine with only a brief, sub-5-second hitch — no ANR. The problem only appears when the preset is loaded automatically during the cold-start/content-load path.
Expected behavior
Shader preset loads (with a normal loading hitch) without triggering an ANR, matching the behavior of manually loading the same preset from the Quick Menu during an active session.
Steps to reproduce the bug
Version/Commit
Android (aarch64), latest stable (1.22.2)
Bisect Results
No response
Present in the nightly version
I don't know
Platform & operating system
Android 16
Affected Cores
mame(current), fbneo
Environment information
Device: Lenovo Yoga Pad Pro 12.7 (TB520FU), Snapdragon 8 Gen 3
anr_2026-09-01-12-42-04-961.txt
Relevant log output