Software 43195 Published by

MoltenVK v1.3.0 has been released and includes several updates, such as support for Vulkan 1.3 and various extensions like VK_KHR_index_type_uint8, VK_KHR_load_store_op_none, VK_KHR_maintenance4, VK_KHR_maintenance6, VK_KHR_maintenance7, VK_KHR_shader_expect_assume, VK_KHR_shader_subgroup_rotate, VK_KHR_shader_terminate_invocation, VK_EXT_depth_clip_control, VK_EXT_external_memory_metal, and formats B5G6R5_UNORM_PACK16 and B8G8R8A8 that use swizzle. Additionally, MVK_CONFIG_USE_MTLHEAP has been updated to an enumeration. Additionally, MVK_CONFIG_USE_MTLHEAP has been converted to an enumeration.

The release eliminates glslang as a dependency library and excludes GLSL's shaders as input. The release also tackles memory management concerns in MVKSwapchain, resolves memory leaks in CAEDRMetadata, and minimizes the number of unused pipeline bindings allocated for argument buffers. The release also resolves issues related to the AMD driver's malfunctioning blit encoder timestamp sampling, incorporates updates for macOS 13/Xcode 14, and corrects compilation with MVK_USE_CEREAL=0. The release also includes the newest SPIRV-Cross, which has better support for matching tessellation input and output, adds SPV_KHR_expect_assume, and improves bindless helper templates, rasterization, and debug labels.





MoltenVK Release v1.3.0

  • Add support for Vulkan 1.3.
  • Add support for extensions:
    • VK_KHR_index_type_uint8
    • VK_KHR_load_store_op_none
    • VK_KHR_maintenance4
    • VK_KHR_maintenance6
    • VK_KHR_maintenance7
    • VK_KHR_shader_expect_assume
    • VK_KHR_shader_subgroup_rotate
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_vulkan_memory_model
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_depth_clip_control
    • VK_EXT_external_memory_metal.
    • VK_EXT_image_2d_view_of_3d
    • VK_EXT_index_type_uint8
    • VK_EXT_load_store_op_none
    • VK_EXT_pipeline_robustness
    • VK_EXT_tooling_info
  • Add support for B5G6R5_UNORM_PACK16 B5G5R5A1_UNORM_PACK16, and B8G8R8A8 formats using swizzle.
  • Convert MVK_CONFIG_USE_MTLHEAP to enumeration, and set active by default to support
    VK_EXT_image_2d_view_of_3d, except on AMD devices.
  • Remove glslang as dependency library.
  • MoltenVKShaderConverter no longer accepts GLSL` shaders as input.
  • Fixes to managing descriptor set allocation in a Metal argument buffer.
  • Fix SPIRV-Cross namespace build error on some alternate build environments.
  • Fix recent failure of CI.yml to upload release build artifacts to GitHub.
  • Fix memory management issue in MVKSwapchain.
  • Fix indirect index for triangle fan topology.
  • Fix crash when shader validation is enabled.
  • Fix dynamic vertex stride with tessellation.
  • Fix Metal API violation when using VK_KHR_swapchain_mutable_format.
  • Fix designation of vkGetPhysicalDeviceToolProperties as a device entry-point.
  • Fix memory leak of CAEDRMetadata in MVKSwapchain.
  • Fix not saving shouldFixupClipSpace when serializing a pipeline.
  • Fix header namespace pollution.
  • Revert use of size 1 for variable length arrays in shader.
  • Add MTLHeaps export/import for emulated textures.
  • MTLHeaps on Apple Device Simulator must use private storage.
  • Remove atomic usage for RG32Uint.
  • Handle shader specializtion with macros.
  • Use Metal residency sets when available.
  • Implement barriers using Metal fences.
  • vkCmdWaitEvents end current encoder before encodeWait.
  • Remove support for deprecated VK_NV_glsl_shader extension, and GLSL conversions using MoltenVKShaderConverter.
  • Remove use of VK_ERROR_INVALID_SHADER_NV error code.
  • Reduce number of unused pipeline bindings reserved for argument buffers.
  • Disable unsupported Metal Pixel formats for iOS/tvOS Simulator.
  • Revert to fixed number of argument buffer binding reservations.
  • Ignore allowed bad pViewportState pointer if rasterization is disabled.
  • Improved estimation of vertex attribute buffer count when reserving for implicit buffer.
  • Fix header-hygiene warning violations.
  • MVKCmdWaitEvents: end current encoder before encodeWait.
  • Add missing depthClamp and shaderTessellationAndGeometryPointSize features to tvOS.
  • Update features overrides to all Simulators: iOS, tvOS, visionOS.
  • Fix a crash when searching the first enabled bit in a completely disabled bit array.
  • When shader specifies both WorkgroupSize builtin and LocalSizeId, the builtin takes precedence.
  • When logging a pipeline layout, log contained descriptor set layouts.
  • Add debug labels to barrier fences.
  • Allow the proc address of vkGetMoltenVKConfigurationMVK() to be retrieved before a VkInstance has been created.
  • Work around 10.15 AMD driver's broken blit encoder timestamp sampling.
  • GitHub CI update legacy build to macOS 13 / Xcode 14.
  • Fix compile with MVK_USE_CEREAL=0.
  • Update copyright notices to year 2025.
  • Update to latest SPIRV-Cross:
    • MSL: Support broader tessellation I/O matching for VK_KHR_maintenance4.
    • MSL: Add support for SPV_KHR_expect_assume.
    • GLSL/MSL: Implement SPV_KHR_subgroup_rotate.
    • MSL: Implement subgroup clustered rotate.
    • MSL: Pad array elements in Metal argument buffer when shader declares scalar.
    • MSL: Expose information about specialization constants - macro mapping
    • MSL: Use unpacked arguments in texture arguments.
    • MSL: Fix emission of bindless helper template for bindless SSBO.
    • MSL: Use actual result type member as cast type for mulhi.
    • MSL: Terminate function with return value using return if ending in unreachable.
    • MSL: Add option to disable rasterization depending on usage.
    • MSL: Always pass BDA by value into functions.
    • MSL: Apply input override on all flattened members in interface block.
    • GLSL/MSL: Support VK_KHR_zero_initialize_workgroup_memory
    • MSL: Treat pointer to vector as scalar type when bitcasting.
    • MSL: Use the more proper pointer typing.
    • MSL: Use decltype for getting return of gather.
    • MSL: Remove spvForward().
    • MSL: Fix gather functions on Sequoia.
    • MSL: Fix crash when per-primitive variables are not used.

Release Release v1.3.0 · KhronosGroup/MoltenVK