@@ -16,10 +16,69 @@ For best results, use a Markdown reader.*
16
16
MoltenVK 1.0.37
17
17
---------------
18
18
19
- Released TBD
19
+ Released 2019/09/10
20
20
21
+ - Add support for extensions:
22
+ - `VK_KHR_device_group`
23
+ - `VK_EXT_fragment_shader_interlock`
24
+ - Add support for ` VkEvent ` , using either native ` MTLEvent ` or emulation when ` MTLEvent ` not available.
25
+ - ` vkInvalidateMappedMemoryRanges() ` synchronizes managed device memory to CPU.
26
+ - Track supported instance and device extensions correctly.
21
27
- Revert to supporting host-coherent memory for linear images on macOS.
28
+ - Report limit of 64KB for constant buffer bindings on macOS.
29
+ - Disable depth and/or stencil testing if corresponding attachment is missing.
22
30
- Ensure Vulkan loader magic number is set every time before returning any dispatchable Vulkan handle.
31
+ - Fix crash when ` VkDeviceCreateInfo ` specifies queue families out of numerical order.
32
+ - Fix crash in ` vkDestroyPipelineLayout() ` .
33
+ - Fix crash when signalling swapchain semaphore using ` MTLEvent ` .
34
+ - Fix crash when determining alignment of invalid pixel formats.
35
+ - ` vkCmdBlitImage(): ` Support format component swizzling.
36
+ - ` vkCmdClearImage(): ` Set error if attempt made to clear 1D image, and fix validation of depth attachment formats.
37
+ - ` vkCreateRenderPass(): ` Return ` VK_ERROR_FORMAT_NOT_SUPPORTED ` if format not supported.
38
+ - ` vkCmdFillBuffer(): ` Improve performance 150x by using parallelism more effectively.
39
+ - Support optional use of ` MTLFence ` for Vulkan semaphores via the ` MVK_ALLOW_METAL_FENCES ` environment variable.
40
+ - Remove error logging on ` VK_TIMEOUT ` of ` VkSemaphore ` and ` VkFence ` .
41
+ - Remove log message warning of obsolescence of ` vkCreateMacOSSurfaceMVK() ` and ` vkCreateIOSSurfaceMVK() ` functions.
42
+ - Report error only on the first time a format substitution is made.
43
+ - Streamline design and use of ` MVKSemaphore ` .
44
+ - Consolidate the various linkable objects into a ` MVKLinkableMixin ` template base class.
45
+ - Use ` MVKVector ` whenever possible in MoltenVK, especially within render loop.
46
+ - No longer prefer dedicated allocations for buffer memory, including buffer-backed images.
47
+ - Handle the ` compositeAlpha ` member of ` VkSwapchainCreateInfoKHR ` .
48
+ - ` VkPhysicalDevicePortabilitySubsetFeaturesEXTX::events ` set to ` true ` .
49
+ - Always submit surface presentations using ` MTLCommandBuffer ` .
50
+ ` MVKConfiguration::presentWithCommandBuffer ` is now obsolete.
51
+ - Don't use ` MTLCommandBuffer push/popDebugGroup ` if not available.
52
+ - ` MVKSwapchain::signalWhenAvailable() ` add autoreleasepool around ` MTLCommandBuffer ` use.
53
+ - Add ability to automatically cause an * Xcode* GPU capture without developer intervention.
54
+ - Update ` VK_MVK_MOLTENVK_SPEC_VERSION ` to version 22.
55
+ - Update dependency libraries to match Vulkan SDK 1.1.121.
56
+ - Update to renaming of ` VK_INTEL_shader_integer_functions2 ` enums and structs in latest Vulkan headers.
57
+ - Update to latest SPIRV-Cross version:
58
+ - Support the `SPV_EXT_fragment_shader_interlock` extension.
59
+ - MSL: Deal with array copies from and to threadgroup.
60
+ - MSL: Deal with `Modf/Frexp` where output is access chain to scalar.
61
+ - MSL: Inline all emitted functions.
62
+ - MSL: Inline all non-entry-point functions.
63
+ - MSL: Add `{Base,}{Vertex,Instance}{,Index}` to `bitcast_from_builtin_load`.
64
+ - MSL: Add support for sampler Y'CbCr conversion.
65
+ - MSL: Force storage images on iOS to use discrete descriptors.
66
+ - MSL: Support dynamic offsets for buffers in argument buffers.
67
+ - MSL: Cleanup temporary use with `emit_uninitialized_temporary`.
68
+ - MSL: Unify the `get_*_address_space()` methods.
69
+ - Assume image and sampler can be `RelaxedPrecision`.
70
+ - Fix post-depth coverage for ESSL.
71
+ - Fix variable scope when switch block exits multiple times.
72
+ - Fix severe performance issue with invariant expression invalidation.
73
+ - Fix `ParsedIR::mark_used_as_array_length(uint32_t id)`
74
+ - Deal correctly with sign on bitfield operations.
75
+ - Elide branches to continue block when continue block is also a merge.
76
+ - Move branchless analysis to CFG.
77
+ - Deal with `ldexp` taking `uint` input.
78
+ - Do not allow base expressions for non-native row-major matrices.
79
+ - Do not force temporary unless continue-only for loop dominates.
80
+ - Fix `ParsedIR::mark_used_as_array_length(uint32_t id)`.
81
+ - Refactor into stronger types in public API.
23
82
24
83
25
84
0 commit comments