Summary
When ImmediatelyFast has hud_batching enabled, the Iris Shader Pack Settings screen can become invisible when opened from inside a world.
After clicking the Shader Packs... button from the in-world video settings screen, the previous video settings UI disappears and the background blur is rendered. However, the Iris ShaderPackScreen foreground UI does not render. The shader pack list, buttons, title text, and other foreground UI elements are not visible.
The screen still accepts input. Pressing ESC returns to the previous menu, and clicking where shader pack entries would normally be can select a shader pack blindly.
If a shader pack is selected this way, Iris then starts applying/reloading the shader pipeline, which can cause a long freeze/hang. Because of this, the issue originally looked like the game was freezing immediately after pressing the Shader Packs button, but the primary issue appears to be that the ShaderPackScreen foreground UI is not rendered.
Setting ImmediatelyFast’s config option below to false prevents the issue:
With
the issue reproduces.
Environment
- Minecraft:
1.21.1
- Mod loader:
NeoForge 21.1.228
- ImmediatelyFast:
1.6.10+1.21.1
- Iris:
1.8.12+mc1.21.1
- Sodium:
0.6.13+mc1.21.1
- OS:
Windows 11 Home 25H2 (build 26200.8328)
- CPU:
11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz(2.40 GHz)
- GPU:
NVIDIA GeForce MX450 (2 GB)
Relevant mod set used for reproduction
This is the smallest reproduction set I have identified so far, including libraries/dependencies. I have not exhaustively tested every possible subset or combination, so I cannot guarantee that this is mathematically minimal. However, in this reduced set, disabling any one of the listed mods prevents the issue from reproducing.
- AppleSkin
3.0.9
- Architectury API
13.0.8
- Artifacts
13.2.1
- Create
6.0.10
- Create: Creating Space
1.7.17
- Create Aeronautics
1.2.1
- Create Big Cannons
5.11.3
- Curios API
9.5.1+1.21.1
- Deeper and Darker
1.4
- Farmer’s Delight
1.2.11a
- ImmediatelyFast
1.6.10+1.21.1
- Immersive Aircraft
1.4.3+1.21.1
- Iris
1.8.12+mc1.21.1
- Moonlight Lib
1.21-2.29.33
- Overflowing Bars
21.1.1
- owo-lib
0.12.15.5-beta.1+1.21
- Puzzles Lib
21.1.39
- Relics
0.10.7.8
- Ritchie’s Projectile Library
2.1.2
- Sable
1.2.2
- ShatterLib | OctoLib
0.6.1
- Sodium
0.6.13+mc1.21.1
- Supplementaries
1.21-3.5.34
- The Aether
1.5.10
- The Twilight Forest
4.8.3345
- Tom’s Simple Storage Mod
2.3.2
- Xaero’s Minimap
25.3.10
- Xaero’s World Map
1.40.11
Steps to reproduce
- Install the mod set listed above.
- Make sure ImmediatelyFast has this config:
- Launch the game.
- Enter a singleplayer/multiplayer world.
- Press
ESC and Open:
Options... -> Video Settings... -> Shader Packs...
- Observe that the background blur renders, but the Iris ShaderPackScreen foreground UI does not render.
Expected behavior
The Iris Shader Pack Settings screen should render normally in-world.
I should be able to:
- see the shader pack list,
- select a shader pack,
- disable shaders,
- press Done, Apply, Cancel, or etc...
- return to the previous menu normally.
Actual behavior
When I click the Shader Packs... button from the in-world video settings screen, the previous video settings UI disappears and the background blur is applied. However, the Iris ShaderPackScreen UI itself does not render.
No shader pack list, buttons, title text, or other foreground UI elements are visible. The screen only shows the blurred in-world background.
The screen still appears to accept input:
- Pressing
ESC returns to the previous menu.
- Clicking where shader pack entries would normally be can select a shader pack blindly.
- If a shader pack is selected this way, Iris applies/reloads the shader pipeline, which can then cause a long freeze/hang due to shader reload/compilation.
So this does not appear to be an immediate hard freeze. The ShaderPackScreen appears to open and process input, but its foreground UI is invisible/not rendered. The long freeze happens later if a shader pack is selected blindly and Iris begins shader reload/compilation.
Screenshots / visual evidence
Before clicking Shader Packs. The in-world video settings screen renders normally.
After clicking Shader Packs with ImmediatelyFast hud_batching=true. The previous video settings UI disappears and the background blur renders, but the Iris ShaderPackScreen foreground UI does not render.
Important isolation result
Changing only this ImmediatelyFast setting prevents the issue:
With hud_batching = false, the Iris Shader Pack Settings screen renders normally in-world.
With hud_batching = true, the ShaderPackScreen foreground UI does not render.
Notes from isolation testing
This does not appear to be caused by Iris or Sodium alone.
Additional isolation findings:
- The issue only happens when opening Iris Shader Pack Settings from inside a world.
- The shader pack settings screen works normally from the main menu.
- The issue does not appear to be caused by Iris/Sodium alone.
- PuzzlesLib itself does not appear to be the cause.
- Overflowing Bars is required in the current reduced reproduction set, but PuzzlesLib alone is not sufficient.
- Xaero’s Minimap and Xaero’s World Map are both required in the current reduced reproduction set.
- Tom’s Simple Storage is required in the current reduced reproduction set.
- Setting ImmediatelyFast
hud_batching=false is the cleanest workaround found so far.
Relevant log observations
The reduced reproduction log shows that ImmediatelyFast applies several HUD/render batching related mixins. In particular, it applies hud_batching.MixinGameRenderer to GameRenderer, a Xaero Minimap compatibility mixin hud_batching.compat.xaerominimap.MixinXaerosMinimap_ClientEvents, a framebuffer batching check mixin to RenderTarget, and a batching check mixin to BufferUploader.
The Xaero Minimap compatibility mixin injects forceDrawBatch, which seems especially relevant because both Xaero's Minimap and Xaero's World Map are required in the current reproduction set.
The logs also show Xaero's World Map detecting Xaero's Minimap and Iris, and Xaero's Minimap detecting World Map and Iris.
Several GUI/screen related mixins are also present. Relics injects into Screen.tick and Screen.render, OctoLib injects before Screen.render, and Create applies a Xaero-related Screen mixin. OctoLib also applies a GameRenderer post-effect mixin with render pre/post hooks.
This supports the idea that the issue is a HUD/GUI/render-state or batching interaction rather than the Iris ShaderPackScreen failing to open entirely. The background blur renders and input still works, but the ShaderPackScreen foreground widgets/list/text do not render.
The reduced log also shows Iris creating a world rendering pipeline for minecraft:overworld, but the primary reproduction issue is the invisible ShaderPackScreen foreground UI. The long freeze/hang appears to be secondary and only happens if a shader pack is selected blindly and Iris begins applying/reloading shaders.
latest.log
debug.log
Hypothesis
This looks like a foreground UI/render-layer or render-state issue, not a full screen-opening failure.
The background blur pass renders and input handling still works, but the ShaderPackScreen foreground widgets/list/text do not render.
The reduced logs show that ImmediatelyFast applies HUD batching to GameRenderer, a Xaero Minimap-specific batching compat mixin, and batching-related checks to RenderTarget and BufferUploader. The same setup also has OctoLib and Relics injecting into Screen rendering, and OctoLib has GameRenderer post-effect render hooks.
Since setting ImmediatelyFast hud_batching=false prevents the issue, the likely area is HUD batching / GUI render-state restoration when transitioning from the in-world video settings screen to the Iris ShaderPackScreen.
Workaround
Set this in the ImmediatelyFast config:
After this change, the issue no longer reproduces in the same mod setup.
Summary
When ImmediatelyFast has
hud_batchingenabled, the Iris Shader Pack Settings screen can become invisible when opened from inside a world.After clicking the
Shader Packs...button from the in-world video settings screen, the previous video settings UI disappears and the background blur is rendered. However, the Iris ShaderPackScreen foreground UI does not render. The shader pack list, buttons, title text, and other foreground UI elements are not visible.The screen still accepts input. Pressing
ESCreturns to the previous menu, and clicking where shader pack entries would normally be can select a shader pack blindly.If a shader pack is selected this way, Iris then starts applying/reloading the shader pipeline, which can cause a long freeze/hang. Because of this, the issue originally looked like the game was freezing immediately after pressing the Shader Packs button, but the primary issue appears to be that the ShaderPackScreen foreground UI is not rendered.
Setting ImmediatelyFast’s config option below to
falseprevents the issue:With
the issue reproduces.
Environment
1.21.1NeoForge 21.1.2281.6.10+1.21.11.8.12+mc1.21.10.6.13+mc1.21.1Windows 11 Home 25H2(build26200.8328)11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz(2.40 GHz)NVIDIA GeForce MX450 (2 GB)Relevant mod set used for reproduction
This is the smallest reproduction set I have identified so far, including libraries/dependencies. I have not exhaustively tested every possible subset or combination, so I cannot guarantee that this is mathematically minimal. However, in this reduced set, disabling any one of the listed mods prevents the issue from reproducing.
3.0.913.0.813.2.16.0.101.7.171.2.15.11.39.5.1+1.21.11.41.2.11a1.6.10+1.21.11.4.3+1.21.11.8.12+mc1.21.11.21-2.29.3321.1.10.12.15.5-beta.1+1.2121.1.390.10.7.82.1.21.2.20.6.10.6.13+mc1.21.11.21-3.5.341.5.104.8.33452.3.225.3.101.40.11Steps to reproduce
ESCand Open:Expected behavior
The Iris Shader Pack Settings screen should render normally in-world.
I should be able to:
Actual behavior
When I click the
Shader Packs...button from the in-world video settings screen, the previous video settings UI disappears and the background blur is applied. However, the Iris ShaderPackScreen UI itself does not render.No shader pack list, buttons, title text, or other foreground UI elements are visible. The screen only shows the blurred in-world background.
The screen still appears to accept input:
ESCreturns to the previous menu.So this does not appear to be an immediate hard freeze. The ShaderPackScreen appears to open and process input, but its foreground UI is invisible/not rendered. The long freeze happens later if a shader pack is selected blindly and Iris begins shader reload/compilation.
Screenshots / visual evidence
Before clicking Shader Packs. The in-world video settings screen renders normally.
After clicking Shader Packs with ImmediatelyFast
hud_batching=true. The previous video settings UI disappears and the background blur renders, but the Iris ShaderPackScreen foreground UI does not render.Important isolation result
Changing only this ImmediatelyFast setting prevents the issue:
With
hud_batching = false, the Iris Shader Pack Settings screen renders normally in-world.With
hud_batching = true, the ShaderPackScreen foreground UI does not render.Notes from isolation testing
This does not appear to be caused by Iris or Sodium alone.
Additional isolation findings:
hud_batching=falseis the cleanest workaround found so far.Relevant log observations
The reduced reproduction log shows that ImmediatelyFast applies several HUD/render batching related mixins. In particular, it applies
hud_batching.MixinGameRenderertoGameRenderer, a Xaero Minimap compatibility mixinhud_batching.compat.xaerominimap.MixinXaerosMinimap_ClientEvents, a framebuffer batching check mixin toRenderTarget, and a batching check mixin toBufferUploader.The Xaero Minimap compatibility mixin injects
forceDrawBatch, which seems especially relevant because both Xaero's Minimap and Xaero's World Map are required in the current reproduction set.The logs also show Xaero's World Map detecting Xaero's Minimap and Iris, and Xaero's Minimap detecting World Map and Iris.
Several GUI/screen related mixins are also present. Relics injects into
Screen.tickandScreen.render, OctoLib injects beforeScreen.render, and Create applies a Xaero-relatedScreenmixin. OctoLib also applies aGameRendererpost-effect mixin with render pre/post hooks.This supports the idea that the issue is a HUD/GUI/render-state or batching interaction rather than the Iris ShaderPackScreen failing to open entirely. The background blur renders and input still works, but the ShaderPackScreen foreground widgets/list/text do not render.
The reduced log also shows Iris creating a world rendering pipeline for
minecraft:overworld, but the primary reproduction issue is the invisible ShaderPackScreen foreground UI. The long freeze/hang appears to be secondary and only happens if a shader pack is selected blindly and Iris begins applying/reloading shaders.latest.log
debug.log
Hypothesis
This looks like a foreground UI/render-layer or render-state issue, not a full screen-opening failure.
The background blur pass renders and input handling still works, but the ShaderPackScreen foreground widgets/list/text do not render.
The reduced logs show that ImmediatelyFast applies HUD batching to
GameRenderer, a Xaero Minimap-specific batching compat mixin, and batching-related checks toRenderTargetandBufferUploader. The same setup also has OctoLib and Relics injecting intoScreenrendering, and OctoLib has GameRenderer post-effect render hooks.Since setting ImmediatelyFast
hud_batching=falseprevents the issue, the likely area is HUD batching / GUI render-state restoration when transitioning from the in-world video settings screen to the Iris ShaderPackScreen.Workaround
Set this in the ImmediatelyFast config:
After this change, the issue no longer reproduces in the same mod setup.