Prepared: August 29, 2026
MXVK 0.33.1 is a substantial rendering, capture, and post-processing update over the last published release, 0.24.0. The releases from 0.25.0 through 0.33.1 strengthen real-time video workflows, add mixed fragment/compute effect chains, preserve source resolution independently of the preview window, expose optional shader resources through SPIR-V reflection, and allow a completed effect chain to become the texture of a 3D model.
Version 0.29.0 introduced compute shaders as first-class post-processing stages. Fragment and compute passes can alternate in one ordered chain while sharing the extended sprite ABI. MXVK handles intermediate-image layout transitions and synchronization between graphics and compute work.
Version 0.30.0 separated the native scene/post-processing extent from the swapchain extent. Shader resolution uniforms, intermediate effects, output text, and frame readback remain source-sized. The final image is fitted into the preview while preserving its aspect ratio, and preview-only text can use an independently selected font size.
Version 0.33.1 completes this path for snapshots. When a fixed render extent is active and its offscreen post-processing image has been initialized, captureSnapshotPixels() reads that source-sized image instead of the swapchain. The image is transitioned from shader-read-only layout to transfer source and restored afterward. The normal swapchain capture path remains the fallback when no fixed offscreen target is active.
Version 0.27.0 added preview-only Vulkan text that is drawn after frame readback, keeping runtime diagnostics out of encoded output. Output text stays inside the source-sized render path.
Version 0.28.0 moved swapchain presentation and readback synchronization to per-frame-in-flight resources. Readback copies are pipelined so the CPU consumes a completed slot while Vulkan records later frames. Version 0.28.1 prefers host-cached memory where supported and falls back safely when it is unavailable.
Version 0.31.0 added non-owning shared frame-history descriptors for fragment and compute post-processing. A client can provide one source sprite's history array to compatible passes without transferring ownership or allocating a duplicate temporal ring.
SPIR-V inspection identifies the optional set 0 resources used by a shader:
Version 0.31.1 completed reflection for the spectrum bindings so applications can allocate and bind every optional resource before pipeline construction. Shaders that do not declare these bindings continue to use the simpler path.
Version 0.32.0 expanded model fragment uniforms with the shared custom-uniform array, current audio bands, and audio-history values. It also separated the mutually exclusive vertex and extended-fragment push-constant layouts, avoiding overlapping stage declarations.
Version 0.33.0 added the post-processing texture-consumer path:
These additions allow fragment, compute, history, and multipass effects to be evaluated before 3D rendering and mapped onto model UVs instead of appearing as a screen-space layer over the model.
The capture work introduced across 0.25.0 and 0.26.0 includes:
MXWrite also moves host-frame conversion and upload work away from the render thread where possible, complementing MXVK's pipelined frame readback. These changes reduce preview stalls when recording expensive effects or large frames.
For a clean CMake rebuild:
Enable optional features such as WITH_CUDA, WITH_MXWRITE, MIXER, and JPEG according to the target system. Existing build directories created for 0.24.0 should be freshly configured before building 0.33.1.
The 0.33.1 source tree was configured and built with the portable CMake path and examples disabled. The generated C++ version header and CMake package metadata report 0.33.1. Doxygen 1.18.0 generated the HTML documentation without warnings.