
Vulkan PostFX
An experimental Vulkan shader pack loader for modern Minecraft, with runtime ZIP loading and early-stage shader translation support.
Vulkan PostFX 1.5.1+mc1.21.4-2026-04-19
beta19 апреля 2026 г.VulkanPostFX v1.5.1
Overview
Still solving sun angle calculate problem.
Vulkan PostFX 1.5.0+mc1.21.4-2026-04-16
release16 апреля 2026 г.VulkanPostFX v1.5.0
Overview
This release marks the transition from a runtime validation prototype to a practical authoring-ready VPFX pipeline.
The VPFX Native Pack format is now capable of:
- Loading textures from ZIP packs
- Binding them into PostFX passes
- Sampling them reliably inside shaders
This version introduces the first reference texture workflow, enabling authors to build real post-processing effects (LUT, grain, vignette) without relying on legacy shader pipelines.
Key Features
1. VPFX Native Texture Binding (First Fully Working Version)
-
pack.jsonnow supports atexturessection -
Declared textures are:
- Extracted from ZIP packs
- Materialized into runtime resource packs
- Registered via
vpfx/textures.json - Bound into PostChain as
TextureInput
Supported features:
- Linear / nearest filtering
- Custom texture namespace isolation
- Stable runtime binding via logical texture names
2. Runtime Texture Materialization Pipeline
A complete pipeline has been implemented:
pack.json (textures)
→ runtime textures.json
→ runtime asset generation
→ TextureInput injection
→ shader sampler binding
This ensures:
- No direct ZIP streaming during rendering
- Full compatibility with Minecraft resource system
- Deterministic reload behavior
3. Reference Texture Pack (Authoring Baseline)
A new VPFX Reference Textures Pack v1 is introduced as a minimal working example.
It demonstrates:
- LUT-based color grading
- Film grain overlay
- Vignette masking
This pack is intended as:
- A starting point for shader authors
- A validation baseline for texture input behavior
- A canonical example for documentation
4. Stable External ZIP PostChain Execution
- External PostFX chains can now be loaded from ZIP packs
- Fully integrated with runtime resource reload
- Safe switching via debug key (F8)
5. Improved Debug & Logging
-
Texture materialization logs now include:
- Runtime path
- Resolution
- Filtering mode
-
PostChain selection and activation clearly logged
-
Runtime texture manifest generation is traceable
Fixes
- Fixed invalid fullscreen vertex shader (removed dependency on external vertex attributes)
- Fixed missing
texCoordvarying between vertex and fragment shaders - Fixed PostFX pipeline crashes caused by shader interface mismatch
- Fixed incorrect shader compatibility assumptions with Mojang PostPass system
- Fixed incorrect runtime capability expectations for shadow depth
- Improved safety of runtime texture binding path
Known Limitations
shadow_depthis currently a mirrored main depth buffer (not a true shadow map)- No multi-pass graph optimization yet
- No compute shader support
- Texture sampling is limited to PostFX passes (no material pipeline integration)
How to Use (Reference Texture Pack)
1. Install the Pack
Place the ZIP file into:
run/shaderpacks/
2. Set Active Pack
Edit the config file:
run/config/vulkanpostfx.json
Set:
{
"active_pack_id": "vpfx_reference_textures_v1"
}
3. Launch & Toggle
- Start the game
- Press F8 to enable/disable the VPFX PostChain
4. Expected Visual Result
- Slightly warmer color tone (LUT)
- Subtle film grain
- Mild vignette at screen edges
If you see:
- Strong color shift → LUT too aggressive
- Heavy dark corners → vignette too strong
→ Adjust shader parameters or replace textures.
Authoring Notes
Texture Declaration (pack.json)
"textures": {
"ColorLut": {
"path": "textures/lut/day_grade.png",
"filter": "linear"
}
}
Shader Usage
uniform sampler2D ColorLutSampler;
Sampler naming rule:
sampler_name + "Sampler"
Post Effect Input
{
"sampler_name": "ColorLut",
"texture": "ColorLut"
}
Breaking Changes
- Non-VPFX ZIP packs are no longer accepted
pack.jsonwithformat_versionis now required- Old compatibility paths (Iris / OptiFine style) are fully removed
Summary
v1.5.0 is the first version where:
- VPFX is no longer just a loader
- It becomes a usable authoring platform
This release establishes:
- A stable texture pipeline
- A reproducible runtime model
- A clear path toward advanced PostFX features
Next focus:
- Multi-pass graph expansion
- Proper shadow map support
- Built-in uniform system
- Authoring documentation (Wiki)
Vulkan PostFX 1.4.0+mc1.21.4-2026-04-14
release14 апреля 2026 г.Vulkan PostFX 1.4.0 — VPFX Native Pack Format v1 Update
This update moves the project onto the new VPFX native pack pipeline.
Added
- Added support for VPFX Native Pack Format v1 as the primary shader pack format.
- Added native
pack.jsonmanifest parsing for VPFX packs. - Added native
post_effect/main.jsongraph parsing for VPFX packs. - Added validation for VPFX graph structure, runtime capabilities, and shader resource references.
- Added native ZIP pack discovery through the VPFX loading path.
- Added runtime materialization for VPFX ZIP shader assets.
- Added runtime loading for VPFX post-effect graphs from external ZIP packs.
Changed
- Switched external ZIP shader pack discovery to the new VPFX-native loading path.
- Updated the external pack activation flow so VPFX packs can now be selected directly from config and loaded as the active pack.
- Moved the pack pipeline away from the previous wrapper-style manifest assumptions toward a stricter native format.
Fixed
- Fixed the issue where external packs could load through the old path but were not yet attached to the new native pack standard.
- Fixed ZIP pack selection so valid VPFX packs are now discovered, selected, materialized, and loaded through the main runtime path.
- Fixed external PostChain activation for VPFX packs loaded from ZIP resources.
- Fixed runtime external target expansion so
vulkanpostfx:shadow_depthis available to external post chains. - Fixed runtime PostChain bundle injection for the custom shadow depth target.
Runtime Status
The runtime now successfully:
- parses the VPFX graph,
- loads a VPFX native ZIP pack,
- selects the configured external pack,
- materializes ZIP shader assets into the runtime namespace,
- loads the external
post_effect/main.json, - resolves the external PostChain,
- and injects the runtime shadow depth target during execution.
Notes
- This release establishes the native VPFX pack standard as the main external pack path.
- VPFX is a native format for this project and is not intended to be an OptiFine or Iris compatibility layer.
- The current release is focused on native pack loading, validation, and execution bring-up.
- Visual quality and shadow behavior will continue to improve in later updates.
Known Limitations
- This is still an experimental native-pack milestone rather than a final visual-complete shader release.
- Logging is currently verbose in some runtime paths and may be reduced in future updates.
- The project is now standardized around VPFX-native packs, so older non-VPFX pack layouts are not the target path going forward.
Vulkan PostFX 1.3.0+mc1.21.4-2026-04-12
release12 апреля 2026 г.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.
Vulkan PostFX 1.0.0
beta11 апреля 2026 г.Нет описания изменений
