diff --git a/Demos/Cube/Cube.xcodeproj/project.pbxproj b/Demos/Cube/Cube.xcodeproj/project.pbxproj
index 471e762cf..1412260b3 100644
--- a/Demos/Cube/Cube.xcodeproj/project.pbxproj
+++ b/Demos/Cube/Cube.xcodeproj/project.pbxproj
@@ -415,7 +415,7 @@
MARKETING_VERSION = 1;
PRODUCT_NAME = Cube;
SDKROOT = appletvos;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
};
name = Debug;
};
@@ -438,7 +438,7 @@
MARKETING_VERSION = 1;
PRODUCT_NAME = Cube;
SDKROOT = appletvos;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
};
name = Release;
};
@@ -462,7 +462,7 @@
"@executable_path/../Frameworks",
"@executable_path/../Frameworks/MoltenVK.framework",
);
- MACOSX_DEPLOYMENT_TARGET = 10.14;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_NAME = Cube;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@@ -489,7 +489,7 @@
"@executable_path/../Frameworks",
"@executable_path/../Frameworks/MoltenVK.framework",
);
- MACOSX_DEPLOYMENT_TARGET = 10.14;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_NAME = Cube;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
@@ -511,8 +511,8 @@
MVK_SAMP_CUBE,
);
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"@executable_path/Frameworks",
"@executable_path/Frameworks/MoltenVK.framework",
@@ -541,8 +541,8 @@
MVK_SAMP_CUBE,
);
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ "IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"@executable_path/Frameworks",
"@executable_path/Frameworks/MoltenVK.framework",
diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md
index 2d28e054a..aa354523c 100644
--- a/Docs/Whats_New.md
+++ b/Docs/Whats_New.md
@@ -16,8 +16,10 @@ Copyright (c) 2015-2024 [The Brenwill Workshop Ltd.](http://www.brenwill.com)
MoltenVK 1.2.8
--------------
-Released TBD
+Released 2024/03/12
+- Add support for extensions:
+ - `VK_KHR_shader_integer_dot_product`
- Improve support for _iOS App Store_ rules by using dynamic _XCFramework_, instead of naked `dylib`.
- Static _XCFramework_ now available in `Package/Latest/MoltenVK/static/MoltenVK.xcframework`.
- Dynamic _XCFramework_ now available in `Package/Latest/MoltenVK/dynamic/MoltenVK.xcframework`.
@@ -28,10 +30,35 @@ Released TBD
- `VkPhysicalDeviceFeatures::depthBounds` enabled on AMD GPUs when `MVK_USE_METAL_PRIVATE_API` is enabled in a **MoltenVK** build.
- `VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias` enabled when `MVK_USE_METAL_PRIVATE_API` is enabled in a **MoltenVK** build.
- _Metal_ native pipeline sample masks supported when `MVK_USE_METAL_PRIVATE_API` is enabled in a **MoltenVK** build.
+- Enable use of native texture atomics where supported.
- Fix potential crash when using multi-planar images.
+- Fix translation of fully remapped multi vertex attribute bindings.
+- Fix unresolvable layered compute resolve.
+- Fix visionOS build.
+- Handle depth/stencil swizzle sample correctly.
- Ensure buffers available for buffer addresses in push constants.
- Don't update `currentExtent` of headless surface when swapchain attached.
+- Don't return `VK_SUBOPTIMAL_KHR` for headless surfaces.
- `runcts` script also output a file containing a list of the failed CTS tests.
+- Add documentation for using Metal GPU capture with **MoltenVK**.
+- Update minimum _macOS_ deployment target to 10.15.
+- Update minimum _iOS/tvOS_ deployment target to 13.0.
+- Update dependency libraries to match _Vulkan SDK 1.3.280_.
+- Update `MVK_PRIVATE_API_VERSION` to `40`.
+- Update to latest SPIRV-Cross:
+ - MSL: Plumb through member state to image/sampler types.
+ - MSL: Support variable sized descriptor array in argument buffer.
+ - MSL: Implement `spvDescriptorArray` path for SSBO/UBO.
+ - MSL: Add support for SPV_EXT_integer_dot_product.
+ - MSL: Fix misc sign issues with dot product impl and add more coverage.
+ - MSL: Handle volatile properly for emulated image atomics.
+ - MSL: OpCopyObject declare a temp var of base type, not pointer type.
+ - MSL: Pass texture array index separately to atomic texture operations.
+ - MSL: Test image atomic for image2DArray.
+ - MSL: Improve handling of BDA + atomics.
+ - MSL: Fix type hierarchy for extended vectors.
+ - MSL: Fix type hierarchy for extended vectors.
+ - MSL: `atomic_compare_exchange_weak()` support `CompilerMSL:msl_options.texture_1D_as_2D`.
@@ -72,6 +99,7 @@ Released 2024/01/08
- The _Cube_ demo is now based on _Volk_, with dynamic library linking, and dynamic function pointer calls.
- Update copyright notices to year 2024.
- Update dependency libraries to match _Vulkan SDK 1.3.275_.
+- Update `MVK_CONFIGURATION_API_VERSION` and `MVK_PRIVATE_API_VERSION` to `39`.
- Update to latest SPIRV-Cross:
- MSL: Fix regression error in argument buffer runtime arrays.
- MSL: Work around broken cube texture gradients on Apple Silicon.
diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj
index 5c1e6f718..27442c7b9 100644
--- a/ExternalDependencies.xcodeproj/project.pbxproj
+++ b/ExternalDependencies.xcodeproj/project.pbxproj
@@ -7174,11 +7174,11 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = NO;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MACH_O_TYPE = staticlib;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
SKIP_INSTALL = YES;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
};
name = Debug;
};
@@ -7224,11 +7224,11 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = NO;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MACH_O_TYPE = staticlib;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
SKIP_INSTALL = YES;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
VALIDATE_PRODUCT = YES;
};
name = Release;
diff --git a/ExternalRevisions/README.md b/ExternalRevisions/README.md
index 06f193713..835f40879 100644
--- a/ExternalRevisions/README.md
+++ b/ExternalRevisions/README.md
@@ -18,9 +18,9 @@ Table of Contents
- [Fetching and Building External Libraries](#fetching)
- [Updating External Library Versions](#updating)
- [Adding the *cereal* Library to the *MoltenVK Xcode* Project](#add_cereal)
-- [Adding the *SPIRV-Cross* Library to the *ExternalDependencies Xcode* Project](#add_spirv-cross)
-- [Adding the *SPIRV-Tools* Library to the *ExternalDependencies Xcode* Project](#add_spirv-tools)
- [Adding the *glslang* Library to the *ExternalDependencies Xcode* Project](#add_glslang)
+- [Adding the *SPIRV-Tools* Library to the *ExternalDependencies Xcode* Project](#add_spirv-tools)
+- [Adding the *SPIRV-Cross* Library to the *ExternalDependencies Xcode* Project](#add_spirv-cross)
@@ -31,11 +31,12 @@ Fetching and Building External Libraries
**MoltenVK** uses technology from the following external open-source libraries:
- [*cereal*](https://github.com/USCiLab/cereal)
-- [*Vulkan-Headers*](https://github.com/KhronosGroup/Vulkan-Headers)
-- [*SPIRV-Cross*](https://github.com/KhronosGroup/SPIRV-Cross)
- [*glslang*](https://github.com/KhronosGroup/glslang)
-- [*SPIRV-Tools*](https://github.com/KhronosGroup/SPIRV-Tools)
-- [*SPIRV-Headers*](https://github.com/KhronosGroup/SPIRV-Headers)
+ - [*SPIRV-Tools*](https://github.com/KhronosGroup/SPIRV-Tools)
+ - [*SPIRV-Headers*](https://github.com/KhronosGroup/SPIRV-Headers)
+- [*SPIRV-Cross*](https://github.com/KhronosGroup/SPIRV-Cross)
+- [*volk*](https://github.com/zeux/volk)
+- [*Vulkan-Headers*](https://github.com/KhronosGroup/Vulkan-Headers)
- [*Vulkan-Tools*](https://github.com/KhronosGroup/Vulkan-Tools)
These external open-source libraries are maintained in the `External` directory.
@@ -59,27 +60,29 @@ determined as follows:
- **_cereal_**: a GitHub repository commit identifier found in the
`ExternalRevisions/cereal_repo_revision` file.
-- **_Vulkan-Headers_**: a GitHub repository commit identifier found in the
- `ExternalRevisions/Vulkan-Headers_repo_revision` file.
+- **_glslang_**: a GitHub repository commit identifier found
+ in the `ExternalRevisions/glslang_repo_revision` file.
+
+ - **_SPIRV-Tools_**: automatically retrieved by the *glslang* repository.
+
+ - **_SPIRV-Headers_**: automatically retrieved by the *glslang* repository.
- **_SPIRV-Cross_**: a GitHub repository commit identifier found in the
`ExternalRevisions/SPIRV-Cross_repo_revision` file.
-
-- **_glslang_**: a GitHub repository commit identifier found
- in the `ExternalRevisions/glslang_repo_revision` file.
-
-- **_SPIRV-Tools_**: automatically retrieved by the *glslang* repository.
-- **_SPIRV-Headers_**: automatically retrieved by the *glslang* repository.
-
+- **_volk_**: a GitHub repository commit identifier found in the
+ `ExternalRevisions/Volk_repo_revision` file.
+
+- **_Vulkan-Headers_**: a GitHub repository commit identifier found in the
+ `ExternalRevisions/Vulkan-Headers_repo_revision` file.
+
- **_Vulkan-Tools_**: a GitHub repository commit identifier found in the
`ExternalRevisions/Vulkan-Tools_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
+
+You can update which versions of the external libraries are retrieved by changing
the value held in the corresponding `*_repo_revision` file listed above.
-The version of the *SPIRV-Tools* and *SPIRV-Headers* libraries is automatically
+The versions of the *SPIRV-Tools* and *SPIRV-Headers* libraries are automatically
determined by the version of the *glslang* library you have retrieved.
Once you have made changes to the `*_repo_revision` files, you can retrieve the updated
@@ -89,6 +92,9 @@ library versions by running the `fetchDependencies` script, as described above,
>build errors when building **MoltenVK**, review the instructions in the sections below
>to ensure all necessary external library files are included in the **MoltenVK** builds.
+>***Note:*** _Vulkan-Tools_ and _volk_ are not used by **MoltenVK** itself, but are used
+>by the _Cube_ demo app included in the **MoltenVK** repository.
+
@@ -106,71 +112,44 @@ errors, you may need to re-add the *cereal* library to the `MoltenVK` *Xcode* pr
"$(SRCROOT)/../External/cereal/include"
-
-Adding the *SPIRV-Cross* Library to the *ExternalDependencies Xcode* Project
-----------------------------------------------------------------------------
-
-The `ExternalDependencies` *Xcode* project is already configured to use the *SPIRV-Cross*
-library. However, after updating the version of *SPIRV-Cross*, as described [above](#updating),
-if you encounter any building errors, you may need to re-add the *SPIRV-Cross* library to the
-`ExternalDependencies` *Xcode* project as follows:
-
-1. In the *Project Navigator*, remove all of the files under the *Group* named
- `External/SPIRV-Cross`.
-
-2. Drag the following files from the `External/SPIRV-Cross` directory to the `External/SPIRV-Cross`
- group in the *Project Navigator* panel:
-
- spirv_cfg.cpp
- spirv_cfg.hpp
- spirv_common.hpp
- spirv_cross_containers.hpp
- spirv_cross_error_handling.hpp
- spirv_cross_parsed_ir.cpp
- spirv_cross_parsed_ir.hpp
- spirv_cross_util.hpp
- spirv_cross.cpp
- spirv_cross.hpp
- spirv_glsl.cpp
- spirv_glsl.hpp
- spirv_msl.cpp
- spirv_msl.hpp
- spirv_parser.cpp
- spirv_parser.hpp
- spirv_reflect.cpp
- spirv_reflect.hpp
- spirv.hpp
-
- In the ***Choose options for adding these files*** dialog that opens, select the ***Create groups*** option,
- add the files to *all* of the `SPIRV-Cross-macOS`, `SPIRV-Cross-iOS`, and `SPIRV-Cross-tvOS` targets,
- and click the ***Finish*** button.
+
+Adding the *glslang* Library to the *ExternalDependencies Xcode* Project
+------------------------------------------------------------------------
-### Regression Testing Your Changes to *SPIRV-Cross*
+The `ExternalDependencies` *Xcode* project is already configured to use the *glslang*
+library. However, after updating the version of *glslang*, as described [above](#updating),
+if you encounter any building errors, you may need to re-add the *glslang* library to the
+`ExternalDependencies` *Xcode* project as follows:
-The *SPIRV-Cross* library plays an important part in providing features for **_MoltenVK_**, and if
-you are developing features for **_MoltenVK_**, you may end up making changes to *SPIRV-Cross*.
+1. In the *Project Navigator* panel, select the `ExternalDependencies` *Xcode* project, then
+ select the `glslang-macOS` target, and open the *Build Settings* tab. Locate the build
+ setting entry **Header Search Paths** (`HEADER_SEARCH_PATHS`) and add the following paths:
-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.
+ $(inherited)
+ "$(SRCROOT)/External/glslang"
+ "$(SRCROOT)/External/glslang/build/include"
-While makng changes to the `SPIRV-Cross` repository, you can regression test your changes using the
-following steps:
+2. Repeat *Step 1* for the `glslang-iOS` target within the `ExternalDependencies` *Xcode* project
-1. Load and build the versions of `SPRIV-Tools` and `glslang` that are used by the `SPIRV-Cross` tests:
+3. In the *Project Navigator*, remove all *Groups* from under the *Group* named
+ `External/glslang`.
- cd External/SPIRV-Cross
- ./checkout_glslang_spirv_tools.sh
- ./build_glslang_spirv_tools.sh
+4. Drag the following folders from the `External/glslang` file folder to the `External/glslang`
+ *Group* in the *Project Navigator* panel:
-2. Build `SPIRV-Cross`:
+ glslang
+ SPIRV
- make
+ In the ***Choose options for adding these files*** dialog that opens, select the ***Create groups*** option,
+ add the files to *all* of the `glslang-macOS`, `glslang-iOS`, and `glslang-tvOS` targets, and click the ***Finish*** button.
-3. Run the regression tests:
+5. In the *Project Navigator* panel, remove the references to the following files and folders:
- ./test_shaders.sh
+ External/glslang/glslang/MachineIndependant/glslang.y
+ External/glslang/glslang/OSDependent/Windows
+ External/glslang/glslang/OSDependent/Web
+ External/glslang/glslang/HLSL
@@ -214,44 +193,71 @@ the *SPIRV-Tools* library to the `ExternalDependencies` *Xcode* project as follo
-
-Adding the *glslang* Library to the *ExternalDependencies Xcode* Project
-------------------------------------------------------------------------
+
+Adding the *SPIRV-Cross* Library to the *ExternalDependencies Xcode* Project
+----------------------------------------------------------------------------
-The `ExternalDependencies` *Xcode* project is already configured to use the *glslang*
-library. However, after updating the version of *glslang*, as described [above](#updating),
-if you encounter any building errors, you may need to re-add the *glslang* library to the
+The `ExternalDependencies` *Xcode* project is already configured to use the *SPIRV-Cross*
+library. However, after updating the version of *SPIRV-Cross*, as described [above](#updating),
+if you encounter any building errors, you may need to re-add the *SPIRV-Cross* library to the
`ExternalDependencies` *Xcode* project as follows:
-1. In the *Project Navigator* panel, select the `ExternalDependencies` *Xcode* project, then
- select the `glslang-macOS` target, and open the *Build Settings* tab. Locate the build
- setting entry **Header Search Paths** (`HEADER_SEARCH_PATHS`) and add the following paths:
+1. In the *Project Navigator*, remove all of the files under the *Group* named
+ `External/SPIRV-Cross`.
- $(inherited)
- "$(SRCROOT)/External/glslang"
- "$(SRCROOT)/External/glslang/build/include"
+2. Drag the following files from the `External/SPIRV-Cross` directory to the `External/SPIRV-Cross`
+ group in the *Project Navigator* panel:
-2. Repeat *Step 1* for the `glslang-iOS` target within the `ExternalDependencies` *Xcode* project
+ spirv_cfg.cpp
+ spirv_cfg.hpp
+ spirv_common.hpp
+ spirv_cross_containers.hpp
+ spirv_cross_error_handling.hpp
+ spirv_cross_parsed_ir.cpp
+ spirv_cross_parsed_ir.hpp
+ spirv_cross_util.hpp
+ spirv_cross.cpp
+ spirv_cross.hpp
+ spirv_glsl.cpp
+ spirv_glsl.hpp
+ spirv_msl.cpp
+ spirv_msl.hpp
+ spirv_parser.cpp
+ spirv_parser.hpp
+ spirv_reflect.cpp
+ spirv_reflect.hpp
+ spirv.hpp
-3. In the *Project Navigator*, remove all *Groups* from under the *Group* named
- `External/glslang`.
+ In the ***Choose options for adding these files*** dialog that opens, select the ***Create groups*** option,
+ add the files to *all* of the `SPIRV-Cross-macOS`, `SPIRV-Cross-iOS`, and `SPIRV-Cross-tvOS` targets,
+ and click the ***Finish*** button.
-4. Drag the following folders from the `External/glslang` file folder to the `External/glslang`
- *Group* in the *Project Navigator* panel:
- glslang
- SPIRV
+### Regression Testing Your Changes to *SPIRV-Cross*
- In the ***Choose options for adding these files*** dialog that opens, select the ***Create groups*** option,
- add the files to *all* of the `glslang-macOS`, `glslang-iOS`, and `glslang-tvOS` targets, and click the ***Finish*** button.
+The *SPIRV-Cross* library plays an important part in providing features for **_MoltenVK_**, and if
+you are developing features for **_MoltenVK_**, you may end up making changes to *SPIRV-Cross*.
-5. In the *Project Navigator* panel, remove the references to the following files and folders:
+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.
- External/glslang/glslang/MachineIndependant/glslang.y
- External/glslang/glslang/OSDependent/Windows
- External/glslang/glslang/OSDependent/Web
- External/glslang/glslang/HLSL
+While makng changes to the `SPIRV-Cross` repository, you can regression test your changes using the
+following steps:
+
+1. Load and build the versions of `SPRIV-Tools` and `glslang` that are used by the `SPIRV-Cross` tests:
+ cd External/SPIRV-Cross
+ ./checkout_glslang_spirv_tools.sh
+ ./build_glslang_spirv_tools.sh
+
+2. Build `SPIRV-Cross`:
+
+ make
+
+3. Run the regression tests:
+
+ ./test_shaders.sh
diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision
index dcb1b01eb..33caece32 100644
--- a/ExternalRevisions/SPIRV-Cross_repo_revision
+++ b/ExternalRevisions/SPIRV-Cross_repo_revision
@@ -1 +1 @@
-64f64c837a8ba7e32e91cebcc6c796e9b45ab186
+de0e72a0db21d1a12eb37cbfd15199b3e66fc9d9
diff --git a/ExternalRevisions/Volk_repo_revision b/ExternalRevisions/Volk_repo_revision
index 13f22dccb..f4dd505ec 100644
--- a/ExternalRevisions/Volk_repo_revision
+++ b/ExternalRevisions/Volk_repo_revision
@@ -1 +1 @@
-fdf78c22c3e66a3c7ff62d8dcdcb5fcad023bec7
+01986ac85fa2e5c70df09aeae9c907e27c5d50b2
diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision
index afc524564..23f918a40 100644
--- a/ExternalRevisions/Vulkan-Headers_repo_revision
+++ b/ExternalRevisions/Vulkan-Headers_repo_revision
@@ -1 +1 @@
-217e93c664ec6704ec2d8c36fa116c1a4a1e2d40
+577baa05033cf1d9236b3d078ca4b3269ed87a2b
diff --git a/ExternalRevisions/Vulkan-Tools_repo_revision b/ExternalRevisions/Vulkan-Tools_repo_revision
index 3a663ab42..baa6090f0 100644
--- a/ExternalRevisions/Vulkan-Tools_repo_revision
+++ b/ExternalRevisions/Vulkan-Tools_repo_revision
@@ -1 +1 @@
-2c0a644db855f40f100f9f39e5a8a8dfa2b0014d
+da49add44591bee19975e4668e418591effd8240
diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision
index e4f9fcd3c..c361a8457 100644
--- a/ExternalRevisions/glslang_repo_revision
+++ b/ExternalRevisions/glslang_repo_revision
@@ -1 +1 @@
-a91631b260cba3f22858d6c6827511e636c2458a
+ee2f5d09eaf8f4e8d0d598bd2172fce290d4ca60
diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
index 7bc97d58c..a4965cb15 100644
--- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
+++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj
@@ -2607,17 +2607,15 @@
"\"$(SRCROOT)/../External/cereal/include\"",
"\"${BUILT_PRODUCTS_DIR}\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = "${CURRENT_PROJECT_VERSION}";
MTL_ENABLE_DEBUG_INFO = YES;
- MVK_SKIP_DYLIB = "";
- "MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES;
PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a";
PRODUCT_BUNDLE_IDENTIFIER = com.moltenvk.framework;
PRODUCT_NAME = MoltenVK;
SKIP_INSTALL = YES;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
WARNING_CFLAGS = "-Wreorder";
};
name = Debug;
@@ -2682,17 +2680,15 @@
"\"$(SRCROOT)/../External/cereal/include\"",
"\"${BUILT_PRODUCTS_DIR}\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = "${CURRENT_PROJECT_VERSION}";
MTL_ENABLE_DEBUG_INFO = NO;
- MVK_SKIP_DYLIB = "";
- "MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES;
PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a";
PRODUCT_BUNDLE_IDENTIFIER = com.moltenvk.framework;
PRODUCT_NAME = MoltenVK;
SKIP_INSTALL = YES;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
VALIDATE_PRODUCT = YES;
WARNING_CFLAGS = "-Wreorder";
};
diff --git a/MoltenVK/MoltenVK/API/mvk_private_api.h b/MoltenVK/MoltenVK/API/mvk_private_api.h
index 0d2d9ae97..93f8b47b3 100644
--- a/MoltenVK/MoltenVK/API/mvk_private_api.h
+++ b/MoltenVK/MoltenVK/API/mvk_private_api.h
@@ -349,7 +349,7 @@ typedef struct {
VkBool32 simdPermute; /**< If true, SIMD-group permutation functions (vote, ballot, shuffle) are supported in shaders. */
VkBool32 simdReduction; /**< If true, SIMD-group reduction functions (arithmetic) are supported in shaders. */
uint32_t minSubgroupSize; /**< The minimum number of threads in a SIMD-group. */
- VkBool32 textureBarriers; /**< If true, texture barriers are supported within Metal render passes. */
+ VkBool32 textureBarriers; /**< If true, texture barriers are supported within Metal render passes. Deprecated. Will always be false on all platforms. */
VkBool32 tileBasedDeferredRendering; /**< If true, this device uses tile-based deferred rendering. */
VkBool32 argumentBuffers; /**< If true, Metal argument buffers are supported. */
VkBool32 descriptorSetArgumentBuffers; /**< If true, a Metal argument buffer can be assigned to a descriptor set, and used on any pipeline and pipeline stage. If false, a different Metal argument buffer must be used for each pipeline-stage/descriptor-set combination. */
diff --git a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
index cb2231714..0818adf12 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
@@ -152,10 +152,6 @@
break;
}
}
- } else if (cmdEncoder->getDevice()->_pMetalFeatures->textureBarriers) {
-#if !MVK_MACCAT
- if (coversTextures()) { [cmdEncoder->_mtlRenderEncoder textureBarrier]; }
-#endif
}
#endif
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
index 61a441ded..c3960f47f 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
@@ -2152,11 +2152,11 @@
// Don't use barriers in render passes on Apple GPUs. Apple GPUs don't support them,
// and in fact Metal's validation layer will complain if you try to use them.
+ // Texture barriers deprecated as of macOS 10.14.
if ( !supportsMTLGPUFamily(Apple1) ) {
if (supportsMTLFeatureSet(macOS_GPUFamily1_v4)) {
_metalFeatures.memoryBarriers = true;
}
- _metalFeatures.textureBarriers = true;
}
#endif
diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
index 5227ff09f..677398e4a 100644
--- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
+++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj
@@ -733,12 +733,12 @@
"\"$(SRCROOT)/glslang\"",
"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MACH_O_TYPE = staticlib;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_NAME = MoltenVKShaderConverter;
SKIP_INSTALL = YES;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
WARNING_CFLAGS = "-Wreorder";
};
name = Debug;
@@ -794,12 +794,12 @@
"\"$(SRCROOT)/glslang\"",
"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
);
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MACH_O_TYPE = staticlib;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
+ MACOSX_DEPLOYMENT_TARGET = 10.15;
PRODUCT_NAME = MoltenVKShaderConverter;
SKIP_INSTALL = YES;
- TVOS_DEPLOYMENT_TARGET = 12.0;
+ TVOS_DEPLOYMENT_TARGET = 13.0;
VALIDATE_PRODUCT = YES;
WARNING_CFLAGS = "-Wreorder";
};
diff --git a/Templates/spirv-tools/build.zip b/Templates/spirv-tools/build.zip
index 31889a3c6..79bcd7c60 100644
Binary files a/Templates/spirv-tools/build.zip and b/Templates/spirv-tools/build.zip differ