From ad58bca8de09b7bcd78cba26c1f4dcbc5ed0bd30 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 d8ab2892d..5125de806 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