Update dependency libraries to match Vulkan SDK 1.2.176, and update What's New document.

This commit is contained in:
Bill Hollings 2021-04-26 16:38:23 -04:00
parent 897e375bbb
commit 8969e4d4a4
9 changed files with 35 additions and 15 deletions

View File

@ -16,25 +16,49 @@ Copyright (c) 2015-2021 [The Brenwill Workshop Ltd.](http://www.brenwill.com)
MoltenVK 1.1.3
--------------
Released TBD
Released 2021/04/27
- Add beta support for using Metal argument buffers for shader resources on _macOS_, by setting
`MVK_CONFIG_USE_METAL_ARGUMENT_BUFFERS` environment variable (disabled by default). This dramatically
expands the number of resources that can be submitted to a pipeline stage, per the Vulkan
`VK_EXT_descriptor_indexing` extension. **Currently available on _macOS 10.16 (Big Sur)_ or later,
and on earlier _macOS_ versions on _Intel_ GPU's**.
- Add support for `HDR10` colorspace via `VK_COLOR_SPACE_HDR10_HLG_EXT` and `VK_COLOR_SPACE_HDR10_ST2084_EXT`.
- Always explicitly set `CAMetalLayer` colorspace property based on _Vulkan_ parameters,
and don't rely on _Metal_ default values.
- Avoid use of _Metal_ renderpass load and store actions on memoryless attachments.
- Fix memory leak on swapchain destruction.
- Remove project qualifiers from references to `SPIRV-Cross` header files.
- Add `MVKConfiguration::resumeLostDevice` and `MVK_CONFIG_RESUME_LOST_DEVICE` env var,
to allow `VkDevice` to resume after non-fatal `VK_ERROR_DEVICE_LOST` error.
- `MVKDescriptorPool` pools its descriptor sets.
- Enable `MVKConfiguration::preallocateDescriptors` and `MVK_CONFIG_PREALLOCATE_DESCRIPTORS`
environment variable by default to preallocate descriptors when a `VkDescriptorPool` is created.
- Avoid use of _Metal_ renderpass load and store actions on memoryless attachments.
- Fix memory leak on swapchain destruction.
- Fix `MVKPhysicalDevice::getSurfaceFormats()` returning `VK_FORMAT_UNDEFINED`.
- Fix memory leak where swapchains and images were not destroyed due to a retention loop.
- Fix advertising single-texel alignment capability for texel buffers.
- Fix time and space inefficiencies caused by missed shader cache lookup hits in `MVKShaderLibraryCache`.
- Log enhanced command buffer errors in debug mode.
- Ensure queue submission message logging occurs before submission object is destroyed.
- Remove project qualifiers from references to `SPIRV-Cross` header files.
- Only perform automatic GPU capture on queue identified by `MVKConfiguration::defaultGPUCaptureScopeQueueIndex`
and `defaultGPUCaptureScopeQueueFamilyIndex`.
- Introduce `MVKConfigLogLevelBits`, `MVKConfigAutoGPUCaptureScopeBits`, and `MVKConfigTraceVulkanCallsBits`
enums to specify config API values in a Vulkan-friendly manner, while automatically documenting the same values for env vars.
- Add `MVKConfiguration::apiVersionToAdvertise` and `MVK_CONFIG_API_VERSION_TO_ADVERTISE`
env var to configure **MoltenVK** to advertise a particular _Vulkan_ version.
- Add `MVKConfiguration::advertiseExtensions` and `MVK_CONFIG_ADVERTISE_EXTENSIONS`
env var to configure **MoltenVK** to force advertising support for no, or minimal, _Vulkan_ extensions.
env var to configure **MoltenVK** to force advertising support for no, or minimally few, _Vulkan_ extensions.
- Remove the `Hologram` and `API-Samples` demo apps, and remove
`LunarG/VulkanSamples` as a dependency library.
- Add `NDEBUG` macro to all Release builds to remove `assert()` calls.
- Update `VK_MVK_MOLTENVK_SPEC_VERSION` to `31`.
- Update dependency libraries to match _Vulkan SDK 1.2.176_.
- Update to latest SPIRV-Cross version:
- MSL: Support long `ulong` types in buffers in 2.3+.
- MSL: Support padding Metal argument buffer entries based on argument index.
- Add interfaces to aid with LTO-style optimization
- Handle edge cases in `OpCopyMemory`.

View File

@ -37,7 +37,6 @@ Fetching and Building External Libraries
- [*SPIRV-Tools*](https://github.com/KhronosGroup/SPIRV-Tools)
- [*SPIRV-Headers*](https://github.com/KhronosGroup/SPIRV-Headers)
- [*Vulkan-Tools*](https://github.com/KhronosGroup/Vulkan-Tools)
- [*VulkanSamples*](https://github.com/LunarG/VulkanSamples)
These external open-source libraries are maintained in the `External` directory.
To retrieve and build these libraries from their sources, run the `fetchDependencies`
@ -76,9 +75,6 @@ determined as follows:
- **_Vulkan-Tools_**: a GitHub repository commit identifier found in the
`ExternalRevisions/Vulkan-Tools_repo_revision` file.
- **_VulkanSamples_**: a GitHub repository commit identifier found in the
`ExternalRevisions/VulkanSamples_repo_revision` file.
You can update which versions of the *cereal*, *Vulkan-Headers*, *SPIRV-Cross*,
*glslang*, *Vulkan-Tools*, or *VulkanSamples* libraries are retrieved by changing
the value held in the corresponding `*_repo_revision` file listed above.

View File

@ -1 +1 @@
d57ab68a219831900fa2b8a3bd529413e01f3b9f
995c7981cc3ec0cbd1e5a07321cfdee3d1219524

View File

@ -1 +1 @@
1d99b835ec3cd5a7fb2f2a2dd9a615ee2d1f0101
074fa3055cfee530992bcbfa0fcb23106a82c1ab

View File

@ -1 +1 @@
88ea55de928a08ba5c5f65a93d1e7c8f666fc43f
eb3d67bd17ee433e2b0a8e56a7249bd83908812e

View File

@ -1 +0,0 @@
16cb7667f5de831ac042c7fa9eb8c771260197fe

View File

@ -1 +1 @@
e56beaee736863ce48455955158f1839e6e4c1a1
18eef33bd7a4bf5ad8c69f99cb72022608cf6e73

View File

@ -145,7 +145,7 @@ public:
}
protected:
MVKDispatchableObjectICDRef _icdRef = { VK_NULL_HANDLE, this };
MVKDispatchableObjectICDRef _icdRef = { 0, this };
};

1
MoltenVK/include/vk_video Symbolic link
View File

@ -0,0 +1 @@
../../External/Vulkan-Headers/include/vk_video