
Shader Continuity keeps an activity indicator moving over the last displayed frame while the audited Iris build reloads a shader pack. It also avoids an extra reload when enabling a newly selected pack would immediately trigger another Apply reload.
- Visible reload progress: Present a captured frame and animated five-segment indicator through supported shader-source work, compilation waits and first-frame preparation.
- Preserved shader output: Run Iris's original supported CPU source methods on a worker and wait for their results. Graphics work stays on its owner thread; Iris's existing independent source jobs retain their concurrency.
- Supported driver cooperation: Request and restore a temporary compiler-thread hint when parallel shader compilation extensions are available. Driver support determines how much work can proceed without blocking.
- Conservative Iris compatibility: Enable integration only when all 94 audited Iris class fingerprints match. Missing or changed Iris builds disable the integration automatically.
Gameplay, input and the underlying world or menu animation remain paused during reload. Individual driver calls, class initialization and JVM pauses can still stop the indicator. This alpha does not promise freeze free shader switching or universally faster compilation. Its tested scope is enabling and switching packs through Iris settings in an already loaded world; initial startup and other pipeline creation paths are outside that scope.
Installation and Dependencies
Side: Client only. Install the NeoForge JAR in the client's mods folder.
Required platform: Minecraft 1.21.1, NeoForge 21.1.250 to below 21.2, and Java 21. NeoForge 21.1.250 is the tested loader; the broader metadata range does not establish testing on every later build.
Required mods: None beyond NeoForge for loading the mod. For its shader loading features to function, install the audited Iris 1.8.14-beta.1+mc1.21.1 build and Iris's own required dependencies.
Optional integrations and content: Smooth Loading, Tensura mods, and specific shader packs are not required dependencies. Bliss and Complementary are tested shader pack examples; their files are installed separately.
5. License
MIT License.
Results:
Longest display pause
Seconds, showing the range across two complete runs per condition:
| Action | Before | With Shader Continuity |
|---|---|---|
| Initially enable Bliss | 6.734–9.786 | 0.175–0.255 |
| Switch to Complementary Reimagined | 0.623–0.658 | 0.054–0.067 |
| Switch to Complementary Unbound | 2.013–2.289 | 0.085–0.178 |
| Switch back to Bliss in the same process | 0.499–0.545 | 0.065–0.072 |
Total loading time is a different metric
Apply callback duration, seconds:
| Action | Before | With Shader Continuity |
|---|---|---|
| Initially enable Bliss | 6.008–8.709 | 3.484–3.960 |
| Switch to Reimagined | 0.578–0.620 | 2.534–2.605 |
| Switch to Unbound | 1.983–2.249 | 2.027–2.120 |
| Switch back to Bliss | 0.430–0.438 | 0.481–0.490 |
| Sum of four Apply calls | 9.007–12.008 | 8.535–9.166 |
*Disclaimer: All tests were run using my Tensura World of Monsters Modpack*

