diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index aa010018e..26e9a1c5f 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -17,7 +17,7 @@ For best results, use a Markdown reader.* MoltenVK 1.0.40 --------------- -Released 2020/01/21 +Released 2020/01/22 - Refactor descriptor management to reduce memory footprint and fix caching leak. - Add `MVK_CONFIG_PREALLOCATE_DESCRIPTORS` environment variable to support preallocated @@ -25,11 +25,33 @@ Released 2020/01/21 - Fix crash when app does not use queue family zero. - Fix buffer offset in `vkCmdPushDescriptorSet()` for non-dedicated buffer memory. - Fix Metal validation error on push constant sizing differences between C and MSL structs. +- Use `MTLBuffer` when inline uniform block descriptor is written to instead of copying host-side bytes. +- Fix `EXT_inline_uniform_block` when using push descriptor sets. +- Merge buffer and inline unions to fix issue where binding inline descriptor would interfere with + future binds on the same set index in the same command buffer (now only used in push case anyway). - Track performance of `CAMetalLayer nextDrawable` call. - Document recommendation to use 3 swapchain images, particularly with full-screen rendering. - Update `MoltenVK_Runtime_UserGuide.md` to better explain runtime environment variables. - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to `24`. - Update copyright notices to year 2020. +- Update dependency libraries to match *Vulkan SDK 1.2.131*. +- Update to latest SPIRV-Cross version: + - MSL: Support `ClipDistance` as an input stage variable. + - MSL: Fix automatic binding allocation for image atomic buffers. + - MSL: Deal with packing vectors for vertex input/fragment output. + - MSL: Don't set `OrigID` when emitting component packed vectors. + - MSL: Add trivial tests for `Component` decoration. + - MSL: Deal with padded fragment output + `Component` decoration. + - MSL: Partially implement support for Component decoration in complex scenarios. + - MSL: Explicitly don't support component packing for tessellation. + - MSL: Deal with sign on wave `min/max`. + - MSL: Add support for force-activating IAB resources. + - Deal with illegal names in types as well. + - Basic implementation of `OpCopyLogical`. + - Fix sign handling for `S/UToF`. + - Fix uninitialized memory issue. + - Roll custom versions of `isalpha/isalnum`. + - Update license headers to year 2020. diff --git a/ExternalRevisions/README.md b/ExternalRevisions/README.md index 76dc0be99..20348239a 100644 --- a/ExternalRevisions/README.md +++ b/ExternalRevisions/README.md @@ -149,7 +149,8 @@ The *SPIRV-Cross* library plays an important part in providing features for **_M you are developing features for **_MoltenVK_**, you may end up making changes to *SPIRV-Cross*. If you make changes to the `SPIRV-Cross` repository, you can build a new version of the `libSPIRVCross.a` -static library by opening the `ExternalDependencies.xcodeproj` *Xcode* project, and running the **_ExternalDependencies_** *Xcode* scheme. You can then rebuild **MoltenVK** to include the new library. +static library by opening the `ExternalDependencies.xcodeproj` *Xcode* project, and running the +**_ExternalDependencies_** *Xcode* scheme. You can then rebuild **MoltenVK** to include the new library. While makng changes to the `SPIRV-Cross` repository, you can regression test your changes using the following steps: @@ -201,8 +202,9 @@ the *SPIRV-Tools* library to the `ExternalDependencies` *Xcode* project as follo 5. Repeat *Step 4* for the `SPIRV-Tools-iOS` target within the `ExternalDependencies` *Xcode* project -6. Update `Templates/spirv-tools/build.zip` from the contents of `External/glslang/External/spirv-tools/build`, - and test by running `./fetchDependencies --skip-spirv-tools-build`, and a **MoltenVK** build. +6. Update `Templates/spirv-tools/build.zip` from the `*.h` and `*.inc` files in + `External/glslang/External/spirv-tools/build`, remove hidden `.*` files, and test + by running `./fetchDependencies --skip-spirv-tools-build`, and a **MoltenVK** build. diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision index 57d5a9fa0..4101c6fc9 100644 --- a/ExternalRevisions/SPIRV-Cross_repo_revision +++ b/ExternalRevisions/SPIRV-Cross_repo_revision @@ -1 +1 @@ -96a276c2ca86e81530313786e99e2b95623898ca +f9818f0804e6e73ec8afcc523b7e7f8bfc362632 diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision index 927555263..1602b8ed3 100644 --- a/ExternalRevisions/Vulkan-Headers_repo_revision +++ b/ExternalRevisions/Vulkan-Headers_repo_revision @@ -1 +1 @@ -0e57fc1cfa56a203efe43e4dfb9b3c9e9b105593 +881bbb347a08d1b5aa77f61a52a30b506de9f2bf diff --git a/ExternalRevisions/Vulkan-Tools_repo_revision b/ExternalRevisions/Vulkan-Tools_repo_revision index 29782053a..2a84555e3 100644 --- a/ExternalRevisions/Vulkan-Tools_repo_revision +++ b/ExternalRevisions/Vulkan-Tools_repo_revision @@ -1 +1 @@ -0c2618b2c31e2f216e131ff4c1c83e2c92c6ae66 +4792a6854238ba3f6d10b8c7fcd11c102cae4ca6 diff --git a/ExternalRevisions/VulkanSamples_repo_revision b/ExternalRevisions/VulkanSamples_repo_revision index 00eb4cf27..c2e97ce56 100644 --- a/ExternalRevisions/VulkanSamples_repo_revision +++ b/ExternalRevisions/VulkanSamples_repo_revision @@ -1 +1 @@ -ae32f2390060925afa9c5b111ac94de6d13fe229 +9f72cf123c673e47679bb72caa06a17d7b0258dd diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision index 445aab984..da32f64d3 100644 --- a/ExternalRevisions/glslang_repo_revision +++ b/ExternalRevisions/glslang_repo_revision @@ -1 +1 @@ -ebf634bcaa3e46ca8a912ed05b87281c731b2391 +4fc7a33910fb8e40b970d160e1b38ab3f67fe0f3 diff --git a/Templates/spirv-tools/build.zip b/Templates/spirv-tools/build.zip index f66fa7a6d..c54ae08a9 100644 Binary files a/Templates/spirv-tools/build.zip and b/Templates/spirv-tools/build.zip differ