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:
parent
10400cdaf0
commit
d61cefb530
@ -415,7 +415,7 @@
|
|||||||
MARKETING_VERSION = 1;
|
MARKETING_VERSION = 1;
|
||||||
PRODUCT_NAME = Cube;
|
PRODUCT_NAME = Cube;
|
||||||
SDKROOT = appletvos;
|
SDKROOT = appletvos;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
@ -438,7 +438,7 @@
|
|||||||
MARKETING_VERSION = 1;
|
MARKETING_VERSION = 1;
|
||||||
PRODUCT_NAME = Cube;
|
PRODUCT_NAME = Cube;
|
||||||
SDKROOT = appletvos;
|
SDKROOT = appletvos;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
};
|
};
|
||||||
@ -462,7 +462,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
"@executable_path/../Frameworks/MoltenVK.framework",
|
"@executable_path/../Frameworks/MoltenVK.framework",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
PRODUCT_NAME = Cube;
|
PRODUCT_NAME = Cube;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
@ -489,7 +489,7 @@
|
|||||||
"@executable_path/../Frameworks",
|
"@executable_path/../Frameworks",
|
||||||
"@executable_path/../Frameworks/MoltenVK.framework",
|
"@executable_path/../Frameworks/MoltenVK.framework",
|
||||||
);
|
);
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.14;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
PRODUCT_NAME = Cube;
|
PRODUCT_NAME = Cube;
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
@ -511,8 +511,8 @@
|
|||||||
MVK_SAMP_CUBE,
|
MVK_SAMP_CUBE,
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
|
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
|
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 15.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/Frameworks/MoltenVK.framework",
|
"@executable_path/Frameworks/MoltenVK.framework",
|
||||||
@ -541,8 +541,8 @@
|
|||||||
MVK_SAMP_CUBE,
|
MVK_SAMP_CUBE,
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
|
INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
|
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 15.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
"@executable_path/Frameworks/MoltenVK.framework",
|
"@executable_path/Frameworks/MoltenVK.framework",
|
||||||
|
@ -16,8 +16,10 @@ Copyright (c) 2015-2024 [The Brenwill Workshop Ltd.](http://www.brenwill.com)
|
|||||||
MoltenVK 1.2.8
|
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`.
|
- 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`.
|
- Static _XCFramework_ now available in `Package/Latest/MoltenVK/static/MoltenVK.xcframework`.
|
||||||
- Dynamic _XCFramework_ now available in `Package/Latest/MoltenVK/dynamic/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.
|
- `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.
|
- `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.
|
- _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 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.
|
- Ensure buffers available for buffer addresses in push constants.
|
||||||
- Don't update `currentExtent` of headless surface when swapchain attached.
|
- 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.
|
- `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.
|
- The _Cube_ demo is now based on _Volk_, with dynamic library linking, and dynamic function pointer calls.
|
||||||
- Update copyright notices to year 2024.
|
- Update copyright notices to year 2024.
|
||||||
- Update dependency libraries to match _Vulkan SDK 1.3.275_.
|
- 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:
|
- Update to latest SPIRV-Cross:
|
||||||
- MSL: Fix regression error in argument buffer runtime arrays.
|
- MSL: Fix regression error in argument buffer runtime arrays.
|
||||||
- MSL: Work around broken cube texture gradients on Apple Silicon.
|
- MSL: Work around broken cube texture gradients on Apple Silicon.
|
||||||
|
@ -7174,11 +7174,11 @@
|
|||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_PARAMETER = YES;
|
GCC_WARN_UNUSED_PARAMETER = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = NO;
|
GCC_WARN_UNUSED_VARIABLE = NO;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MACH_O_TYPE = staticlib;
|
MACH_O_TYPE = staticlib;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
@ -7224,11 +7224,11 @@
|
|||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_PARAMETER = YES;
|
GCC_WARN_UNUSED_PARAMETER = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = NO;
|
GCC_WARN_UNUSED_VARIABLE = NO;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MACH_O_TYPE = staticlib;
|
MACH_O_TYPE = staticlib;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
name = Release;
|
name = Release;
|
||||||
|
@ -18,9 +18,9 @@ Table of Contents
|
|||||||
- [Fetching and Building External Libraries](#fetching)
|
- [Fetching and Building External Libraries](#fetching)
|
||||||
- [Updating External Library Versions](#updating)
|
- [Updating External Library Versions](#updating)
|
||||||
- [Adding the *cereal* Library to the *MoltenVK Xcode* Project](#add_cereal)
|
- [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 *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:
|
**MoltenVK** uses technology from the following external open-source libraries:
|
||||||
|
|
||||||
- [*cereal*](https://github.com/USCiLab/cereal)
|
- [*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)
|
- [*glslang*](https://github.com/KhronosGroup/glslang)
|
||||||
- [*SPIRV-Tools*](https://github.com/KhronosGroup/SPIRV-Tools)
|
- [*SPIRV-Tools*](https://github.com/KhronosGroup/SPIRV-Tools)
|
||||||
- [*SPIRV-Headers*](https://github.com/KhronosGroup/SPIRV-Headers)
|
- [*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)
|
- [*Vulkan-Tools*](https://github.com/KhronosGroup/Vulkan-Tools)
|
||||||
|
|
||||||
These external open-source libraries are maintained in the `External` directory.
|
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
|
- **_cereal_**: a GitHub repository commit identifier found in the
|
||||||
`ExternalRevisions/cereal_repo_revision` file.
|
`ExternalRevisions/cereal_repo_revision` file.
|
||||||
|
|
||||||
- **_Vulkan-Headers_**: a GitHub repository commit identifier found in the
|
- **_glslang_**: a GitHub repository commit identifier found
|
||||||
`ExternalRevisions/Vulkan-Headers_repo_revision` file.
|
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
|
- **_SPIRV-Cross_**: a GitHub repository commit identifier found in the
|
||||||
`ExternalRevisions/SPIRV-Cross_repo_revision` file.
|
`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
|
- **_Vulkan-Tools_**: a GitHub repository commit identifier found in the
|
||||||
`ExternalRevisions/Vulkan-Tools_repo_revision` file.
|
`ExternalRevisions/Vulkan-Tools_repo_revision` file.
|
||||||
|
|
||||||
You can update which versions of the *cereal*, *Vulkan-Headers*, *SPIRV-Cross*,
|
You can update which versions of the external libraries are retrieved by changing
|
||||||
*glslang*, *Vulkan-Tools*, or *VulkanSamples* libraries are retrieved by changing
|
|
||||||
the value held in the corresponding `*_repo_revision` file listed above.
|
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.
|
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
|
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
|
>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.
|
>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>
|
<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"
|
"$(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>
|
<a name="add_spirv-cross"></a>
|
||||||
Adding the *SPIRV-Cross* Library to the *ExternalDependencies Xcode* Project
|
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
64f64c837a8ba7e32e91cebcc6c796e9b45ab186
|
de0e72a0db21d1a12eb37cbfd15199b3e66fc9d9
|
||||||
|
@ -1 +1 @@
|
|||||||
fdf78c22c3e66a3c7ff62d8dcdcb5fcad023bec7
|
01986ac85fa2e5c70df09aeae9c907e27c5d50b2
|
||||||
|
@ -1 +1 @@
|
|||||||
217e93c664ec6704ec2d8c36fa116c1a4a1e2d40
|
577baa05033cf1d9236b3d078ca4b3269ed87a2b
|
||||||
|
@ -1 +1 @@
|
|||||||
2c0a644db855f40f100f9f39e5a8a8dfa2b0014d
|
da49add44591bee19975e4668e418591effd8240
|
||||||
|
@ -1 +1 @@
|
|||||||
a91631b260cba3f22858d6c6827511e636c2458a
|
ee2f5d09eaf8f4e8d0d598bd2172fce290d4ca60
|
||||||
|
@ -2607,17 +2607,15 @@
|
|||||||
"\"$(SRCROOT)/../External/cereal/include\"",
|
"\"$(SRCROOT)/../External/cereal/include\"",
|
||||||
"\"${BUILT_PRODUCTS_DIR}\"",
|
"\"${BUILT_PRODUCTS_DIR}\"",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
MARKETING_VERSION = "${CURRENT_PROJECT_VERSION}";
|
MARKETING_VERSION = "${CURRENT_PROJECT_VERSION}";
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
MVK_SKIP_DYLIB = "";
|
|
||||||
"MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES;
|
|
||||||
PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a";
|
PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.moltenvk.framework;
|
PRODUCT_BUNDLE_IDENTIFIER = com.moltenvk.framework;
|
||||||
PRODUCT_NAME = MoltenVK;
|
PRODUCT_NAME = MoltenVK;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
WARNING_CFLAGS = "-Wreorder";
|
WARNING_CFLAGS = "-Wreorder";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -2682,17 +2680,15 @@
|
|||||||
"\"$(SRCROOT)/../External/cereal/include\"",
|
"\"$(SRCROOT)/../External/cereal/include\"",
|
||||||
"\"${BUILT_PRODUCTS_DIR}\"",
|
"\"${BUILT_PRODUCTS_DIR}\"",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
MARKETING_VERSION = "${CURRENT_PROJECT_VERSION}";
|
MARKETING_VERSION = "${CURRENT_PROJECT_VERSION}";
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
MVK_SKIP_DYLIB = "";
|
|
||||||
"MVK_SKIP_DYLIB[sdk=appletvsimulator*]" = YES;
|
|
||||||
PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a";
|
PRELINK_LIBS = "${CONFIGURATION_BUILD_DIR}/libMoltenVKShaderConverter.a";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.moltenvk.framework;
|
PRODUCT_BUNDLE_IDENTIFIER = com.moltenvk.framework;
|
||||||
PRODUCT_NAME = MoltenVK;
|
PRODUCT_NAME = MoltenVK;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
WARNING_CFLAGS = "-Wreorder";
|
WARNING_CFLAGS = "-Wreorder";
|
||||||
};
|
};
|
||||||
|
@ -349,7 +349,7 @@ typedef struct {
|
|||||||
VkBool32 simdPermute; /**< If true, SIMD-group permutation functions (vote, ballot, shuffle) are supported in shaders. */
|
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. */
|
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. */
|
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 tileBasedDeferredRendering; /**< If true, this device uses tile-based deferred rendering. */
|
||||||
VkBool32 argumentBuffers; /**< If true, Metal argument buffers are supported. */
|
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. */
|
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. */
|
||||||
|
@ -152,10 +152,6 @@ void MVKCmdPipelineBarrier<N>::encode(MVKCommandEncoder* cmdEncoder) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (cmdEncoder->getDevice()->_pMetalFeatures->textureBarriers) {
|
|
||||||
#if !MVK_MACCAT
|
|
||||||
if (coversTextures()) { [cmdEncoder->_mtlRenderEncoder textureBarrier]; }
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2152,11 +2152,11 @@ void MVKPhysicalDevice::initMetalFeatures() {
|
|||||||
|
|
||||||
// Don't use barriers in render passes on Apple GPUs. Apple GPUs don't support them,
|
// 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.
|
// 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 ( !supportsMTLGPUFamily(Apple1) ) {
|
||||||
if (supportsMTLFeatureSet(macOS_GPUFamily1_v4)) {
|
if (supportsMTLFeatureSet(macOS_GPUFamily1_v4)) {
|
||||||
_metalFeatures.memoryBarriers = true;
|
_metalFeatures.memoryBarriers = true;
|
||||||
}
|
}
|
||||||
_metalFeatures.textureBarriers = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -733,12 +733,12 @@
|
|||||||
"\"$(SRCROOT)/glslang\"",
|
"\"$(SRCROOT)/glslang\"",
|
||||||
"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
|
"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MACH_O_TYPE = staticlib;
|
MACH_O_TYPE = staticlib;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
PRODUCT_NAME = MoltenVKShaderConverter;
|
PRODUCT_NAME = MoltenVKShaderConverter;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
WARNING_CFLAGS = "-Wreorder";
|
WARNING_CFLAGS = "-Wreorder";
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@ -794,12 +794,12 @@
|
|||||||
"\"$(SRCROOT)/glslang\"",
|
"\"$(SRCROOT)/glslang\"",
|
||||||
"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
|
"\"$(SRCROOT)/glslang/External/spirv-tools/include\"",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
MACH_O_TYPE = staticlib;
|
MACH_O_TYPE = staticlib;
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.13;
|
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||||
PRODUCT_NAME = MoltenVKShaderConverter;
|
PRODUCT_NAME = MoltenVKShaderConverter;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TVOS_DEPLOYMENT_TARGET = 12.0;
|
TVOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
WARNING_CFLAGS = "-Wreorder";
|
WARNING_CFLAGS = "-Wreorder";
|
||||||
};
|
};
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user