Update dependency libraries to match Vulkan SDK 1.3.280.

- Remove support for deprecated -[MTLRenderCommandEncoder textureBarrier]
  and deprecate MVKPhysicalDeviceMetalFeatures::textureBarriers.
- Update minimum macOS deployment target to 10.15.
- Update minimum iOS/tvOS deployment target to 13.0.
- Update Whats_New.md document.
This commit is contained in:
Bill Hollings 2024-03-12 11:49:11 -04:00
parent 10400cdaf0
commit d61cefb530
15 changed files with 168 additions and 142 deletions

View File

@ -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",

View File

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

View File

@ -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;

View File

@ -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.
<a name="add_cereal"></a>
@ -106,6 +112,87 @@ errors, you may need to re-add the *cereal* library to the `MoltenVK` *Xcode* pr
"$(SRCROOT)/../External/cereal/include"
<a name="add_glslang"></a>
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
<a name="add_spirv-tools"></a>
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.
<a name="add_spirv-cross"></a>
Adding the *SPIRV-Cross* Library to the *ExternalDependencies Xcode* Project
----------------------------------------------------------------------------
@ -174,84 +261,3 @@ following steps:
<a name="add_spirv-tools"></a>
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.
<a name="add_glslang"></a>
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

View File

@ -1 +1 @@
64f64c837a8ba7e32e91cebcc6c796e9b45ab186
de0e72a0db21d1a12eb37cbfd15199b3e66fc9d9

View File

@ -1 +1 @@
fdf78c22c3e66a3c7ff62d8dcdcb5fcad023bec7
01986ac85fa2e5c70df09aeae9c907e27c5d50b2

View File

@ -1 +1 @@
217e93c664ec6704ec2d8c36fa116c1a4a1e2d40
577baa05033cf1d9236b3d078ca4b3269ed87a2b

View File

@ -1 +1 @@
2c0a644db855f40f100f9f39e5a8a8dfa2b0014d
da49add44591bee19975e4668e418591effd8240

View File

@ -1 +1 @@
a91631b260cba3f22858d6c6827511e636c2458a
ee2f5d09eaf8f4e8d0d598bd2172fce290d4ca60

View File

@ -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";
};

View File

@ -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. */

View File

@ -152,10 +152,6 @@ void MVKCmdPipelineBarrier<N>::encode(MVKCommandEncoder* cmdEncoder) {
break;
}
}
} else if (cmdEncoder->getDevice()->_pMetalFeatures->textureBarriers) {
#if !MVK_MACCAT
if (coversTextures()) { [cmdEncoder->_mtlRenderEncoder textureBarrier]; }
#endif
}
#endif

View File

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

View File

@ -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";
};

Binary file not shown.