Tags
Creators
Details
1.3.0+mc1.21.4-2026-04-12
Compatibility
Changes
Changelog
Verdant Light 1.3.0 Vulkan Wrapper — Experimental Update
Added
- Added support for loading external shader packs from ZIP files through the Vulkan PostFX pipeline.
- Added runtime shader pack materialization and resource pack injection for external ZIP-based shader content.
- Added support for switching the active debug/effect chain at runtime with the existing toggle workflow.
- Added an initial custom external render target path for
shadow_depth. - Added a lightweight shadow target allocation and frame synchronization path.
- Added a first-pass shadow depth mirror step from the main render target into a dedicated shadow target.
- Added runtime PostChain bundle injection for custom external targets required by experimental shadow debugging.
Changed
- Reworked the wrapper pipeline to use the new 26.2 Vulkan/PostChain model instead of legacy framebuffer-style assumptions.
- Updated the effect loading flow so external post chains can be discovered, compiled, and applied more reliably.
- Improved debug visibility by providing a visible overlay-style test pack instead of depth-only black/white output.
- Refined shader pack runtime namespace handling for ZIP-based packs.
Fixed
- Fixed several failures caused by assuming old-style render target write APIs that no longer exist in the 26.2 renderer.
- Fixed external post chain allowlist issues that previously rejected custom targets like
vulkanpostfx:shadow_depth. - Fixed runtime crashes caused by missing custom PostChain targets during effect execution.
- Fixed shader pack activation flow so the external package can now be enabled successfully in the current experimental branch.
- Fixed shadow target creation, shadow pass execution, and main-depth mirroring so the custom target path is now active during runtime.
Technical Notes
-
External ZIP shader pack loading is now functional in the current experimental wrapper.
-
The wrapper can now:
- discover and load the external ZIP pack,
- compile and apply the external post chain,
- allocate a shadow render target,
- mirror main scene depth into that target,
- and inject the target into PostChain execution at runtime.
-
This release is focused on pipeline bring-up and compatibility validation, not final visual parity.
Known Limitations
- This is not a full shadow implementation yet.
- The current shadow path is still experimental and is primarily intended for debugging and pipeline validation.
- Visual output is currently based on overlay/debug behavior rather than finalized shadow resolve/composite logic.
- Shader behavior, color grading, and lighting quality are still subject to further iteration.
- Logging is still verbose in some experimental paths and will be cleaned up in a later update.
Next Steps
- Build a more usable day-to-day shader pack profile with stable visuals.
- Reduce experimental logging noise.
- Replace debug-oriented shadow visualization with a proper shadow resolve/composite path.
- Expand the wiki with setup instructions, compatibility notes, pack structure, and development documentation.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:TsmOcOBN:VaoYHRQA"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:TsmOcOBN:VaoYHRQA"
}

