From 341a24dba92e0eb5d6d1d47904033cda4e203678 Mon Sep 17 00:00:00 2001 From: fgnm Date: Sun, 23 Aug 2026 12:44:43 +0200 Subject: [PATCH 1/5] update angle --- angle | 2 +- angle_metal_shader_prebuild.patch | 14 +++++++------- depot_tools | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/angle b/angle index 5967afe..392ccfa 160000 --- a/angle +++ b/angle @@ -1 +1 @@ -Subproject commit 5967afe706996483ab87725435479754ccd72271 +Subproject commit 392ccfac4cdbaa282d50d6db2fba742c6b91fb55 diff --git a/angle_metal_shader_prebuild.patch b/angle_metal_shader_prebuild.patch index 26d2a3c..1262e04 100644 --- a/angle_metal_shader_prebuild.patch +++ b/angle_metal_shader_prebuild.patch @@ -2,21 +2,21 @@ diff --git a/src/libANGLE/renderer/metal/metal_backend.gni b/src/libANGLE/render index d3a8a1d6e..6d3ebd624 100644 --- a/src/libANGLE/renderer/metal/metal_backend.gni +++ b/src/libANGLE/renderer/metal/metal_backend.gni -@@ -92,8 +92,7 @@ metal_backend_sources = [ - # We can build the ANGLE internal shaders at build-time if we have access to the Mac SDK in the "build" dir. - # Building internal shaders for iOS is not supported. The Chromium Mac SDK does not have all the required files. - # This is also an issue when cross-compiling for mac. +@@ -91,8 +91,7 @@ metal_backend_sources = [ + # Mac SDK in the "build" dir. Building internal shaders for iOS is not + # supported. The Chromium Mac SDK does not have all the required files. This is + # also an issue when cross-compiling for mac. -metal_internal_shader_compilation_supported = - angle_has_build && !is_ios && target_os == host_os +metal_internal_shader_compilation_supported = true - + metal_internal_shaders_header = "$root_gen_dir/angle/mtl_internal_shaders_metallib.h" diff --git a/src/libANGLE/renderer/metal/BUILD.gn b/src/libANGLE/renderer/metal/BUILD.gn index 96e9ee842..60ce22d8a 100644 --- a/src/libANGLE/renderer/metal/BUILD.gn +++ b/src/libANGLE/renderer/metal/BUILD.gn -@@ -50,10 +50,12 @@ if (metal_internal_shader_compilation_supported) { +@@ -86,10 +86,12 @@ if (metal_internal_shader_compilation_supported) { "-mmacosx-version-min=10.14", ] } else if (is_ios) { @@ -32,4 +32,4 @@ index 96e9ee842..60ce22d8a 100644 + } } } - + diff --git a/depot_tools b/depot_tools index 39ca85a..9f4b1bd 160000 --- a/depot_tools +++ b/depot_tools @@ -1 +1 @@ -Subproject commit 39ca85acf5430c7d5f18622453cf3018584cee76 +Subproject commit 9f4b1bd59d29f5b9f4acd37733bd10fab3641204 From 57906a2af2c35bf96588f26cc60f6f153ec5c0dc Mon Sep 17 00:00:00 2001 From: fgnm Date: Sun, 23 Aug 2026 12:48:27 +0200 Subject: [PATCH 2/5] add readme --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..97ccbd8 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# MetalANGLEKit + +OpenGL ES to Metal for iOS \ No newline at end of file From 201bb4ff8a39ea091fd868cdd1228f5463a7dadd Mon Sep 17 00:00:00 2001 From: fgnm Date: Sun, 23 Aug 2026 14:57:10 +0200 Subject: [PATCH 3/5] lower es3 requirements to support again Apple3 --- angle_metal_apple3_es3.patch | 12 ++++++++++++ setup-angle.sh | 1 + 2 files changed, 13 insertions(+) create mode 100644 angle_metal_apple3_es3.patch diff --git a/angle_metal_apple3_es3.patch b/angle_metal_apple3_es3.patch new file mode 100644 index 0000000..7b1752f --- /dev/null +++ b/angle_metal_apple3_es3.patch @@ -0,0 +1,12 @@ +diff --git a/src/libANGLE/renderer/metal/DisplayMtl.mm b/src/libANGLE/renderer/metal/DisplayMtl.mm +--- a/src/libANGLE/renderer/metal/DisplayMtl.mm ++++ b/src/libANGLE/renderer/metal/DisplayMtl.mm +@@ -435,7 +435,7 @@ gl::Version DisplayMtl::getMaxSupportedESVersion() const + // FIXME: None of the feature conditions are checked for simulator support. + return gl::Version(3, 0); + #else +- if (supportsEitherGPUFamily(4, 1)) ++ if (supportsEitherGPUFamily(3, 1)) + { + return mtl::kMaxSupportedGLVersion; + } diff --git a/setup-angle.sh b/setup-angle.sh index a54e3ae..3cd758f 100755 --- a/setup-angle.sh +++ b/setup-angle.sh @@ -33,6 +33,7 @@ apply_git_patch ../angle_feature_util_metal_check.patch apply_git_patch ../angle_disable_posix_handler.patch apply_git_patch ../angle_metal_shader_prebuild.patch apply_git_patch ../angle_metal_blit_flush_hack.patch +apply_git_patch ../angle_metal_apple3_es3.patch gn gen out/Debug-iphonesimulator_arm64 --args="is_debug=true enable_dsyms=true target_os=\"ios\" target_cpu=\"arm64\" ios_enable_code_signing=false angle_enable_metal=true angle_enable_gl=false angle_enable_null=false angle_enable_wgpu=false ios_deployment_target=\"11.0\" angle_build_all=false target_environment=\"simulator\"" gn gen out/Debug-iphonesimulator_x86_64 --args="is_debug=true enable_dsyms=true target_os=\"ios\" target_cpu=\"x64\" ios_enable_code_signing=false angle_enable_metal=true angle_enable_gl=false angle_enable_null=false angle_enable_wgpu=false ios_deployment_target=\"11.0\" angle_build_all=false target_environment=\"simulator\"" From 395eb5e4da343ed3ae178d74907498ea8350a52d Mon Sep 17 00:00:00 2001 From: fgnm Date: Sun, 23 Aug 2026 17:44:23 +0200 Subject: [PATCH 4/5] remove blit flush patch --- setup-angle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup-angle.sh b/setup-angle.sh index 3cd758f..79c0c85 100755 --- a/setup-angle.sh +++ b/setup-angle.sh @@ -32,7 +32,7 @@ apply_git_patch ../angle_feature_util_fix.patch apply_git_patch ../angle_feature_util_metal_check.patch apply_git_patch ../angle_disable_posix_handler.patch apply_git_patch ../angle_metal_shader_prebuild.patch -apply_git_patch ../angle_metal_blit_flush_hack.patch +#apply_git_patch ../angle_metal_blit_flush_hack.patch apply_git_patch ../angle_metal_apple3_es3.patch gn gen out/Debug-iphonesimulator_arm64 --args="is_debug=true enable_dsyms=true target_os=\"ios\" target_cpu=\"arm64\" ios_enable_code_signing=false angle_enable_metal=true angle_enable_gl=false angle_enable_null=false angle_enable_wgpu=false ios_deployment_target=\"11.0\" angle_build_all=false target_environment=\"simulator\"" From 6ee7dfd4e442b772e630b74a698d14c6c3b508b3 Mon Sep 17 00:00:00 2001 From: fgnm Date: Sun, 23 Aug 2026 18:39:24 +0200 Subject: [PATCH 5/5] restore blit flush patch --- setup-angle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup-angle.sh b/setup-angle.sh index 79c0c85..3cd758f 100755 --- a/setup-angle.sh +++ b/setup-angle.sh @@ -32,7 +32,7 @@ apply_git_patch ../angle_feature_util_fix.patch apply_git_patch ../angle_feature_util_metal_check.patch apply_git_patch ../angle_disable_posix_handler.patch apply_git_patch ../angle_metal_shader_prebuild.patch -#apply_git_patch ../angle_metal_blit_flush_hack.patch +apply_git_patch ../angle_metal_blit_flush_hack.patch apply_git_patch ../angle_metal_apple3_es3.patch gn gen out/Debug-iphonesimulator_arm64 --args="is_debug=true enable_dsyms=true target_os=\"ios\" target_cpu=\"arm64\" ios_enable_code_signing=false angle_enable_metal=true angle_enable_gl=false angle_enable_null=false angle_enable_wgpu=false ios_deployment_target=\"11.0\" angle_build_all=false target_environment=\"simulator\""