Skip to content

Release for Vulkan SDK 1.1.121

Compare
Choose a tag to compare
@billhollings billhollings released this 10 Sep 21:04
0934e32
  • Add support for extensions:
    • VK_KHR_device_group
    • VK_EXT_fragment_shader_interlock
  • Add support for VkEvent, using either native MTLEvent or emulation when MTLEvent not available.
  • vkInvalidateMappedMemoryRanges() synchronizes managed device memory to CPU.
  • Track supported instance and device extensions correctly.
  • Revert to supporting host-coherent memory for linear images on macOS.
  • Report limit of 64KB for constant buffer bindings on macOS.
  • Disable depth and/or stencil testing if corresponding attachment is missing.
  • Ensure Vulkan loader magic number is set every time before returning any dispatchable Vulkan handle.
  • Fix crash when VkDeviceCreateInfo specifies queue families out of numerical order.
  • Fix crash in vkDestroyPipelineLayout().
  • Fix crash when signalling swapchain semaphore using MTLEvent.
  • Fix crash when determining alignment of invalid pixel formats.
  • vkCmdBlitImage(): Support format component swizzling.
  • vkCmdClearImage(): Set error if attempt made to clear 1D image, and fix validation of depth attachment formats.
  • vkCreateRenderPass(): Return VK_ERROR_FORMAT_NOT_SUPPORTED if format not supported.
  • vkCmdFillBuffer(): Improve performance 150x by using parallelism more effectively.
  • Support optional use of MTLFence for Vulkan semaphores via the MVK_ALLOW_METAL_FENCES environment variable.
  • Remove error logging on VK_TIMEOUT of VkSemaphore and VkFence.
  • Remove log message warning of obsolescence of vkCreateMacOSSurfaceMVK() and vkCreateIOSSurfaceMVK() functions.
  • Report error only on the first time a format substitution is made.
  • Streamline design and use of MVKSemaphore.
  • Consolidate the various linkable objects into a MVKLinkableMixin template base class.
  • Use MVKVector whenever possible in MoltenVK, especially within render loop.
  • No longer prefer dedicated allocations for buffer memory, including buffer-backed images.
  • Handle the compositeAlpha member of VkSwapchainCreateInfoKHR.
  • VkPhysicalDevicePortabilitySubsetFeaturesEXTX::events set to true.
  • Always submit surface presentations using MTLCommandBuffer.
    MVKConfiguration::presentWithCommandBuffer is now obsolete.
  • Don't use MTLCommandBuffer push/popDebugGroup if not available.
  • MVKSwapchain::signalWhenAvailable() add autoreleasepool around MTLCommandBuffer use.
  • Add ability to automatically cause an Xcode GPU capture without developer intervention.
  • Update VK_MVK_MOLTENVK_SPEC_VERSION to version 22.
  • Update dependency libraries to match Vulkan SDK 1.1.121.
  • Update to renaming of VK_INTEL_shader_integer_functions2 enums and structs in latest Vulkan headers.
  • Update to latest SPIRV-Cross version:
    • Support the SPV_EXT_fragment_shader_interlock extension.
    • MSL: Deal with array copies from and to threadgroup.
    • MSL: Deal with Modf/Frexp where output is access chain to scalar.
    • MSL: Inline all emitted functions.
    • MSL: Inline all non-entry-point functions.
    • MSL: Add {Base,}{Vertex,Instance}{,Index} to bitcast_from_builtin_load.
    • MSL: Add support for sampler Y'CbCr conversion.
    • MSL: Force storage images on iOS to use discrete descriptors.
    • MSL: Support dynamic offsets for buffers in argument buffers.
    • MSL: Cleanup temporary use with emit_uninitialized_temporary.
    • MSL: Unify the get_*_address_space() methods.
    • Assume image and sampler can be RelaxedPrecision.
    • Fix post-depth coverage for ESSL.
    • Fix variable scope when switch block exits multiple times.
    • Fix severe performance issue with invariant expression invalidation.
    • Fix ParsedIR::mark_used_as_array_length(uint32_t id)
    • Deal correctly with sign on bitfield operations.
    • Elide branches to continue block when continue block is also a merge.
    • Move branchless analysis to CFG.
    • Deal with ldexp taking uint input.
    • Do not allow base expressions for non-native row-major matrices.
    • Do not force temporary unless continue-only for loop dominates.
    • Fix ParsedIR::mark_used_as_array_length(uint32_t id).
    • Refactor into stronger types in public API.