
Vulkan PostFX
A lightweight post-processing shader pack loader for Minecraft's Vulkan renderer.
Vulkan PostFX 1.6.0+mc26.2-snapshot2-2026-04-29
release29 апреля 2026 г.VulkanPostFX 1.6.0+mc26.2-snapshot2-2026-04-29
This update fixes and stabilizes the shadow rendering pipeline for Minecraft 26.2 Snapshot 2 on the Vulkan backend.
Added
- Working shadow depth generation.
vulkanpostfx:shadow_depthinjection into the post-processing chain.ShadowDepthSampleraccess for external shader packs.- Dedicated terrain shadow pass support.
- Debug/probe support for validating shadow depth output.
Fixed
- Fixed shadow depth not being written correctly.
- Fixed post effects not receiving usable shadow depth data.
- Fixed reversed-Z depth handling for the Vulkan shadow pass.
- Fixed depth clear / depth compare mismatch in the shadow pipeline.
- Fixed custom shadow terrain pipeline issues that prevented valid caster submission.
Changed
- Reworked shadow pass state setup for the Vulkan backend.
- Improved shadow depth validation workflow.
- Improved internal shadow pass logging and debugging behavior.
Notes
This is primarily a shadow pipeline repair release. Projection tuning, bias, filtering, and final visual polish will continue in later versions.
Vulkan PostFX 1.5.2+mc26.2-snapshot2-2026-04-26
release26 апреля 2026 г.Still fixing shadow render calculate problem.
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.
