Software 43903 Published by

MoltenVK 1.4.1 has been released, marking a step forward in the Vulkan portability effort on Apple platforms by extending the reach of Vulkan applications across macOS, iOS, and tvOS. This update includes several major improvements, such as better extension support, performance enhancements, and improved descriptor management. Additionally, CMake build support has been added to simplify integration for developers, while a new working demo target called Cube Demo is available for VisionOS. The release also addresses various bugs and incorporates updates from SPIRV-Cross to improve code generation and compatibility with Apple GPUs.



MoltenVK 1.4.1 released

MoltenVK 1.4.1 has finally been released, representing a step forward for the Vulkan Portability effort on Apple platforms. This isn't just another minor update; it significantly builds upon its core function, layering a subset of the powerful, high-performance Vulkan graphics and compute API over Apple's Metal framework, thereby extending the reach of Vulkan applications across macOS, iOS, and tvOS.

One major area addressed in this release is extension support, adding several important capabilities. Specifically, versions 1.4.0 and earlier lacked certain key extensions like VK_KHR_maintenance9, VK_KHR_shader_fma, VK_KHR_surface_maintenance1, and VK_KHR_swapchain_maintenance1. This update finally includes them. Also noteworthy for developers using the MVK_USE_METAL_PRIVATE_API flag is that it now unlocks a range of new features and extensions alongside these core Vulkan ones.

Performance enhancements are plentiful too. Occlusion query support has been significantly improved; queries can now span multiple render passes, which automatically streamlines rendering logic and boosts performance without requiring manual intervention for potentially complex optimizations. Another win is the implementation of untracked buffers; they effectively allow for better parallelization between Metal and the Vulkan layer, contributing to faster overall rendering times.

The update tackles another tricky area head-on: descriptor management. There's a new state tracker specifically designed for descriptors that aims to enhance performance by making the lifetime handling much more efficient under the hood. However, this change is double-edged; while generally beneficial, it might cause issues for some existing applications due to stricter Metal destruction rules. But don't worry if problems arise; they're manageable and usually solvable via configuration flags or marking potentially destroyed descriptors.

For developers looking to integrate MoltenVK into their projects, CMake build support has been added. This simplifies the integration process considerably. Plus, there's a new working demo target for VisionOS called Cube Demo. Compatibility with future Apple devices is also considered; the minimum deployment target has been raised to macOS 11.0 / iOS 14.0 / tvOS 14.0.

Beyond these headline features, there are other valuable additions and fixes. Support for VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT means more efficient image rendering in some cases. The code now explicitly rejects requests for unsupported image formats. Various robustness support levels have been improved to handle different GPU types better. Max texture dimensions have even been updated for Apple GPUs codenamed "Apple10." And amidst all this progress, the developers haven't forgotten about bugs; fixes have been rolled out for issues concerning depth bounds tests, logical operations, and external memory handling, among other things.

Finally, MoltenVK has caught up with recent developments in its code generation backend by incorporating updates from SPIRV-Cross. This includes better support for image cube atomics in MSL 4.0+, improvements to array copying within the Metal Shading Language, and adding some extra reserved function names, all of which contribute to tighter compatibility and smoother operation.

Release Release v1.4.1 · KhronosGroup/MoltenVK

Add support for the following extensions: VK_KHR_maintenance9 VK_KHR_shader_fma VK_KHR_surface_maintenance1 VK_KHR_swapchain_maintenance1 Add support for new features and extensions when using M...

Release Release v1.4.1 · KhronosGroup/MoltenVK