Skip to content

Releases: KhronosGroup/MoltenVK

v1.2.9-rc1

07 May 04:13
bf097ed
Compare
Choose a tag to compare
Merge pull request #2231 from billhollings/fix-arg-buff-padding

Fix shader argument buffer padding and atomics.

Release for Vulkan SDK 1.3.283

08 May 19:24
bf097ed
Compare
Choose a tag to compare
  • Add support for extensions:
    • VK_EXT_host_image_copy
  • To support legacy apps, restore MoltenVK/dylib directory via symlink to MoltenVK/dynamic/dylib.
  • Enhancements to MVKPerformanceStatistics. Add MVKPerformanceTracker::previous,
    MVKQueuePerformance::waitSubmitCommandBuffers, and MVKQueuePerformance::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 to 41.
  • 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

12 Mar 18:41
1d98bab
Compare
Choose a tag to compare
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

13 Mar 19:29
1d98bab
Compare
Choose a tag to compare
  • 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.
  • Add MVK_USE_METAL_PRIVATE_API build setting to allow MoltenVK to be built with access to Metal private API calls.
    • VkPhysicalDeviceFeatures::wideLines enabled when MVK_USE_METAL_PRIVATE_API is enabled in a MoltenVK build.
    • VkPhysicalDeviceFeatures::logicOp enabled when MVK_USE_METAL_PRIVATE_API is enabled in a MoltenVK build.
    • VkPhysicalDeviceFeatures::depthBounds enabled on AMD GPUs when MVK_USE_METAL_PRIVATE_API is enabled in a MoltenVK build.
    • VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias enabled when MVK_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 to 40.
  • 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() support CompilerMSL:msl_options.texture_1D_as_2D.

v1.2.7-rc2

10 Jan 23:53
66f6ff1
Compare
Choose a tag to compare
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

11 Jan 19:34
66f6ff1
Compare
Choose a tag to compare
  • 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 support VK_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 the wideLines feature isn't supported.
  • Ensure maxDrawIndexedIndexValue set to UINT32_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 to mvk_private_api.h and mvk_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 to SPIRType and refactor.

v1.2.7-rc1

09 Jan 18:12
b5774b3
Compare
Choose a tag to compare
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

18 Oct 20:11
9e4ee9e
Compare
Choose a tag to compare
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

23 Oct 17:25
9e4ee9e
Compare
Choose a tag to compare
  • Add support for extensions:
    • VK_KHR_synchronization2
    • VK_EXT_extended_dynamic_state (requires Metal 3.1 for VK_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 during vkCmdBlitImage() & 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 varying VkPhysicalDeviceLimits::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 add MVK_CONFIG_DEBUG env var to replace it.
  • Update MVK_CONFIGURATION_API_VERSION and MVK_PRIVATE_API_VERSION to 38.
  • 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

17 Oct 22:13
37268ca
Compare
Choose a tag to compare
Merge pull request #2044 from billhollings/vulkan-sdk-1.3.268

Update dependency libraries to match Vulkan SDK 1.3.268.