Skip to content

Commit

Permalink
Merge pull request #741 from billhollings/Metal-3.0
Browse files Browse the repository at this point in the history
Merge master 1.0.37 into Metal-3.0 branch.
  • Loading branch information
billhollings authored Sep 18, 2019
2 parents 97a9e70 + b99a2ea commit 23de5ac
Show file tree
Hide file tree
Showing 66 changed files with 4,113 additions and 3,073 deletions.
5 changes: 3 additions & 2 deletions Docs/MoltenVK_Runtime_UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,8 @@ In addition to the core *Vulkan* API, **MoltenVK** also supports the following
- `VK_KHR_bind_memory2`
- `VK_KHR_dedicated_allocation`
- `VK_KHR_descriptor_update_template`
- `VK_KHR_device_group`
- `VK_KHR_device_group_creation`
- `VK_KHR_get_memory_requirements2`
- `VK_KHR_get_physical_device_properties2`
- `VK_KHR_get_surface_capabilities2`
Expand All @@ -252,6 +254,7 @@ In addition to the core *Vulkan* API, **MoltenVK** also supports the following
- `VK_EXT_debug_marker`
- `VK_EXT_debug_report`
- `VK_EXT_debug_utils`
- `VK_EXT_fragment_shader_interlock` *(requires Metal 2.0 and Raster Order Groups)*
- `VK_EXT_host_query_reset`
- `VK_EXT_memory_budget` *(requires Metal 2.0)*
- `VK_EXT_metal_surface`
Expand Down Expand Up @@ -510,8 +513,6 @@ This section documents the known limitations in this version of **MoltenVK**.
In order to use Vulkan layers such as the validation layers, use the Vulkan loader and layers from the
[LunarG Vulkan SDK](https://vulkan.lunarg.com).

- `VkEvents` are not supported.

- Application-controlled memory allocations using `VkAllocationCallbacks` are ignored.

- Pipeline statistics query pool using `VK_QUERY_TYPE_PIPELINE_STATISTICS` is not supported.
Expand Down
61 changes: 60 additions & 1 deletion Docs/Whats_New.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,69 @@ For best results, use a Markdown reader.*
MoltenVK 1.0.37
---------------

Released TBD
Released 2019/09/10

- 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.



Expand Down
Loading

0 comments on commit 23de5ac

Please sign in to comment.