mirror of
https://github.com/lucannez64/darling-lol.git
synced 2026-10-26 19:47:42 +00:00
Translate LLVM 23 vector splat constants in Iridium
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]>
This commit is contained in:
1 parent
1828169e57
commit
f5c46c6529
3 files changed
+73
-42
No files matched your search
@@ -135,6 +135,7 @@ A separate multi-window path stopped the active async presenter when another dif
|
||||
- **OpenDirectory 32-bit ivar errors:** keep `TARGET_i386=OFF`; the supported client is x86-64.
|
||||
- **Undefined empty Objective-C collection symbols:** retain the patched macOS 10.15 Objective-C runtime code generation.
|
||||
- **LLVM branch opcode errors:** retain the Indium LLVM 22/23 compatibility patch; do not replace its branch handling with an unconditional version-specific opcode.
|
||||
- **Every game shader fails to compile on LLVM 23** (r3dlog full of `Failed to compile shader`, then `Material Missing Pipeline` and a crash before the loading screen; `/tmp/metal-errors.log` shows `Unsupported LLVM value: <3 x float> zeroinitializer`): LLVM 23 represents vector splats as vector-typed `ConstantFP`/`ConstantInt`, which Iridium did not translate. Indium now splats them itself. Rebuild and reinstall the Metal/Indium pair ([setup](SETUP.md#metal-and-indium-overlays)). The offline check `python3 tools/build-riot-air-check.py --native` translates shader libraries without the game.
|
||||
- **Build process killed:** lower parallelism, for example `JOBS=2 ./scripts/build.sh` or `--parallel 1` for an incremental component build.
|
||||
- **Incremental helper cannot find `flags.make` or `link.txt`:** use Unix Makefiles, not Ninja.
|
||||
- **Prebuilt Swift file contains Git LFS pointer text:** install Git LFS and fetch the original upstream assets; pointer text is not a usable library.
|
||||
|
||||
Reference in new issue
Block a user