Releases: KhronosGroup/MoltenVK
Releases · KhronosGroup/MoltenVK
v1.2.9-rc1
Merge pull request #2231 from billhollings/fix-arg-buff-padding Fix shader argument buffer padding and atomics.
Release for Vulkan SDK 1.3.283
- Add support for extensions:
VK_EXT_host_image_copy
- To support legacy apps, restore
MoltenVK/dylib
directory via symlink toMoltenVK/dynamic/dylib
. - Enhancements to
MVKPerformanceStatistics
. AddMVKPerformanceTracker::previous
,
MVKQueuePerformance::waitSubmitCommandBuffers
, andMVKQueuePerformance::waitPresentSwapchains
. - Add
MVK_CONFIG_SHADER_DUMP_DIR
configuration parameter to optionally dump shaders to files. - Return MoltenVK log level string in
pMessageIdName
field of debug utils callback data. - Fix crash when using
VK_EXT_metal_objects
under ARC. - Fix deadlock when creating a swapchain on a thread other than the main thread.
- Fix potential memory leak in
vkQueueWaitIdle()
. - Fix argument buffer padding on shader conversion.
- Avoid atomic image usage if native atomics are not supported on the platform.
- Ensure buffer bindings are actually used to avoid potential overrun on Metal buffer indexes.
- Update dependency libraries to match Vulkan SDK 1.3.283.
- Update
MVK_PRIVATE_API_VERSION
to41
. - Update to latest SPIRV-Cross:
- MSL: Add support for overlapping bindings.
- MSL: Use recursive template for
spvArrayCopy()
. - MSL: Improve argument buffer descriptor aliasing implementation.
- MSL: Workaround compiler issue with image fence when used as reference.
- MSL: Fix SUMulExtended for 64-bit inputs.
- MSL: Handle Atomic{S,U}{Min,Max} with mismatched image sign.
- MSL: Handle missing FP16 trancendental overloads.
- MSL: Remove pointer wrapper stored in
spvDescriptorArray()
to avoid potential Metal compiler bug. - MSL: Fix argument buffer padding.
v1.2.8-rc1
Merge pull request #2181 from billhollings/vulkan-sdk-1.3.280 Update dependency libraries to match Vulkan SDK 1.3.280.
Release for Vulkan SDK 1.3.280
- Add support for extensions:
VK_KHR_shader_integer_dot_product
- Improve support for iOS App Store rules by using dynamic XCFramework, instead of naked
dylib
.- Static XCFramework now available in
Package/Latest/MoltenVK/static/MoltenVK.xcframework
. - Dynamic XCFramework now available in
Package/Latest/MoltenVK/dynamic/MoltenVK.xcframework
. - macOS dynamic library now available in
Package/Latest/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib
.
- Static XCFramework now available in
- Add
MVK_USE_METAL_PRIVATE_API
build setting to allow MoltenVK to be built with access to Metal private API calls.VkPhysicalDeviceFeatures::wideLines
enabled whenMVK_USE_METAL_PRIVATE_API
is enabled in a MoltenVK build.VkPhysicalDeviceFeatures::logicOp
enabled whenMVK_USE_METAL_PRIVATE_API
is enabled in a MoltenVK build.VkPhysicalDeviceFeatures::depthBounds
enabled on AMD GPUs whenMVK_USE_METAL_PRIVATE_API
is enabled in a MoltenVK build.VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias
enabled whenMVK_USE_METAL_PRIVATE_API
is enabled in a MoltenVK build.- Metal native pipeline sample masks supported when
MVK_USE_METAL_PRIVATE_API
is enabled in a MoltenVK build.
- Enable use of native texture atomics where supported.
- Fix potential crash when using multi-planar images.
- Fix translation of fully remapped multi vertex attribute bindings.
- Fix unresolvable layered compute resolve.
- Fix visionOS build.
- Handle depth/stencil swizzle sample correctly.
- Ensure buffers available for buffer addresses in push constants.
- Don't update
currentExtent
of headless surface when swapchain attached. - Don't return
VK_SUBOPTIMAL_KHR
for headless surfaces. runcts
script also output a file containing a list of the failed CTS tests.- Add documentation for using Metal GPU capture with MoltenVK.
- Update minimum macOS deployment target to 10.15.
- Update minimum iOS/tvOS deployment target to 13.0.
- Update dependency libraries to match Vulkan SDK 1.3.280.
- Update
MVK_PRIVATE_API_VERSION
to40
. - Update to latest SPIRV-Cross:
- MSL: Plumb through member state to image/sampler types.
- MSL: Support variable sized descriptor array in argument buffer.
- MSL: Implement
spvDescriptorArray
path for SSBO/UBO. - MSL: Add support for SPV_EXT_integer_dot_product.
- MSL: Fix misc sign issues with dot product impl and add more coverage.
- MSL: Handle volatile properly for emulated image atomics.
- MSL: OpCopyObject declare a temp var of base type, not pointer type.
- MSL: Pass texture array index separately to atomic texture operations.
- MSL: Test image atomic for image2DArray.
- MSL: Improve handling of BDA + atomics.
- MSL: Fix type hierarchy for extended vectors.
- MSL: Fix type hierarchy for extended vectors.
- MSL:
atomic_compare_exchange_weak()
supportCompilerMSL:msl_options.texture_1D_as_2D
.
v1.2.7-rc2
Merge pull request #2124 from billhollings/revert-to-default-static-s… …ymbols Revert to disabling MVK_HIDE_VULKAN_SYMBOLS by default.
Release for Vulkan SDK 1.3.275
- Add support for extensions:
VK_KHR_calibrated_timestamp
VK_KHR_format_feature_flags2
VK_KHR_vertex_attribute_divisor
VK_EXT_extended_dynamic_state3
(Metal does not supportVK_POLYGON_MODE_POINT
)VK_EXT_headless_surface
VK_EXT_layer_settings
- Add support for format
VK_FORMAT_B4G4R4A4_UNORM_PACK16
. - Add support for vertex formats
VK_FORMAT_B10G11R11_UFLOAT_PACK32
&VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
. - Fix regression that broke
VK_POLYGON_MODE_LINE
. - Fix regression in marking rendering state dirty after
vkCmdClearAttachments()
. - Fix regression error in argument buffer runtime arrays.
- Fix rare deadlock during launch via
dlopen()
. - Fix initial value of
VkPhysicalDeviceLimits::timestampPeriod
on non-Apple Silicon GPUs. - Fix swapchain and surface bugs when windowing system is accessed from off the main thread.
- Fix system memory size of tvOS.
- Fix
heapUsage
query for non-unified memory devices. - Add a defensive guard to ensure
heapUsage[0]
calculation is correct. - Clamp max per-set descriptor limit to minimum
1024
. - Enable the cube texture gradient workaround for Apple Silicon.
- Ensure
lineWidthGranularity
is zero if thewideLines
feature isn't supported. - Ensure
maxDrawIndexedIndexValue
set toUINT32_MAX
. - Ignore no external handle types specified for buffers and images.
- Expose
VK_EXT_debug_utils
device functions as device functions, not instance functions. - Emit
primitiveRestartEnable
disabled warning only for strip topology. - Enable mandatory
VK_EXT_descriptor_indexing
features, and don't advertise extension if they are not supported. - Reduce disk space consumed after running
fetchDependencies
script by removing intermediate file caches. - Deprecate
vkSetMoltenVKConfigurationMVK()
. - Deprecate
mvk_config.h
and move content tomvk_private_api.h
andmvk_deprecated_api.h
. - The Cube demo is now based on Volk, with dynamic library linking, and dynamic function pointer calls.
- Update copyright notices to year 2024.
- Update dependency libraries to match Vulkan SDK 1.3.275.
- Update to latest SPIRV-Cross:
- MSL: Fix regression error in argument buffer runtime arrays.
- MSL: Work around broken cube texture gradients on Apple Silicon.
- MSL: Ensure discrete runtime arrays of buffers have known length.
- MSL: Implement Metal 3.1 image atomics natively.
- MSL: Fix patch vertex count with raw buffer tese input.
- MSL: Improve handling of sample masks.
- MSL: Add divide to reserved function names.
- MSL: Support std140 half matrices and arrays.
- MSL: Use more appropriate padded types.
- MSL: Don't use swizzle if we have wrapper.
- MSL: Add ray-cull mask
- MSL: Consider PtrAccessChain on array types.
- MSL: Use LHS expression to determine whether or not to do array copy.
- MSL: Only do address-of expression when needed.
- MSL: Improve PtrAccessChain handling.
- MSL: Use powr instead of pow.
- MSL: Remove special case for threadgroup array wrapper.
- MSL: Added an
Op
field toSPIRType
and refactor.
v1.2.7-rc1
Merge pull request #2121 from billhollings/vulkan-sdk-1.3.275 Update dependency libraries to match Vulkan SDK 1.3.275.
v1.2.6-rc2
Merge pull request #2046 from billhollings/fix-prim-rsrt-warn Emit primitiveRestartEnable disabled warning only for strip topology.
Release for Vulkan SDK 1.3.268
- Add support for extensions:
VK_KHR_synchronization2
VK_EXT_extended_dynamic_state
(requires Metal 3.1 forVK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE
)VK_EXT_extended_dynamic_state2
- Fix rare case where vertex attribute buffers are not bound to Metal when no other bindings change between pipelines.
- Ensure objects retained for life of
MTLCommandBuffer
duringvkCmdBlitImage()
&vkQueuePresentKHR()
. - Fix case where a
CAMetalDrawable
with invalid pixel format causes onscreen flickering. - Fix deadlock when reporting debug message on
MVKInstance
destruction. - Fix MSL code used in
vkCmdBlitImage()
on depth-stencil formats. - Improve behavior of swapchain image presentation stalls caused by Metal regression.
VkPhysicalDeviceLimits::timestampPeriod
set to 1.0 on Apple GPUs, and calculated dynamically on non-Apple GPUs.- Add
MVKConfiguration::timestampPeriodLowPassAlpha
and environment variable
MVK_CONFIG_TIMESTAMP_PERIOD_LOWPASS_ALPHA
, to add a configurable lowpass filter
for varyingVkPhysicalDeviceLimits::timestampPeriod
on non-Apple GPUs. - Add several additional performance trackers, available via logging, or the
mvk_private_api.h
API. - Deprecate
MVK_DEBUG
env var, and addMVK_CONFIG_DEBUG
env var to replace it. - Update
MVK_CONFIGURATION_API_VERSION
andMVK_PRIVATE_API_VERSION
to38
. - Update dependency libraries to match Vulkan SDK 1.3.268.
- Update to latest SPIRV-Cross:
- MSL: Workaround Metal 3.1 regression bug on recursive input structs.
- MSL: fix extraction of global variables, in case of atomics.
- MSL: Workaround bizarre crash on macOS.
- MSL: runtime array over argument buffers.
- MSL: Make rw texture fences optional.
- MSL: Prevent RAW hazards on read_write textures.
v1.2.6-rc1
Merge pull request #2044 from billhollings/vulkan-sdk-1.3.268 Update dependency libraries to match Vulkan SDK 1.3.268.