mirror of
https://github.com/lucannez64/darling-lol.git
synced 2026-10-26 19:47:42 +00:00
LLVM 23 represents vector splats such as `<3 x float> zeroinitializer` as vector-typed ConstantFP/ConstantInt values instead of ConstantAggregateZero/ConstantDataVector. Iridium only handled scalar ConstantFP/ConstantInt, so on hosts with LLVM 23 nearly every League shader failed to translate: the r3dlog fills with "Failed to compile shader", the loading screen hits "Material Missing Pipeline" and the game crashes. Our matches had only run the overlay pinned to LLVM 22. Declare the scalar element and splat it into a constant composite. Offline, on the 74,112 metallibs in ShaderCache.metal.wad.client, LLVM 23 went from ~2% to 74,108 translated, the same set as LLVM 22 (the 4 remaining failures are pre-existing on both); a sample of the LLVM 23 SPIR-V passes spirv-val for Vulkan 1.3. Confirmed in a match with the Iridium overlay built against the system LLVM 23. RIOT_IRIDIUM_SYSTEM_LLVM=1 makes build-riot-indium-runtime.py ignore the LLVM 22 pin, to build what a fresh checkout gets. Refs #1 Co-Authored-By: Claude Opus 5.5 <[email protected]>