Software 42719 Published by

Following two release candidates, the final version of the MoltenVK Vulkan SDK 1.3.290 was released.

The change log includes enhancements to bindless resources and descriptor indexing, including as support for Metal 3 argument buffers, multiplanar images in Metal argument buffers, and a descriptor pool with fewer descriptors than the descriptor set configuration. The maximum number of bindless buffers and textures per stage has been increased to 1 million, according to Apple Docs. The graphics pipeline now includes support for dynamic patch control points. The documentation for the minimal runtime OS requirements has been revised to include macOS 10.15, iOS 13, and tvOS 13.





MoltenVK Release Release for Vulkan SDK 1.3.290

  • Improvements to bindless resources and descriptor indexing:
    • Add support for Metal 3 argument buffers.
    • Support argument buffers on all platforms, when Metal 3 is available.
    • Support argument buffers on macOS when Metal 3 is not available.
    • Use Metal argument buffers by default when they are available.
    • Revert MVKConfiguration::useMetalArgumentBuffers and env var
      MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS to a boolean value, and enable it by default.
    • Support multiplanar images in Metal argument buffers.
    • Support a descriptor pool with less descriptors than the descriptor set layout,
      as long as the pool has enough descriptors for the variable descriptor count,
    • Update max number of bindless buffers and textures per stage to 1M, per Apple Docs.
    • Track OpArrayLength buffer-sizes buffer as an auxiliary buffer in each descriptor set
      argument buffer, as this is how SPIRV-Cross expects it.
  • Add option to generate a GPU capture via a temporary named pipe from an external process.
  • Fix shader conversion failure when using native texture atomics.
  • MSL shader conversion, only pass resource bindings that apply to current shader stage.
  • Graphics pipeline better support dynamic patch control points.
  • Fix crash when VkPipelineShaderStageCreateInfo::pTessellationState is null.
  • Update documentation for minimum runtime OS requirements to indicate macOS 10.15, iOS 13, or tvOS 13.
  • Add support for Xcode 16, macOS 15 SDK, iOS 18 SDK, and MSL 3.2.
  • Enforce barrier when sampling timestamps.
  • Update Github CI versions to use Github's latest macOS and default Xcode,
    and update legacy CI support to macOS 12 and Xcode 13.4.1.
  • Update dependency libraries to match Vulkan SDK 1.3.290.
  • Update MVK_PRIVATE_API_VERSION to version 42.
  • Update to latest SPIRV-Cross:
    • MSL: Add option to force depth write in fragment shaders
    • MSL: Improve handling of padded descriptors with argument buffers
    • MSL: Support ConstOffsets on image gather.
    • MSL: Image gather ConstOffsets supports multiple address spaces.
    • MSL: Support a runtime array with dynamic offset in an argument buffer.
    • MSL: Support descriptor sets with recursive content when using argument buffers.
    • MSL: Don't bother supporting invalid multi-dimensional dynamic buffers.
    • MSL: Do not overwrite rez_bind when padding.
    • MSL: Only consider padding for non-aliased resources.
    • MSL: Always use layout-declared array size for argument buffers.
    • MSL: Allow UBO/SSBO resources to get the layout-derived size as well.
    • MSL: Improve handling of padded descriptors with argument buffers.
    • MSL: Fix invalid packing for pointer-to-vector.
    • MSL: Handle OpPtrAccessChain with ArrayStride
    • MSL: Consider pointer arithmetic for OpPtrAccessChain.
    • MSL: Cast to packed format when using unexpected stride.
    • MSL: Minor fix to resource type of spvBufferSizeConstants array indexes.

Release Release for Vulkan SDK 1.3.290 · KhronosGroup/MoltenVK