diff --git a/Demos/Cube/Cube.xcodeproj/project.pbxproj b/Demos/Cube/Cube.xcodeproj/project.pbxproj
index 471e762c..1412260b 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 2d28e054..aa354523 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 5c1e6f71..27442c7b 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 06f19371..835f4087 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,6 +112,87 @@ errors, you may need to re-add the *cereal* library to the `MoltenVK` *Xcode* pr
"$(SRCROOT)/../External/cereal/include"
+
+
+Adding the *glslang* 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
+`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:
+
+ $(inherited)
+ "$(SRCROOT)/External/glslang"
+ "$(SRCROOT)/External/glslang/build/include"
+
+2. Repeat *Step 1* for the `glslang-iOS` target within the `ExternalDependencies` *Xcode* project
+
+3. In the *Project Navigator*, remove all *Groups* from under the *Group* named
+ `External/glslang`.
+
+4. Drag the following folders from the `External/glslang` file folder to the `External/glslang`
+ *Group* in the *Project Navigator* panel:
+
+ glslang
+ SPIRV
+
+ 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.
+
+5. In the *Project Navigator* panel, remove the references to the following files and folders:
+
+ External/glslang/glslang/MachineIndependant/glslang.y
+ External/glslang/glslang/OSDependent/Windows
+ External/glslang/glslang/OSDependent/Web
+ External/glslang/glslang/HLSL
+
+
+
+
+Adding the *SPIRV-Tools* Library to the *ExternalDependencies Xcode* Project
+----------------------------------------------------------------------------
+
+The `ExternalDependencies` *Xcode* project is already configured to use the *SPIRV-Tools*
+library. However, after updating the version of *glslang* (which adds *SPIRV-Tools*),
+as described [above](#updating), if you encounter any building errors, you may need to re-add
+the *SPIRV-Tools* library to the `ExternalDependencies` *Xcode* project as follows:
+
+1. In the *Project Navigator* panel, select the `ExternalDependencies` *Xcode* project, then
+ select the `SPIRV-Tools-macOS` target, and open the *Build Settings* tab. Locate the build
+ setting entry **Header Search Paths** (`HEADER_SEARCH_PATHS`) and add the following paths:
+
+ $(inherited)
+ "$(SRCROOT)/External/glslang/External/spirv-tools/"
+ "$(SRCROOT)/External/glslang/External/spirv-tools/include"
+ "$(SRCROOT)/External/glslang/External/spirv-tools/external/spirv-headers/include"
+ "$(SRCROOT)/External/glslang/External/spirv-tools/build"
+
+2. Repeat *Step 1* for the `SPIRV-Tools-iOS` target within the `ExternalDependencies` *Xcode* project
+
+3. In the *Project Navigator*, remove the *Group* named `source` from under the *Group* named
+ `External/SPIRV-Tools`.
+
+4. Drag the `External/glslang/External/spirv-tools/source` file folder to the `External/SPIRV-Tools`
+ group in the *Project Navigator* panel. In the _**Choose options for adding these files**_ dialog
+ that opens, select the _**Create groups**_ option, add the files to *all* of the `SPIRV-Tools-macOS`,
+ `SPIRV-Tools-iOS`, and `SPIRV-Tools-tvOS` targets, and click the ***Finish*** button.
+
+5. Remove the following *Groups* from under the *Group* named `External/SPIRV-Tools/source`:
+ - `fuzz`
+ - `wasm`
+
+6. In the `Scripts` folder, run `./packagePregenSpirvToolsHeaders`, which will fetch and build the
+ full `SPIRV-Tools` library and will update `Templates/spirv-tools/build.zip` from the `*.h` and
+ `*.inc` files in `External/glslang/External/spirv-tools/build`. Test by running `./fetchDependencies --all`
+ and a **MoltenVK** build.
+
+
+
Adding the *SPIRV-Cross* Library to the *ExternalDependencies Xcode* Project
----------------------------------------------------------------------------
@@ -174,84 +261,3 @@ following steps:
-
-Adding the *SPIRV-Tools* Library to the *ExternalDependencies Xcode* Project
-----------------------------------------------------------------------------
-
-The `ExternalDependencies` *Xcode* project is already configured to use the *SPIRV-Tools*
-library. However, after updating the version of *glslang* (which adds *SPIRV-Tools*),
-as described [above](#updating), if you encounter any building errors, you may need to re-add
-the *SPIRV-Tools* library to the `ExternalDependencies` *Xcode* project as follows:
-
-1. In the *Project Navigator* panel, select the `ExternalDependencies` *Xcode* project, then
- select the `SPIRV-Tools-macOS` target, and open the *Build Settings* tab. Locate the build
- setting entry **Header Search Paths** (`HEADER_SEARCH_PATHS`) and add the following paths:
-
- $(inherited)
- "$(SRCROOT)/External/glslang/External/spirv-tools/"
- "$(SRCROOT)/External/glslang/External/spirv-tools/include"
- "$(SRCROOT)/External/glslang/External/spirv-tools/external/spirv-headers/include"
- "$(SRCROOT)/External/glslang/External/spirv-tools/build"
-
-2. Repeat *Step 1* for the `SPIRV-Tools-iOS` target within the `ExternalDependencies` *Xcode* project
-
-3. In the *Project Navigator*, remove the *Group* named `source` from under the *Group* named
- `External/SPIRV-Tools`.
-
-4. Drag the `External/glslang/External/spirv-tools/source` file folder to the `External/SPIRV-Tools`
- group in the *Project Navigator* panel. In the _**Choose options for adding these files**_ dialog
- that opens, select the _**Create groups**_ option, add the files to *all* of the `SPIRV-Tools-macOS`,
- `SPIRV-Tools-iOS`, and `SPIRV-Tools-tvOS` targets, and click the ***Finish*** button.
-
-5. Remove the following *Groups* from under the *Group* named `External/SPIRV-Tools/source`:
- - `fuzz`
- - `wasm`
-
-6. In the `Scripts` folder, run `./packagePregenSpirvToolsHeaders`, which will fetch and build the
- full `SPIRV-Tools` library and will update `Templates/spirv-tools/build.zip` from the `*.h` and
- `*.inc` files in `External/glslang/External/spirv-tools/build`. Test by running `./fetchDependencies --all`
- and a **MoltenVK** build.
-
-
-
-
-Adding the *glslang* 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
-`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:
-
- $(inherited)
- "$(SRCROOT)/External/glslang"
- "$(SRCROOT)/External/glslang/build/include"
-
-2. Repeat *Step 1* for the `glslang-iOS` target within the `ExternalDependencies` *Xcode* project
-
-3. In the *Project Navigator*, remove all *Groups* from under the *Group* named
- `External/glslang`.
-
-4. Drag the following folders from the `External/glslang` file folder to the `External/glslang`
- *Group* in the *Project Navigator* panel:
-
- glslang
- SPIRV
-
- 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.
-
-5. In the *Project Navigator* panel, remove the references to the following files and folders:
-
- External/glslang/glslang/MachineIndependant/glslang.y
- External/glslang/glslang/OSDependent/Windows
- External/glslang/glslang/OSDependent/Web
- External/glslang/glslang/HLSL
-
-
-
-
diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision
index dcb1b01e..33caece3 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 13f22dcc..f4dd505e 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 afc52456..23f918a4 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 3a663ab4..baa6090f 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 e4f9fcd3..c361a845 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 7bc97d58..a4965cb1 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 0d2d9ae9..93f8b47b 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 cb223171..0818adf1 100644
--- a/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
+++ b/MoltenVK/MoltenVK/Commands/MVKCmdPipeline.mm
@@ -152,10 +152,6 @@ void MVKCmdPipelineBarrier::encode(MVKCommandEncoder* cmdEncoder) {
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 61a441de..c3960f47 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm
@@ -2152,11 +2152,11 @@ void MVKPhysicalDevice::initMetalFeatures() {
// 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 5227ff09..677398e4 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 31889a3c..79bcd7c6 100644
Binary files a/Templates/spirv-tools/build.zip and b/Templates/spirv-tools/build.zip differ