Software 42656 Published by

MoltenVK Vulkan SDK 1.3.296 has a lot of changes. It now dynamically assigns descriptors when the pool is full, stops using the MVKConfiguration::preallocateDescriptors and MVK_CONFIG_PREALLOCATE_DESCRIPTORS environment variables, and lets you write or copy past the end of a descriptor binding count. The update also includes support for storage images in Metal argument buffers on iOS and updating VkFormat capabilities based on the latest Metal documents. The update also addresses rendering issues, GPU crashes, race conditions, memory leaks, and build failures on VisionOS 2.0 platforms. The update also includes support for running on tvOS 13, a primitive-restart-disabled warning, and support for storage images in Metal argument buffers.



MoltenVK Release for Vulkan SDK 1.3.296

  • Support dynamically allocating descriptors when pool is exhausted.
  • Deprecate MVKConfiguration::preallocateDescriptors and MVK_CONFIG_PREALLOCATE_DESCRIPTORS environment variable.
  • vkAllocateDescriptorSets(): Per Vulkan spec, if any descriptor set allocation
    fails, populate all descriptor set pointers with VK_NULL_HANDLE. In addition,
    return VK_ERROR_FRAGMENTED_POOL if failure was due to pool fragmentation.
  • vkUpdateDescriptorSets(): Per Vulkan spec, allow write or copy beyond the
    end of a descriptor binding count, including inline uniform block descriptors.
  • Update VkFormat capabilities based on latest Metal docs.
  • Ensure all MoltenVK config info set by VK_EXT_layer_settings is used.
  • Advertise VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT and
    VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT for storage texel buffers.
  • Support storage images in Metal argument buffers on iOS.
  • vkUpdateDescriptorSets(): Support writing beyond descriptor binding size if subsequent bindings are of same type.
  • Fix rendering issue with render pass that immediately follows a kernel dispatch.
  • Fix occasional GPU crash when a smaller descriptor set replaces a larger one.
  • Fix race condition when VkImage destroyed while used by descriptor.
  • Fix crash in vkCmdPushDescriptorSetWithTemplateKHR() when entries in
    VkDescriptorUpdateTemplateCreateInfo are not sorted by offset.
  • Fix issue where vkQueueWaitIdle() and vkDeviceWaitIdle() were not
    waiting for all commands to be enqueued before enqueuing wait operation.
  • Fix occassional incorrect detection of available descriptor sets during vkAllocateDescriptorSets().
  • Fix shader conversion failure when using storage images on iOS & tvOS with Tier 1 argument buffer support.
  • Fix occasional memory leak where spurious texel buffer was accidentally created during image-memory unbinding.
  • Fix memory leak in debug utils messenger.
  • Fix crash when VkDescriptorSetLayout is destroyed while descriptor set is in use.
  • Fix build failure on VisionOS 2.0 platform.
  • Support VK_FORMAT_A2B10G10R10_UNORM_PACK32 and VK_FORMAT_A2R10G10B10_UNORM_PACK32 formats as surface formats on all platforms.
  • Add MTLStoreAction mapping for VK_ATTACHMENT_STORE_OP_NONE.
  • Add estimate of presentMargin in returned data from vkGetPastPresentationTimingGOOGLE().
  • Update value of minSubgroupSize on AMD RX6600 to 32.
  • Fix support for running on tvOS 13.
  • Only add present handler if VK_GOOGLE_display_timing info is available during presentation.
  • Move primitive-restart-disabled warning from renderpass to pipeline creation, to reduce voluminous log noise.
  • iOS: Support storage images in Metal argument buffers.
  • Add MVKConfiguration::shaderLogEstimatedGLSL, and environment variable MVK_CONFIG_SHADER_LOG_ESTIMATED_GLSL,
    to enable or disable the logging of estimated GLSL code, and disable it by default
  • Fix endless loop in fetchDependencies when -- is missing on platform names.
  • Update dependency libraries to match Vulkan SDK 1.3.296.
  • Update MVK_PRIVATE_API_VERSION to version 43.
  • Update to latest SPIRV-Cross:
    • Various non-feature maintenance updates.

Release Release for Vulkan SDK 1.3.296 · KhronosGroup/MoltenVK