Releases: KhronosGroup/MoltenVK
Releases · KhronosGroup/MoltenVK
Release v1.4.0
- Add support for Vulkan 1.4.
- Add support for extensions:
VK_KHR_dynamic_rendering_local_readVK_KHR_global_priorityVK_KHR_line_rasterizationVK_KHR_maintenance5VK_KHR_maintenance8VK_KHR_present_idVK_KHR_present_id2VK_KHR_present_waitVK_KHR_present_wait2VK_KHR_shader_float_controls2VK_KHR_shader_maximal_reconvergenceVK_KHR_shader_quad_controlVK_KHR_shader_relaxed_extended_instructionVK_KHR_shader_subgroup_uniform_control_flowVK_KHR_surface_protected_capabilitiesVK_EXT_line_rasterization
vkDeviceWaitIdle()&vkQueueWaitIdle()now wait even whenVK_ERROR_DEVICE_LOSTerror is encountered.- For behaviouraly consistency, require deprecated unofficial extension
VK_MVK_moltenvkbe enabled to access
the proc addrs for functionsvkSetMoltenVKConfigurationMVK()andvkGetPhysicalDeviceMetalFeaturesMVK(). - Fix missed supported usage in image format properties checks.
- Fix high latency on present wait.
- Fix shader cache misses within pipeline cache.
- Fix misalignment between pipeline pixel formats and dynamic rendering attachments.
- Fix attempting to add memoryless images to residency sets.
- Fix color-depth image copies and image copies using buffer with multiple layers.
- Enable
shaderRoundingModeRTEFloat16/32. - Move
vkGetPhysicalDeviceMetalFeaturesMVK()frommvk_private_api.htomvk_deprecated_api.h. - Re-expose proc addr for deprecated
VK_MVK_moltenvkextension functions. - Add the AMD Radeon PRO W6800X as a device with 32-wide SIMD-groups.
- Apple, AMD, and Intel devices use parallelograms for lines.
- Fix counter set memory leak on workaround to AMD RDNA devices
- Update to latest SPIRV-Cross:
- MSL: Add support for
DebugPrintf. - MSL: Fix crash due to regression caused by recent changes to location calculations.
- MSL: Add option to provide a default point size.
- MSL: Implement clustered subgroup operations for sizes other than 4.
- MSL: Fix generation of the
WorkgroupSizebuilt-in. - MSL: Implement accurate
OpSMod. - MSL: Always emit gl_Layer for multiview.
- MSL: Don't emit const for BDA pointers.
- MSL: Fix loading BDA from
std140UBO. - MSL: Fix issues with
fp16trancendentals. - MSL: Fix edge case where a reference is taken of packed vector element.
- MSL: Fix crash when using force-native-arrays in some cases.
- MSL: Don't use fast::normalize for half at all.
- MSL: Implement
atomic_thread_fencefor MSL 3.2+. - MSL: Always emit access qualifier when emitting coherency.
- MSL: Support SPIR-V Fast Math execution modes and decorations.
- MSL: Deal with spec constant arrays which depend on composite extract.
- MSL: Attempt to deal with float controls and trancendentals.
- MSL: Rethink
add_pragma_line()andadd_typedef_line(). - GLSL/MSL: Add support for
SPV_KHR_quad_control.
- MSL: Add support for
v1.4.0-rc1
Update Whats_New.md for 1.4.0 release.
v1.3.0-rc1
Merge pull request #2509 from billhollings/amd-disable-mtlheap Disable MVK_CONFIG_USE_MTLHEAP for AMD devices by default.
Release v1.3.0
- Add support for Vulkan 1.3.
- Add support for extensions:
VK_KHR_index_type_uint8VK_KHR_load_store_op_noneVK_KHR_maintenance4VK_KHR_maintenance6VK_KHR_maintenance7VK_KHR_shader_expect_assumeVK_KHR_shader_subgroup_rotateVK_KHR_shader_terminate_invocationVK_KHR_vulkan_memory_modelVK_KHR_zero_initialize_workgroup_memoryVK_EXT_depth_clip_controlVK_EXT_external_memory_metal.VK_EXT_image_2d_view_of_3dVK_EXT_index_type_uint8VK_EXT_load_store_op_noneVK_EXT_pipeline_robustnessVK_EXT_tooling_info
- Add support for
B5G6R5_UNORM_PACK16B5G5R5A1_UNORM_PACK16, andB8G8R8A8formats using swizzle. - Convert
MVK_CONFIG_USE_MTLHEAPto enumeration, and set active by default to support
VK_EXT_image_2d_view_of_3d, except on AMD devices. - Remove
glslangas dependency library. MoltenVKShaderConverterno 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.ymlto 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
vkGetPhysicalDeviceToolPropertiesas a device entry-point. - Fix memory leak of
CAEDRMetadatainMVKSwapchain. - Fix not saving
shouldFixupClipSpacewhen serializing a pipeline. - Fix header namespace pollution.
- Revert use of size 1 for variable length arrays in shader.
- Add
MTLHeapsexport/import for emulated textures. MTLHeapson 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.
vkCmdWaitEventsend current encoder beforeencodeWait.- Remove support for deprecated
VK_NV_glsl_shaderextension, and GLSL conversions using MoltenVKShaderConverter. - Remove use of
VK_ERROR_INVALID_SHADER_NVerror 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
pViewportStatepointer 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 beforeencodeWait.- Add missing
depthClampandshaderTessellationAndGeometryPointSizefeatures 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 aVkInstancehas 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.
- MSL: Support broader tessellation I/O matching for
v1.2.11-artifacts
Build artifacts for release v1.2.11.
v1.2.11-rc1
Merge pull request #2360 from billhollings/vulkan-sdk-1.3.296 Update dependency libraries to match Vulkan SDK 1.3.296.
Release for Vulkan SDK 1.3.296
Note: An issue occurred in publishing the build artifacts for this release. If you are looking for the release build artifacts, you can find them here.
- Support dynamically allocating descriptors when pool is exhausted.
- Deprecate
MVKConfiguration::preallocateDescriptorsandMVK_CONFIG_PREALLOCATE_DESCRIPTORSenvironment variable. vkAllocateDescriptorSets(): Per Vulkan spec, if any descriptor set allocation
fails, populate all descriptor set pointers withVK_NULL_HANDLE. In addition,
returnVK_ERROR_FRAGMENTED_POOLif 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
VkFormatcapabilities based on latest Metal docs. - Ensure all MoltenVK config info set by
VK_EXT_layer_settingsis used. - Advertise
VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BITand
VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BITfor 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
VkImagedestroyed while used by descriptor. - Fix crash in
vkCmdPushDescriptorSetWithTemplateKHR()when entries in
VkDescriptorUpdateTemplateCreateInfoare not sorted by offset. - Fix issue where
vkQueueWaitIdle()andvkDeviceWaitIdle()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
VkDescriptorSetLayoutis destroyed while descriptor set is in use. - Fix build failure on VisionOS 2.0 platform.
- Support
VK_FORMAT_A2B10G10R10_UNORM_PACK32andVK_FORMAT_A2R10G10B10_UNORM_PACK32formats as surface formats on all platforms. - Add
MTLStoreActionmapping forVK_ATTACHMENT_STORE_OP_NONE. - Add estimate of
presentMarginin returned data fromvkGetPastPresentationTimingGOOGLE(). - Update value of
minSubgroupSizeon AMD RX6600 to32. - Fix support for running on
tvOS 13. - Only add present handler if
VK_GOOGLE_display_timinginfo 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 variableMVK_CONFIG_SHADER_LOG_ESTIMATED_GLSL,
to enable or disable the logging of estimated GLSL code, and disable it by default - Fix endless loop in
fetchDependencieswhen--is missing on platform names. - Update dependency libraries to match Vulkan SDK 1.3.296.
- Update
MVK_PRIVATE_API_VERSIONto version43. - Update to latest SPIRV-Cross:
- Various non-feature maintenance updates.
v1.2.11-b1
Merge pull request #2333 from billhollings/sdk-1.3.295b Update dependency libraries to match Vulkan SDK 1.3.295 beta.
v1.2.10-rc2
Merge pull request #2276 from billhollings/sdk-testing-fixes Fixes from Vulkan SDK 1.3.290 testing.
v1.2.10-rc1
Merge pull request #2274 from billhollings/sdk-1.3.290 Update dependency libraries to match Vulkan SDK 1.3.290.