Release for Vulkan SDK 1.1.114 (Metal-3.0)
Note: This release requires support for Metal-3.0. That means Xcode11 for development, and macOS 10.15 and iOS 13 for runtime. Perhaps you want v1.0.36 instead?
- Add support for extensions:
VK_KHR_device_group_creation
VK_KHR_swapchain_mutable_format
VK_KHR_uniform_buffer_standard_layout
VK_EXT_metal_surface
VK_EXT_post_depth_coverage
VK_EXT_scalar_block_layout
VK_EXT_shader_stencil_export
VK_EXT_swapchain_colorspace
VK_EXT_texel_buffer_alignment
VK_AMD_shader_image_load_store_lod
VK_AMD_shader_trinary_minmax
VK_INTEL_shader_integer_functions2
- Support
VK_FORMAT_A2R10G10B10_UNORM_PACK32
as a surface format and view format. - For shaders created directly from MSL, set function name from
VkPipelineShaderStageCreateInfo::pName
. - On iOS GPU family 2 and earlier, support immutable depth-compare samplers
asconstexpr
samplers hardcoded in MSL. vkCmdCopyImage()
support copying between compressed and uncompressed formats
and validate that formats are compatible for copying.vkCmdBufferImageCopy()
fix crash when setting bytes per image in non-arrayed images.vkCmdBlitImage()
supports blit between different texture formats, and multisampled images.vkCmdResolveImage()
supports textures of different sizes.vkCmdClearImage()
returns error if texture is not renderable.- Move push constant binding to
vkCmdBindPipeline()
fromvkCmdBindDescriptorSet()
. MVKDeviceMemory
keepMTLResourceOptions
aligned withMTLStorageMode
&MTLCPUCacheMode
.- Texture memory requirements don't use shared storage on macOS.
- Add
MTLCommandBuffer
completion timing performance tracking option. - Expand
MVK_CONFIG_TRACE_VULKAN_CALLS
to optionally log Vulkan call timings. - Skip
SPIRV-Tools
build in Travis because Travis does not support the required Python 3. - Separate
SPIRVToMSLConverterContext
into input config and output results. - Use native Metal texture buffers when available.
- Fix issue with push constants used across multiple draw calls not being applied.
- Fix memory leak in debug marker and debug utils labelling.
- Reduce memory leaks when autorelease pools are not available.
- Fix pipeline cache lookups.
- Fix race condition between swapchain image destruction and presentation completion callback.
- Set Metal texture usage to allow texture copy via view.
- Fix memory leak in debug marker and debug utils labelling.
- Fix issue with push constants used across multiple draw calls not being applied.
- Fix crash when binding descriptor set to layout that has been destroyed and recreated.
- Return error when
MVKImage
created as 1D attachment. - Reduce use of autoreleased Obj-C objects, and ensure those remaining are
covered by deliberate autorelease pools. - Document that the functions in
vk_mvk_moltenvk.h
cannot be used with objects
retrieved through the Vulkan SDK Loader and Layers framework. - Update
VK_MVK_MOLTENVK_SPEC_VERSION
to 21. - Update dependency libraries to match Vulkan SDK 1.1.114.
- Update to latest SPIRV-Cross version:
- MSL: Support
SPV_KHR_multiview
extension. - MSL: Support the
SPV_KHR_post_depth_coverage
extension. - MSL: Support the
SPV_AMD_shader_trinary_minmax
extension. - MSL: Support the
SPV_KHR_device_group
extension. - MSL: Support the
SPV_INTEL_shader_integer_functions2
extension. - MSL: Support
SubgroupSize
/SubgroupInvocationID
in fragment. - MSL: Support
OpImageQueryLod
. - MSL: Support
MinLod
operand. - MSL: Support
PrimitiveID
in fragment and barycentrics. - MSL: Support 64-bit integers.
- MSL: Support
OpOuterProduct
. - MSL: Support
SubgroupLocalInvocationId
andSubgroupSize
in all stages. - MSL: Support scalar reflect and refract.
- MSL: Support scalar block layout.
- MSL: Use the
select()
function forOpSelect
. - MSL: Handle
coherent
,volatile
, andrestrict
. - MSL: Refactor buffer packing logic from ground up.
- MSL: Fix alignment of packed types.
- MSL: Handle packed matrices.
- MSL: Conditionally validate MSL 2.2 shaders.
- MSL: Rewrite how resource indices are fallback-assigned.
- MSL: Support custom bindings for argument buffers.
- MSL: Fix sampling with
FP16
coordinates. - MSL: Deal with scalar input values for distance/length/normalize.
- MSL: Error out on
int64_t/uint64_t
buffer members as unsupported by Metal. - MSL: Deal with scalar input values for distance/length/normalize.
- MSL: Re-roll array expressions in initializers.
- MSL: New SDK errors out on cull distance.
- Rewrite how switch block case labels are emitted.
- Fixes to handling of
OpPhi
and case fallthrough. - Fix declaration of loop variables with a
OpPhi
helper copy. - Handle more cases with FP16 and texture sampling.
- Fix variable scope when an
if
orelse
block dominates a variable. - Fall back to complex loop if non-trivial continue block is found.
- Remove unreasonable assertion for
OpTypeImage Sampled
parameter. - Propagate NonUniformEXT to dependent expressions.
- Deal correctly with return sign of bitscan operations.
- MSL: Support