Modified: trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj (279985 => 279986)
--- trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj 2021-07-16 15:32:31 UTC (rev 279985)
+++ trunk/Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj 2021-07-16 16:13:49 UTC (rev 279986)
@@ -838,13 +838,6 @@
FF2D2F5525C8B14A002FB699 /* FixTypeConstructors.h in Headers */ = {isa = PBXBuildFile; fileRef = FF2D2F5225C8B14A002FB699 /* FixTypeConstructors.h */; };
FF582E1626544FC4006DA5B8 /* ProvokingVertexHelper.mm in Sources */ = {isa = PBXBuildFile; fileRef = FF582E1426544FC4006DA5B8 /* ProvokingVertexHelper.mm */; };
FF582E1726544FC4006DA5B8 /* ProvokingVertexHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = FF582E1526544FC4006DA5B8 /* ProvokingVertexHelper.h */; };
- FFDA50CC269F848200AE11E2 /* blit.metal in Sources */ = {isa = PBXBuildFile; fileRef = FF81FEAA25818D6800894E24 /* blit.metal */; };
- FFDA50CD269F848200AE11E2 /* clear.metal in Sources */ = {isa = PBXBuildFile; fileRef = FF81FEB125818D6800894E24 /* clear.metal */; };
- FFDA50CE269F848200AE11E2 /* copy_buffer.metal in Sources */ = {isa = PBXBuildFile; fileRef = FF81FEAF25818D6800894E24 /* copy_buffer.metal */; };
- FFDA50CF269F848200AE11E2 /* gen_indices.metal in Sources */ = {isa = PBXBuildFile; fileRef = FF81FEB325818D6800894E24 /* gen_indices.metal */; };
- FFDA50D0269F848200AE11E2 /* gen_mipmap.metal in Sources */ = {isa = PBXBuildFile; fileRef = FF81FEB225818D6800894E24 /* gen_mipmap.metal */; };
- FFDA50D1269F848200AE11E2 /* rewrite_indices.metal in Sources */ = {isa = PBXBuildFile; fileRef = FF582E1826544FE5006DA5B8 /* rewrite_indices.metal */; };
- FFDA50D2269F848200AE11E2 /* visibility.metal in Sources */ = {isa = PBXBuildFile; fileRef = FF81FEAB25818D6800894E24 /* visibility.metal */; };
/* End PBXBuildFile section */
/* Begin PBXBuildRule section */
@@ -871,13 +864,6 @@
remoteGlobalIDString = 31CDFDF32491819E00486F27;
remoteInfo = "ANGLE (dynamic)";
};
- FFDA50D3269F84A000AE11E2 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = FB39D0701200ED9200088E69 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = FFDA50C4269F845100AE11E2;
- remoteInfo = ANGLEMetalLib;
- };
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -1827,8 +1813,6 @@
FF81FF9A2581A3C200894E24 /* IntermRebuild.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntermRebuild.h; sourceTree = "<group>"; };
FFA0C2C525CB6A7600105306 /* NameEmbeddedUniformStructsMetal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NameEmbeddedUniformStructsMetal.cpp; sourceTree = "<group>"; };
FFA0C2C625CB6A7700105306 /* NameEmbeddedUniformStructsMetal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NameEmbeddedUniformStructsMetal.h; sourceTree = "<group>"; };
- FFDA50D6269F9E5800AE11E2 /* create_mtl_internal_shaders.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = create_mtl_internal_shaders.py; sourceTree = "<group>"; };
- FFE0D91526A0B4E80071ADAE /* AngleMetalLib.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AngleMetalLib.xcconfig; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -2785,7 +2769,6 @@
children = (
31CDFDEE24917F8900486F27 /* ANGLE-dynamic.xcconfig */,
31CDFDEF24917F8900486F27 /* ANGLE-static.xcconfig */,
- FFE0D91526A0B4E80071ADAE /* AngleMetalLib.xcconfig */,
5D7C59C61208C68B001C873E /* Base.xcconfig */,
5D7C59C71208C68B001C873E /* DebugRelease.xcconfig */,
A1B89B89221E003A00EB4CEA /* SDKVariant.xcconfig */,
@@ -3073,7 +3056,6 @@
FF81FEAD25818D6800894E24 /* common.h */,
FF81FEAC25818D6800894E24 /* constants.h */,
FF81FEAF25818D6800894E24 /* copy_buffer.metal */,
- FFDA50D6269F9E5800AE11E2 /* create_mtl_internal_shaders.py */,
FF81FEB025818D6800894E24 /* format_autogen.h */,
FF81FEB325818D6800894E24 /* gen_indices.metal */,
FF81FEB225818D6800894E24 /* gen_mipmap.metal */,
@@ -3588,7 +3570,6 @@
isa = PBXNativeTarget;
buildConfigurationList = 31CDFDF52491819E00486F27 /* Build configuration list for PBXNativeTarget "ANGLE (dynamic)" */;
buildPhases = (
- FFDA50D5269F895400AE11E2 /* Bake Metal Library to NSData */,
31CDFDF02491819E00486F27 /* Headers */,
31CDFDF12491819E00486F27 /* Sources */,
31CDFDF22491819E00486F27 /* Frameworks */,
@@ -3600,7 +3581,6 @@
31A9E9A0249AA04200C7E243 /* PBXBuildRule */,
);
dependencies = (
- FFDA50D4269F84A000AE11E2 /* PBXTargetDependency */,
);
name = "ANGLE (dynamic)";
productName = "ANGLE (dynamic)";
@@ -3607,20 +3587,6 @@
productReference = 31CDFDF42491819E00486F27 /* libANGLE-shared.dylib */;
productType = "com.apple.product-type.library.dynamic";
};
- FFDA50C4269F845100AE11E2 /* ANGLEMetalLib */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = FFDA50CB269F845100AE11E2 /* Build configuration list for PBXNativeTarget "ANGLEMetalLib" */;
- buildPhases = (
- FFDA50C3269F845100AE11E2 /* Sources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = ANGLEMetalLib;
- productName = ANGLEMetalLib;
- productType = "com.apple.product-type.metal-library";
- };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -3638,10 +3604,6 @@
CreatedOnToolsVersion = 12.0;
ProvisioningStyle = Automatic;
};
- FFDA50C4269F845100AE11E2 = {
- CreatedOnToolsVersion = 13.0;
- ProvisioningStyle = Automatic;
- };
};
};
buildConfigurationList = FB39D0731200ED9200088E69 /* Build configuration list for PBXProject "ANGLE" */;
@@ -3658,7 +3620,6 @@
targets = (
31DB794F2491C33300982878 /* ANGLE */,
31CDFDF32491819E00486F27 /* ANGLE (dynamic) */,
- FFDA50C4269F845100AE11E2 /* ANGLEMetalLib */,
);
};
/* End PBXProject section */
@@ -3682,27 +3643,6 @@
shellPath = /bin/sh;
shellScript = "if [ \"${XCODE_VERSION_ACTUAL}\" -ge \"1140\" -a \"${WK_USE_NEW_BUILD_SYSTEM}\" = \"YES\" ]; then\n # In this configuration, post-processing is performed at the same time as copying in the postprocess-header-rule script, so there's no need for this separate step.\n exit 0\nfi\n\nexec \"$SRCROOT/adjust-angle-include-paths.py\"\n";
};
- FFDA50D5269F895400AE11E2 /* Bake Metal Library to NSData */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "$(BUILT_PRODUCTS_DIR)/ANGLEMetalLib.metallib",
- "$(SRCROOT)/src/libANGLE/renderer/metal/shaders/create_mtl_internal_shaders.py",
- );
- name = "Bake Metal Library to NSData";
- outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/mtl_default_shaders_compiled.inc",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "echo python \"${SRCROOT}/src/libANGLE/renderer/metal/shaders/create_mtl_internal_shaders.py\" \"$SCRIPT_INPUT_FILE_0\" \"$SCRIPT_OUTPUT_FILE_0\"\npython \"${SRCROOT}/src/libANGLE/renderer/metal/shaders/create_mtl_internal_shaders.py\" \"$SCRIPT_INPUT_FILE_0\" \"$SCRIPT_OUTPUT_FILE_0\"\n";
- };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -4113,20 +4053,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
- FFDA50C3269F845100AE11E2 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- FFDA50CC269F848200AE11E2 /* blit.metal in Sources */,
- FFDA50CD269F848200AE11E2 /* clear.metal in Sources */,
- FFDA50CE269F848200AE11E2 /* copy_buffer.metal in Sources */,
- FFDA50CF269F848200AE11E2 /* gen_indices.metal in Sources */,
- FFDA50D0269F848200AE11E2 /* gen_mipmap.metal in Sources */,
- FFDA50D1269F848200AE11E2 /* rewrite_indices.metal in Sources */,
- FFDA50D2269F848200AE11E2 /* visibility.metal in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -4135,11 +4061,6 @@
target = 31CDFDF32491819E00486F27 /* ANGLE (dynamic) */;
targetProxy = 31DB79562491C35400982878 /* PBXContainerItemProxy */;
};
- FFDA50D4269F84A000AE11E2 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = FFDA50C4269F845100AE11E2 /* ANGLEMetalLib */;
- targetProxy = FFDA50D3269F84A000AE11E2 /* PBXContainerItemProxy */;
- };
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
@@ -4167,6 +4088,7 @@
31DB79502491C33300982878 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CODE_SIGN_STYLE = Automatic;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
@@ -4174,6 +4096,7 @@
31DB79512491C33300982878 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CODE_SIGN_STYLE = Automatic;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
@@ -4181,6 +4104,7 @@
31DB79522491C33300982878 /* Production */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CODE_SIGN_STYLE = Automatic;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Production;
@@ -4207,27 +4131,6 @@
};
name = Release;
};
- FFDA50C8269F845100AE11E2 /* Debug */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = FFE0D91526A0B4E80071ADAE /* AngleMetalLib.xcconfig */;
- buildSettings = {
- };
- name = Debug;
- };
- FFDA50C9269F845100AE11E2 /* Release */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = FFE0D91526A0B4E80071ADAE /* AngleMetalLib.xcconfig */;
- buildSettings = {
- };
- name = Release;
- };
- FFDA50CA269F845100AE11E2 /* Production */ = {
- isa = XCBuildConfiguration;
- baseConfigurationReference = FFE0D91526A0B4E80071ADAE /* AngleMetalLib.xcconfig */;
- buildSettings = {
- };
- name = Production;
- };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -4261,16 +4164,6 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Production;
};
- FFDA50CB269F845100AE11E2 /* Build configuration list for PBXNativeTarget "ANGLEMetalLib" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- FFDA50C8269F845100AE11E2 /* Debug */,
- FFDA50C9269F845100AE11E2 /* Release */,
- FFDA50CA269F845100AE11E2 /* Production */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Production;
- };
/* End XCConfigurationList section */
};
rootObject = FB39D0701200ED9200088E69 /* Project object */;
Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm (279985 => 279986)
--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm 2021-07-16 15:32:31 UTC (rev 279985)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm 2021-07-16 16:13:49 UTC (rev 279986)
@@ -22,13 +22,8 @@
#include "libANGLE/renderer/metal/SyncMtl.h"
#include "libANGLE/renderer/metal/mtl_common.h"
#include "libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc"
-#include "libANGLE/renderer/metal/mtl_utils.h"
#include "platform/Platform.h"
-#ifdef ANGLE_METAL_XCODE_BUILDS_SHADERS
-#include "mtl_default_shaders_compiled.inc"
-#endif
-
#include "EGL/eglext.h"
#if defined(ANGLE_PLATFORM_MACOS) || defined(ANGLE_PLATFORM_MACCATALYST)
@@ -998,16 +993,23 @@
#ifdef ANGLE_METAL_XCODE_BUILDS_SHADERS
mDefaultShadersAsyncInfo.reset(new DefaultShaderAsyncInfoMtl);
- const uint8_t *compiled_shader_binary;
- size_t compiled_shader_binary_len;
- compiled_shader_binary = gMetalBinaryShaders;
- compiled_shader_binary_len = gMetalBinaryShaders_len;
- mtl::AutoObjCPtr<NSError *> err = nil;
- mtl::AutoObjCPtr<id<MTLLibrary>> mDefaultShaders = mtl::CreateShaderLibraryFromBinary(getMetalDevice(), compiled_shader_binary,
- compiled_shader_binary_len, &err);
- mDefaultShadersAsyncInfo->defaultShaders = std::move(mDefaultShaders.get());
- mDefaultShadersAsyncInfo->defaultShadersCompileError = std::move(err.get());
+ NSString *path = [NSBundle bundleWithIdentifier:@"com.apple.WebKit"].bundlePath;
+ NSError *error = nullptr;
+ mDefaultShadersAsyncInfo->defaultShaders =
+ [getMetalDevice() newDefaultLibraryWithBundle:[NSBundle bundleWithPath:path] error:&error];
+
+ if (error && !mDefaultShadersAsyncInfo->defaultShaders)
+ {
+ ANGLE_MTL_OBJC_SCOPE
+ {
+ ERR() << "Internal error: newDefaultLibraryWithBundle failed. "
+ << error.localizedDescription.UTF8String;
+ }
+ mDefaultShadersAsyncInfo->defaultShadersCompileError = std::move(error);
+ return angle::Result::Stop;
+ }
mDefaultShadersAsyncInfo->compiled = true;
+
#else
mDefaultShadersAsyncInfo.reset(new DefaultShaderAsyncInfoMtl);
Modified: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h (279985 => 279986)
--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h 2021-07-16 15:32:31 UTC (rev 279985)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h 2021-07-16 16:13:49 UTC (rev 279986)
@@ -105,6 +105,7 @@
AutoObjCPtr<id<MTLLibrary>> CreateShaderLibraryFromBinary(id<MTLDevice> metalDevice,
const uint8_t *binarySource,
size_t binarySourceLen,
+ NSDictionary<NSString *, NSObject *> * substitutionDictionary,
AutoObjCPtr<NSError *> *error);
bool SupportsIOSGPUFamily(id<MTLDevice> device, uint8_t iOSFamily);
Deleted: trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/create_mtl_internal_shaders.py (279985 => 279986)
--- trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/create_mtl_internal_shaders.py 2021-07-16 15:32:31 UTC (rev 279985)
+++ trunk/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/create_mtl_internal_shaders.py 2021-07-16 16:13:49 UTC (rev 279986)
@@ -1,79 +0,0 @@
-#!/usr/bin/python
-# Copyright 2021 The ANGLE Project Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# create_mtl_internal_shaders.py:
-# Script to compile a metalLib into NSData, for including the compilded
-# library in the ANGLE dylib.
-
-import os
-import sys
-import json
-from datetime import datetime
-
-sys.path.append('../..')
-
-template_header_boilerplate = """// GENERATED FILE - DO NOT EDIT.
-// Generated by {script_name}
-//
-// Copyright {copyright_year} The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-"""
-
-
-# Convert content of a file to byte array and store in a header file.
-# variable_name: name of C++ variable that will hold the file content as byte array.
-# filename: the file whose content will be converted to C++ byte array.
-# dest_src_file: destination header file that will contain the byte array.
-def append_file_as_byte_array_string(variable_name, filename, dest_src_file):
- string = '// Generated from {0}:\n'.format(filename)
- string += 'constexpr uint8_t {0}[]={{\n'.format(variable_name)
- bytes_ = open(filename, "rb").read()
- for byte in bytes_:
- string += '0x{:02x}'.format(ord(byte)) + ", "
- string += "\n};\n"
- with open(dest_src_file, "a") as out_file:
- out_file.write(string)
-
-
-
-# Compile metal shader.
-# compiled_file: The compiled metallib
-# variable_name: name of C++ variable that will hold the compiled binary data as a C array.
-# additional_flags: additional shader compiler flags
-# src_files: metal source files
-def gen_precompiled_shaders(compiled_file, variable_name, output_file):
- append_file_as_byte_array_string(variable_name,
- compiled_file,
- output_file)
- os.system('echo "constexpr size_t {0}_len=sizeof({0});" >> \"{1}\"'
- .format(variable_name, output_file))
-
-def main():
- input_file = sys.argv[1]
- output_file = sys.argv[2]
- os.chdir(sys.path[0])
-
- boilerplate_code = template_header_boilerplate.format(
- script_name=sys.argv[0], copyright_year=datetime.today().year)
-
- # -------- Compile shaders -----------
- # boiler plate code
- os.system("echo \"{0}\" > \"{1}\"".format(boilerplate_code, output_file))
- os.system(
- 'echo "// Compiled binary for Metal default shaders.\n\n" >> \"{0}\"'.format(output_file)
- )
- os.system('echo "#include <TargetConditionals.h>\n\n" >> \"{0}\"'.format(output_file))
-
- os.system('echo "// clang-format off" >> \"{0}\"'.format(output_file))
-
- gen_precompiled_shaders(input_file, 'gMetalBinaryShaders', output_file)
-
- os.system('echo "// clang-format on" >> \"{0}\"'.format(output_file))
-
-
-if __name__ == '__main__':
- sys.exit(main())