Skip to content

Releases: KhronosGroup/MoltenVK

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…

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.

Release for Vulkan SDK 1.3.261

17 Aug 23:02
02a8c01
Compare
Choose a tag to compare
  • Add support for extensions:
    • VK_KHR_incremental_present
    • VK_KHR_shader_non_semantic_info
    • VK_EXT_4444_formats
    • VK_EXT_calibrated_timestamps
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_shader_subgroup_ballot
    • VK_EXT_shader_subgroup_vote
  • Add support for VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN.
  • Support building MoltenVK for visionOS.
  • Ensure non-dispatch compute commands don't interfere with compute encoding state used by dispatch commands.
  • Support maximizing the concurrent executing compilation tasks via MVKConfiguration::shouldMaximizeConcurrentCompilation
  • Support VK_PRESENT_MODE_IMMEDIATE_KHR if VkPresentTimeGOOGLE::desiredPresentTime is zero.
  • Add support for VK_PRESENT_MODE_IMMEDIATE_KHR to macOS Cube demo.
  • Allow both renderPass and VkPipelineRenderingCreateInfo to be missing.
  • Fix sync delay between calls to vkQueueSubmit() on non-Apple-Silicon devices.
  • Ensure Xcode simulator always uses 256B buffer alignment.
  • Don't attempt to force the window system to use the same high-power GPU as the app, on every swapchain creation.
  • Log more info about SPIR-V to MSL conversion errors.
  • Implement Deferred Host Operations.
  • Support MSL Version 3.1.
  • Drop official support for using Xcode 11 to build MoltenVK.
  • To allow building MoltenVK without an internet connection, don't fetch a submodule if the commit is already known.
  • Update dependency libraries to match Vulkan SDK 1.3.261.
  • Update to latest SPIRV-Cross:
    • MSL: Fix argument buffer padding when content includes arrays.
    • MSL: ray-query intersection params
    • MSL: Support SPV_KHR_shader_ballot and SPV_KHR_subgroup_vote.
    • Skip line directives when emitting loop condition blocks.
    • MSL: Consider changed array types for array-of-constant-bool in struct.
    • MSL: Consider bool-short remapping for constant expressions as well.
    • Minor cleanup in constant_expression().
    • MSL: Add test for bool-in-struct edge cases.
    • MSL: Handle more complex array copy scenarios with bool <-> short.
    • MSL: Handle stores to struct bool[].
    • MSL: Consider bool/short remapping when dealing with composites.
    • MSL: fix function constant deduplication misfire

Release for Vulkan SDK 1.3.250

24 May 00:38
4c6bfbe
Compare
Choose a tag to compare
  • Add support for extensions:
    • VK_KHR_map_memory2
  • Deprecate the obsolete and non-standard VK_MVK_moltenvk extension.
    • Add mvk_config.h, mvk_private_api.h, and mvk_deprecated_api.h, and deprecate vk_mvk_moltenvk.h.
  • Support BC compression on iOS/tvOS where available (iOS/tvOS 16.4 and above and supported by the GPU).
  • Support separate depth and stencil attachments during dynamic rendering.
  • Fix memory leak when waiting on timeline semaphores.
  • Fix race condition when updating values in VkPastPresentationTimingGOOGLE,
    and ensure swapchain image presented time is always populated when requested.
  • Report error, but do not fail on request for timestamp query pool that is too
    large for MTLCounterSampleBuffer, and fall back to emulation via CPU timestamps.
  • Ensure shaders that use PhysicalStorageBufferAddresses encode the use of the associated MTLBuffer.
  • Disable pipeline cache compression prior to macOS 10.15 and iOS/tvOS 13.0.
  • Accumulate render stages when a resource is used by multiple descriptor bindings.
  • Respect the bind point supplied to vkCmdBindDescriptorSets() / vkCmdPushDescriptorSets().
  • Check if shader compiled before adding it to a pipeline, to avoid Metal validation error.
  • Identify each unsupported device feature flag that the app attempts to enable.
  • Populate deviceUUID from MTLDevice location and peer group info,
    which should be unique, and constant across OS reboots.
  • Populate deviceLUID from MTLDevice.registryID.
  • Avoid Metal validation warning when depth component swizzled away.
  • Fix depth clamp and texture swizzle feature discovery on simulator builds.
  • Advertise VK_KHR_depth_stencil_resolve extension on all devices.
  • For correctness, set VkPhysicalDeviceLimits::lineWidthGranularity to 1.
  • Improve GitHub CI production of binary artifacts on submission and release.
  • Update dependency libraries to match Vulkan SDK 1.3.250.
  • Update to latest SPIRV-Cross:
    • MSL: Fix for argument buffer index compare when invalid.
    • MSL: Fix dref lod workaround on combined texture/samplers.
    • MSL: Do not override variable name with v_ identifier.
    • MSL: Use name_id consistently in argument declaration.
    • MSL: Don't hit array copy path for pointer to array.
    • MSL: Use templated array type when emitting BDA to arrays.

Release for Vulkan SDK 1.3.243

23 Mar 03:14
db8512a
Compare
Choose a tag to compare
  • Add support for extensions:
    • VK_EXT_external_memory_host
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_shader_atomic_float
    • VK_EXT_surface_maintenance1
    • VK_EXT_swapchain_maintenance1
  • Fix crash when VkCommandBufferInheritanceInfo::renderPass is VK_NULL_HANDLE during dynamic rendering.
  • Do not clear attachments when dynamic rendering is resumed.
  • Allow ending dynamic rendering to trigger next multiview pass if needed.
  • Fix premature caching of occlusion query results during tessellation rendering.
  • vkCmdCopyQueryPoolResults(): Fix loss of queries when query count is not a multiple of GPU threadgroup execution width.
  • Disable occlusion recording while clearing attachments or render area.
  • Fix issue where extension VK_KHR_fragment_shader_barycentric was sometimes incorrectly disabled due to a Metal driver bug.
  • Detect when size of surface has changed under the covers.
  • Change rounding of surface size provided by Metal from truncation to rounding-with-half-to-even.
  • Queue submissions retain wait semaphores until MTLCommandBuffer finishes.
  • Use a different visibility buffer for each MTLCommandBuffer in a queue submit.
  • Work around problems with using explicit LoD with arrayed depth images on Apple Silicon.
  • Fix issue when VkPipelineVertexInputDivisorStateCreateInfoEXT::vertexBindingDivisorCount
    doesn't match VkPipelineVertexInputStateCreateInfo::vertexBindingDescriptionCount.
  • Support Apple Silicon pixel formats on a MoltenVK x86_64 build that is running on Apple Silicon using Rosetta2.
  • Reduce memory footprint of MSL source code retained in pipeline cache.
  • Add MVKConfiguration::shaderSourceCompressionAlgorithm and
    env var MVK_CONFIG_SHADER_COMPRESSION_ALGORITHM to support
    compressing MSL shader source code held in a pipeline cache.
  • Add MVKShaderCompilationPerformance::mslCompress and mslDecompress
    to allow performance of MSL compression to be tracked and queried.
  • Add support for logging performance stats accumulated in a VkDevice, when it is destroyed.
  • Change MVKConfiguration::logActivityPerformanceInline boolean to activityPerformanceLoggingStyle enumeration value.
  • Add MVK_CONFIG_ACTIVITY_PERFORMANCE_LOGGING_STYLE environment variable and
    build setting to set MVKConfiguration::activityPerformanceLoggingStyle value.
  • Expand MVK_CONFIG_TRACE_VULKAN_CALLS to log thread ID only if requested.
  • Update VK_MVK_MOLTENVK_SPEC_VERSION to version 37.
  • Update dependency libraries to match Vulkan SDK 1.3.243.
  • Update to latest SPIRV-Cross:
    • MSL: Add support for OpAtomicFAddEXT atomic add on float types
    • MSL: Add a workaround for broken level() arguments.
    • MSL: Deduplicate function constants.

Release for Vulkan SDK 1.3.239

24 Jan 01:20
fb581e4
Compare
Choose a tag to compare
  • Fix Metal validation error caused by CAMetalDrawable released before MTLCommandBuffer is finished using it.
  • Fix memory leak of MVKFences and MVKSemaphores when a swapchain image is acquired more than it is presented.
  • Fix issue where fragment shader was not run when no render attachment is available.
  • Ensure Vulkan public symbols are not stripped from the library when statically linked to an app that calls all Vulkan functions dynamically.
  • Per Vulkan 1.2 spec, support calling vkGetInstanceProcAddr() with a null instance, when vkGetInstanceProcAddr itself is the function name.
  • Update VkPhysicalDeviceLimits members maxClipDistances and maxCombinedClipAndCullDistances to more accurate values.
  • Update VkPhysicalDeviceLimits::maxDrawIndexedIndexValue to acknowledge automatic primitive restart.
  • Update copyright notices to year 2023.
  • Update to latest SPIRV-Cross:
    • MSL: Add support for writable images in iOS Tier2 argument buffers.
    • MSL: Fix potentially uninitialized warnings.