IF + Iris + GeckoLib armours + JEI + Glow effect on mobs = Crash when opening inventory
Closed this issue · 2 comments
Short description
So when using the following combination of mods/elements present:
- A mod containing custom armours that uses
GeckoLib(e.g. Iron's Spells 'n Spellbooks, Advanced AE2, Ars Nouveau) ImmediatelyFast(withhud_batchingon or off)Iris(just present, no shaders need to be enabled)- Glowing effect (
minecraft:glowing) present on and visible on mobs in world
The following issues occur:
- Often, but not always, equipment in inventory starts leading behind trailing ghost glitches to top left corner like like so:
- After a couple minutes, opening inventory (or just having it open) often leads to a crash
- After a couple minutes, (re)gaining glowing effect on mobs and opening inventory pretty much guaranteed leads to a crash
Reproduction
This issue is present in various MC 1.21.1 modpacks using NeoForge, for this I have a narrowed down NF 21.1.209 instance using the following mods.
Modlist:
curios-neoforge-9.5.1+1.21.1 (iron's dependency)
forbidden_arcanus-2.6.1 (source of global mob glow effect)
geckolib-neoforge-1.21.1-4.8
ImmediatelyFast-NeoForge-1.6.6+1.21.1
iris-neoforge-1.8.12+mc1.21.1
irons_spellbooks-1.21.1-3.14.3 (contains armour sets that use geckolib)
jei-1.21.1-neoforge-19.22.1.316
player-animation-lib-forge-2.0.1+1.21.1 (iron's dependency)
sodium-neoforge-0.6.13+mc1.21.1 (iris dependency)
valhelsia_core-neoforge-1.21.1-1.1.5 (forbidden arcanus dependency)
Modlist explanation:
While the core mods that when disabled make the crash go away are Geckolib + some Geckolib armour set + Iris + ImmediatelyFast + JEI, the other mods in that list make reproduction much more convenient and quicker (reproduction within minutes instead of potentially hours).
For Geckolib, some mod that actually provides armours using Geckolib is needed. I've chosen Iron's Spells 'n Spellbooks for this, but this issue has occurred with armours from Advanced AE2 (quantum suit) and Ars Nouveau too. Numerous armour sets can all cause this issue, but for this I've chosen a Lightbringer Chestplate (irons_spellbooks:paladin_chestplate) and Shadow-Walker Leggings (irons_spellbooks:shadowwalker_leggings). These have to simply be worn, nothing else necessary.
Forbidden Arcanus provides a Spectral Eye Amulet which when anywhere in inventory gives all mobs the glowing effect that's also needed to cause this issue - this mod is just a convenient way to get this, it's been reproduced by other methods giving such a glowing effect like RFTools' Environmental Controller, or even with just a /effect give @e[type=!player] minecraft:glowing 5 command but that one is very finicky at reproducing this).
Reproduction steps
- Create new world (with commands on)
- Give yourself the following:
- A minecraft chest (
minecraft:chest) and place it down - A Lightbringer Chestplate (
irons_spellbooks:paladin_chestplate) and equip it - A Shadow-Walker Leggings (
irons_spellbooks:shadowwalker_leggings) and equip it - A Spectral Eye Amulet (
forbidden_arcanus:spectral_eye_amulet), make sure to look towards a direction with glowing mobs on screen and keep facing those for rest of the process
- Open chest and put the Spectral Eye Amulet into it, close chest
- Wait about 3-5 minutes
- Open chest, grab Spectral Eye Amulet to inventory (e.g. shift click it), close chest, and open Inventory
This should result in an immediate JVM crash. This whole process can happen in various different ways, but this is one of the quickest and most consistent ways to reproduce it.
Logs
hs_err_pid log produced from such a crash: https://mclo.gs/rSHuwjb
(latest and debug logs abruptly end without any further info, but here they are just in case: latest.log and debug.log)
Here's the issue thread on FTB's github with possible extra information, all happening when using FTB Evolution modpack: FTBTeam/FTB-Modpack-Issues#9046
Report on Iris' side: IrisShaders/Iris#2866
The issue should be fixed. Please confirm it, by testing it again with this version: https://github.com/RaphiMC/ImmediatelyFast/actions/runs/17955179155
Explanation: The issue is actually pretty complex, in that it requires multiple mods to misbehave. Geckolib is the root cause. It renders into the outlines buffer during inventory rendering (The player character in the inventory screen) which it should not, because outlines were already rendered at that point. In vanilla this causes a graphical issue and with Iris it causes it to write into memory, thats no longer valid (Hence the JVM crash). I implemented a workaround, by clearing the outlines buffer after screen rendering
In my test setup I could pretty much reproduce the issue 100% within 2-3 minutes, when trying it with the new snapshot I couldn't reproduce it in any way as of half an hour now including the telltale inventory glitches long before a crash so this seems to be working!
Thank you very much for the work on this, especially as it's not likely that Geckolib 4 will have this fix backported from 5 (which was a partial rewrite for MC's 1.21.5+ render update) from what I heard on their discord so it'd be down to IF or Iris. I'll let you know if I find anything further on it with more testing.