From fa417326ae4ddb95ced0ce30b6585e3735f50da5 Mon Sep 17 00:00:00 2001 From: Jamie Nicol Date: Wed, 27 May 2026 15:48:47 +0100 Subject: [PATCH] Disable Metal internal shader compilation This disables building ANGLE's internal shaders at build-time. We cannot currently support this in Firefox for a few reasons: 1) Firefox's vendored fork of the chromium build repo does not contain the required xcode toolchains, meaning the generated moz.build files will attempt to execute a `metallib` binary that does not exist. 2) We could alternatively attempt to configure gn_processor use the system xcode, but this would require developers to have the Metal toolchain installed in order to build Firefox. 3) This results in a chain of GeneratedFile declarations, each one generating a file that is used as an input to the next, spread across several different moz.build files. Mozbuild does not currently handle the dependencies between GeneratedFiles located separate moz.build files. So for now we disable the compilation of ANGLE's internal shaders at build time. They will be compiled at run time instead. --- src/libANGLE/renderer/metal/metal_backend.gni | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libANGLE/renderer/metal/metal_backend.gni b/src/libANGLE/renderer/metal/metal_backend.gni index d8ab289..5125de8 100644 --- a/src/libANGLE/renderer/metal/metal_backend.gni +++ b/src/libANGLE/renderer/metal/metal_backend.gni @@ -102,7 +102,7 @@ declare_args() { # precompiling the internal shaders anyway, which enables prebuilt internal # shaders for iOS as well. metal_internal_shader_compilation_supported = - angle_has_build && + false && angle_has_build && (angle_metal_toolchain_dir != "" || (!is_ios && target_os == host_os)) metal_internal_shaders_header = -- 2.43.0