Immersive Portals - CE 6.0.12 - NeoForge 1.21.1
Curse Maven Snippet
What's new
Immersive Portals - CE 6.0.12
Minecraft 1.21.1 / NeoForge 21.1.228+ / Java 21
Renderer compatibility
- Terrain-renderer and shader detection are independent. Supported combinations are vanilla without shaders, Sodium 0.8.12+mc1.21.1 with or without official Iris 1.8.14-beta.1+1.21.1-neoforge, and Embeddium 1.0.15+mc1.21.1 with or without NeOculus 1.8.7. Install only one terrain renderer; classic Oculus is not the pinned shader implementation.
- Embeddium and NeOculus have separate dependency adapters and ABI checks. NeOculus's compatibility
irismod ID no longer selects Sodium-specific hooks. Unsupported combinations and unreviewed Embeddium/NeOculus versions report actionable errors. - Create 6.0.10-280 / Flywheel 1.0.6 uses vanilla block-entity rendering inside portal and clipped views, then restores the selected main-view backend. This is a scoped fallback, not accelerated Flywheel rendering inside portals. Sable remains optional.
Fixed
- Synchronized NeOculus texture metadata with allocation and deletion, fixing stale depth dimensions after shader reload while retaining cached width/height lookups.
- Serialized Forgified Fabric native receiver creation across protocol registrars, protected NeoForge payload maps against concurrent writes and duplicate replacement, and restored the original network setup flag even when registration fails.
- Reported graphical-client disconnects immediately with the original reason and scoped thread diagnostics. Log polling reads only new bytes and retains incomplete lines, without rejecting successful shutdown.
- Corrected clipping for terrain, translucent geometry, entities, block entities and particles, including final geometry-producing shader stages. Deferred shader providers refresh after reload; disabling shaders restores vanilla clipping. Shadow passes suspend inherited portal clipping and restore it afterward.
- Preserved terrain lists and cached Sodium multi-draw batches across recursive views and shadow passes. Added the neighboring block/light-data ring required to build visible chunks, including nested destinations; reduced server performance retains a bounded nested loader instead of dropping the destination.
- Preserved block changes arriving after Sodium submits an initial mesh snapshot but before its first upload after reload. A regression executes the pinned scheduler bytecode to reproduce the original lost update.
- Initialized NeOculus's remembered dimension for early connection paths without creating a shader pipeline before OpenGL initialization.
- Corrected depth/stencil copy formats, resize handling and GL state restoration. Drivers without copy-image capability use framebuffer blits.
- Restored Flywheel state after recursive/clipped views and retained vanilla block-entity entries needed by those views without duplicate main-view drawing.
- Made optional QIO GameTests discoverable without Sable and kept development-only drivers, mixins and shader fixtures out of the release jar.
Verification and limits
- Verification includes dependency bytecode contracts, scheduler regressions, native GameTests, Sable UDP/TCP E2E, shader clipping and shadow fixtures, reload/resize/toggle scenes, negative controls, real-pack smoke checks, copy-image/blit paths and explicit Flywheel backends.
- Real-pack inputs are pinned MakeUp Ultra Fast 9.4a (
shadowless_high) and Complementary Reimagined r5.5.1 (POTATO) on Iris and NeOculus. These presets do not establish compatibility for every shaderpack or preset. The separate owned shadow fixture checks shadow behavior; it does not certify arbitrary packs' shadow implementations. - Normal rendering covers nested portals. Compatibility/debug renderers retain their one-layer limit.
- Declared verification lanes are release gates, not a claim that a pending build has passed. Publication requires successful verification of the release commit.
See the renderer contract, Flywheel audit, and verification commands for exact scope and reproduction instructions.
This mod has no additional files

