2026-09-15

Ryu r5 (2026/09/10)

Ryu r5 (2026/09/10) is released. A self-contained DLSS 5 graphics stack on top of vanilla Ryubing: upscaling + DLAA in one NGX evaluate, in-game Neural Rendering, and DLSS-G frame generation up to 2x/3x/4x. Upstream master merges in automatically every Monday; every push builds.

KytyPS5 Changelog:
r5 - 2026-09-10
SPIR-V call arguments. The AST optimizer no longer propagates an expression into a function-call argument when targeting SPIR-V, so the argument temporaries inserted by the structured program survive. This fixes translation of shaders whose texture helper calls take non-normalized coordinates. The fix is active by default. Covered by tests/ShaderCallArguments.
Vulkan graphics pipeline libraries (research, default off). RYUJINX_VULKAN_GPL=1 requests VK_EXT_graphics_pipeline_library on NVIDIA (non-macOS) devices. Ordinary VS+FS pipelines are then built from four cached libraries and linked without LTO; any unsupported state, cap or native failure falls back to the existing monolithic path, and device creation retries without the extension if it fails. Startup provisional libraries are capped at 512 and runtime libraries at 16,384. The game renderer still uses traditional renderpasses, so startup libraries have not yet been reused by real draws; see docs/totk-gpl-integration-2026-09-06.md.
ROM shader warmup and sharing (research, default off). RYUJINX_SHADER_ROM_WARMUP=1 builds a bounded synthetic pipeline for restored graphics programs that have no stored pipeline state (RYUJINX_SHADER_ROM_WARMUP_LIMIT, default 32). RYUJINX_SHADER_ROM_MODULE_SHARE=1 shares identical SPIR-V modules between such programs, and RYUJINX_SHADER_ROM_BINARY_SHARE=1 interns identical packed host binaries during cache loading. None of these read or write the user's shader cache contents.
Pipeline diagnostics (research, default off). With RYUJINX_SHADER_CACHE_PROBE=1, shader readiness and runtime hit messages carry a process-local hostObject identity, and the Vulkan backend logs first pipeline lookups, creation API times, GPL attempts and first-use key differences. The threaded program wrapper forwards the host identity without waiting.
Configurable shader cache loading parallelism. The disk shader cache loader's translation workers and in-flight host compile limit (previously a fixed 8) are now min(logical threads − 1, 8) by default and can be overridden with RYUJINX_SHADER_COMPILE_THREADS= (1–64). The uncapped threads − 1 setting was measured on a Ryzen 9800X3D (8 cores / 16 threads): 15 threads loaded a 100,792-record cache in 8:09 against 6:51 with 8, so the cap keeps the faster value on that class of machine; smaller machines get threads − 1.
Disk cache loader worker stack. The shader cache loader's translation threads now run with a 16 MiB stack (default was 1 MiB). A ROM-seeded Echoes of Wisdom cache crashed the process with an AccessViolationException inside the recursive SPIR-V generator during load; with the larger stack the same 37,232 records load completely. With RYUJINX_SHADER_CACHE_PROBE=1 the loader also logs disk program N translating before each record so a process-level crash can be attributed.
Uniform buffer binding guard. DescriptorSetUpdater.SetUniformBuffers now logs and skips a binding beyond the descriptor arrays instead of crashing the render thread with IndexOutOfRangeException (seen once with a ROM-seeded cache on Pokémon Violet; not reproduced since).
Standalone harnesses under tests/ and research tools under tools/ accompany these changes; they are outside Ryujinx.sln and are not shipped.

Download:Ryu r5 (2026/09/10)
Source:Here

0 Comments

Post a Comment