CVE-2025-43419
Overview
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Ignacio Sanmillan (@ulexec)
Key insight. This is a bulk ANGLE dependency roll, not a surgical patch: no single memory-corruption mechanism is isolable from the diff, and the security-relevant fix (most plausibly a shader-translator correctness bug or a Buffer/VertexArray contents-observer lifetime bug) is buried among large autogenerated enum/table churn.
Patch Details
diff --git a/Source/ThirdParty/ANGLE/.gn b/Source/ThirdParty/ANGLE/.gn
index 01e098edbaa6..aa86edf70a35 100644
--- a/Source/ThirdParty/ANGLE/.gn
+++ b/Source/ThirdParty/ANGLE/.gn
@@ -51,8 +51,7 @@ default_args = {
tests_have_location_tags = false
# Use base level API level 29 support for AHardwareBuffer ANGLE tests.
- android32_ndk_api_level = 29
- android64_ndk_api_level = 29
+ android_ndk_api_level = 29
vma_vulkan_headers_dir = "//third_party/vulkan-headers/src"
}
diff --git a/Source/ThirdParty/ANGLE/ANGLE.plist b/Source/ThirdParty/ANGLE/ANGLE.plist
index 66cf3f562231..774bc8030b7c 100644
--- a/Source/ThirdParty/ANGLE/ANGLE.plist
+++ b/Source/ThirdParty/ANGLE/ANGLE.plist
@@ -6,13 +6,13 @@
<key>OpenSourceProject</key>
<string>ANGLE</string>
<key>OpenSourceVersion</key>
- <string>dcbcee8ab32af9ddc7ae1e91c42d995e5281602c</string>
+ <string>b1359277066648c3577ea8b57cc5e0bccee7b6cc</string>
<key>OpenSourceWebsiteURL</key>
<string>http://code.google.com/p/angleproject/</string>
<key>OpenSourceSCM</key>
- <string>git clone https://chromium.googlesource.com/angle/angle && cd angle && git checkout dcbcee8ab32af9ddc7ae1e91c42d995e5281602c</string>
+ <string>git clone https://chromium.googlesource.com/angle/angle && cd angle && git checkout b1359277066648c3577ea8b57cc5e0bccee7b6cc</string>
<key>OpenSourceImportDate</key>
- <string>2025-05-20</string>
+ <string>2025-06-02</string>
<key>OpenSourceLicense</key>
<string>BSD</string>
<key>OpenSourceLicenseFile</key>
diff --git a/Source/ThirdParty/ANGLE/CONTRIBUTORS b/Source/ThirdParty/ANGLE/CONTRIBUTORS
index 95f1f6d4440c..01ca94a9acc1 100644
--- a/Source/ThirdParty/ANGLE/CONTRIBUTORS
+++ b/Source/ThirdParty/ANGLE/CONTRIBUTORS
@@ -176,6 +176,7 @@ Samsung Electronics, Inc.
Colin Peter
Hyunchang Kim
Hyunseok Ko
+ Hyunwoo Yu
Igor Nazarov
Jaedon Lee
Jaewoo Kim
diff --git a/Source/ThirdParty/ANGLE/DEPS b/Source/ThirdParty/ANGLE/DEPS
index 14dbb1517b26..39b3d71f63f3 100644
--- a/Source/ThirdParty/ANGLE/DEPS
+++ b/Source/ThirdParty/ANGLE/DEPS
@@ -43,13 +43,13 @@ vars = {
'checkout_angle_mesa': False,
# Version of Chromium our Chromium-based DEPS are mirrored from.
- 'chromium_revision': 'a343631b79de034de6c3cfc276dd7aca9051d3a5',
+ 'chromium_revision': '055e258e91fc310ded1c0071f108c08f0e924a53',
# We never want to checkout chromium,
# but need a dummy DEPS entry for the autoroller
'dummy_checkout_chromium': False,
# Current revision of VK-GL-CTS (a.k.a dEQP).
- 'vk_gl_cts_revision': 'c9d2e24d1a6da00165a0b5908ea4ba05c2e5f0b2',
+ 'vk_gl_cts_revision': '7be6d4540af28ed9fd82cf7609f4e0442f44043e',
# Current revision of googletest.
# Note: this dep cannot be auto-rolled b/c of nesting.
@@ -88,7 +88,7 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling catapult
# and whatever else without interference from each other.
- 'catapult_revision': '41104509db3116fd5a5e3af4f8242b59de7adc67',
+ 'catapult_revision': '938fc9953b4159851a52022b4f2a90cddedba2fc',
# the commit queue can handle CLs rolling Fuchsia sdk
# and whatever else without interference from each other.
@@ -133,7 +133,7 @@ vars = {
'reclient_version': 're_client_version:0.178.0.5ee9d3e8-gomaip',
# siso CIPD package version.
- 'siso_version': 'git_revision:3753a55d0911b4ea3dd000263088f60edb8d947b',
+ 'siso_version': 'git_revision:d9393c2115244b6e4a797189055e4a2b6769a64d',
# 'magic' text to tell depot_tools that git submodules should be accepted but
# but parity with DEPS file is expected.
@@ -169,6 +169,7 @@ vars = {
'checkout_angle_restricted_trace_animal_crossing': 'checkout_angle_restricted_traces',
'checkout_angle_restricted_trace_antistress': 'checkout_angle_restricted_traces',
'checkout_angle_restricted_trace_antutu_refinery': 'checkout_angle_restricted_traces',
+ 'checkout_angle_restricted_trace_aquarium': 'checkout_angle_restricted_traces',
'checkout_angle_restricted_trace_arena_of_valor': 'checkout_angle_restricted_traces',
'checkout_angle_restricted_trace_arknights': 'checkout_angle_restricted_traces',
'checkout_angle_restricted_trace_asphalt_8': 'checkout_angle_restricted_traces',
@@ -455,12 +456,12 @@ vars = {
deps = {
'build': {
- 'url': Var('chromium_git') + '/chromium/src/build.git@4523ca62d97737c072422ffa49bc64ed6b650fcf',
+ 'url': Var('chromium_git') + '/chromium/src/build.git@69dc3b19a1c8707994411ae29dcaddf3330965b3',
'condition': 'not build_with_chromium',
},
'buildtools': {
- 'url': Var('chromium_git') + '/chromium/src/buildtools.git@e9b36e9ffb02b268d194c3f82f89952d09d0c714',
+ 'url': Var('chromium_git') + '/chromium/src/buildtools.git@cd169314af80e77a75eb25e2c0df8798f35bc04a',
'condition': 'not build_with_chromium',
},
@@ -473,7 +474,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/linux-${{arch}}',
- 'version': 'git_revision:0c25d1bbde6ef17e1e6d3938011f56a00c02e457',
+ 'version': 'git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b',
}
],
'dep_type': 'cipd',
@@ -484,7 +485,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/mac-${{arch}}',
- 'version': 'git_revision:0c25d1bbde6ef17e1e6d3938011f56a00c02e457',
+ 'version': 'git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b',
}
],
'dep_type': 'cipd',
@@ -506,7 +507,7 @@ deps = {
'packages': [
{
'package': 'gn/gn/windows-amd64',
- 'version': 'git_revision:0c25d1bbde6ef17e1e6d3938011f56a00c02e457',
+ 'version': 'git_revision:ebc8f16ca7b0d36a3e532ee90896f9eb48e5423b',
}
],
'dep_type': 'cipd',
@@ -514,12 +515,12 @@ deps = {
},
'testing': {
- 'url': '{chromium_git}/chromium/src/testing@26a050e9cd2c2c69d85e40345343397e5e7ea0e0',
+ 'url': '{chromium_git}/chromium/src/testing@6a20ae4677a3ee6ed783b576a8586f2566356d22',
'condition': 'not build_with_chromium',
},
'third_party/abseil-cpp': {
- 'url': Var('chromium_git') + '/chromium/src/third_party/abseil-cpp@ec041c739118fb3b4ea96185c1981fbd89ac0b90',
+ 'url': Var('chromium_git') + '/chromium/src/third_party/abseil-cpp@2401283880a451e9ea10787920117fb67695abb4',
'condition': 'not build_with_chromium',
},
@@ -565,7 +566,7 @@ deps = {
'packages': [
{
'package': 'chromium/third_party/android_build_tools/error_prone',
- 'version': 'bd18Z8-1Y85m4C8xYA3z1J_VIhAaE2qRbkrBzn4_200C',
+ 'version': '2jzgic7at7ZxQds7qXCsmkfC4bO7d3qnWU5Q7SFUiJwC',
},
],
'condition': 'checkout_android and not build_with_chromium',
@@ -587,7 +588,7 @@ deps = {
'packages': [
{
'package': 'chromium/third_party/android_build_tools/lint',
- 'version': '7xZFl5M3w3LIJvhKsJYDQoTh5JZ3vr3I_-VWYXiGJC0C',
+ 'version': 'PaYB6553MH9GJfamUZLduJESRbN13Clv2N2beHR6IQAC',
},
],
'condition': 'checkout_android and not build_with_chromium',
@@ -598,7 +599,7 @@ deps = {
'packages': [
{
'package': 'chromium/third_party/android_build_tools/manifest_merger',
- 'version': 'Ym1eWXywKFRvxsgK0yC4bFj9SwZViDqGEPb_w3mAKqMC',
+ 'version': '0L0N3_u2ypIxEEtf0k_l36g_2CykW2BNuZBXm-v5qAUC',
},
],
'condition': 'checkout_android and not build_with_chromium',
@@ -617,7 +618,7 @@ deps = {
},
'third_party/android_deps': {
- 'url': Var('chromium_git') + '/chromium/src/third_party/android_deps@56c2a30762da0f32f799ee5b8af140b1c4a4539a',
+ 'url': Var('chromium_git') + '/chromium/src/third_party/android_deps@4333e5ba900bdefb9cb6e25d60bc35aa6205e95d',
'condition': 'checkout_android and not build_with_chromium',
},
@@ -638,7 +639,7 @@ deps = {
},
'third_party/android_sdk': {
- 'url': Var('chromium_git') + '/chromium/src/third_party/android_sdk@3ad26ca9f48c33ff3d1113c82dd8d54b9a794a72',
+ 'url': Var('chromium_git') + '/chromium/src/third_party/android_sdk@20cf331dc72b447e9178bc10c53069f42cea45bb',
'condition': 'checkout_android and not build_with_chromium',
},
@@ -729,7 +730,7 @@ deps = {
},
'third_party/depot_tools': {
- 'url': Var('chromium_git') + '/chromium/tools/depot_tools.git@f810dae27200e4209bd0cba85bd2266ec0d55312',
Background
Advisory: Apple Security Advisory
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43419 |
| Bugzilla | 293895 |
| Component | WebKit |
| Bug Class | Other |
| Severity | medium |
| Commit | bcb47de34ff759fc… |
| Advisory | Apple Advisory |
Terminology
- ANGLE — The Almost Native Graphics Layer Engine, the library WebKit uses to implement WebGL by translating GL ES calls/shaders to the platform backend (Metal, Vulkan, D3D).
- Dependency roll — A wholesale update of a bundled third-party component to a newer upstream revision, which mixes many unrelated changes so an individual security fix is hard to isolate.
- Shader translator (MSL/SPIR-V) — The ANGLE compiler stage that converts GLSL ES into Metal Shading Language or SPIR-V; bugs here can produce miscompiled shaders with unsafe behavior.
- gl_PerVertex — The built-in interface block carrying gl_Position/gl_PointSize/gl_ClipDistance/gl_CullDistance between shader stages; its members require special built-in qualifier handling.
- Contents observer — ANGLE’s mechanism by which VertexArray/Texture objects are notified when a bound Buffer’s contents change, so dirty state is tracked; stale observer pointers are a UAF risk.
- GPU process — The sandboxed WebKit process that hosts WebGL/ANGLE on modern macOS/iOS, isolating GPU work from WebContent.
Root Cause Analysis
This commit is a bulk roll of the bundled ANGLE dependency (Source/ThirdParty/ANGLE/): angle_commit.h, DEPS, changes.diff and dozens of autogenerated tables are bumped wholesale, and the shown source diff is a mixture of many unrelated upstream changes rather than one isolated security patch. Because the security-relevant change is imported as part of a large dependency update, it is NOT cleanly isolable from the diff, and I will not claim a single definitive corruption mechanism; the following are the security-plausible candidates, explicitly marked as inference. (1) Shader-translator correctness in the Metal backend: EmitMetal.cpp/ProgramPrelude.cpp replace the shared ANGLE_iadd/ANGLE_isub helpers (which were wrongly used for both EOpAdd/EOpSub and their compound-assign forms) with distinct value-returning add/sub and in-place addAssign/subAssign helpers plus dedicated pre/post increment/decrement helpers, all doing arithmetic through unsigned types to avoid signed-integer overflow UB; miscompiling a compound assignment as a by-value expression could corrupt generated MSL and thus GPU-side behavior for crafted WebGL shaders. (2) gl_PerVertex handling: ParseContext.cpp now applies the proper built-in qualifiers (EvqPosition/EvqPointSize/EvqClipDistance/EvqCullDistance) to per-vertex members and tags the block EvqPerVertexIn/Out, CollectVariables.cpp skips per-vertex in/out from variable collection, and TranslatorSPIRV.cpp assigns the reserved input/output PerVertex SPIR-V IDs — mishandling built-in redeclaration is a classic shader-compiler memory-safety area. (3) Reserved-name hardening: Context.cpp now returns -1 from getAttribLocation/getUniformLocation when the name starts with a reserved (gl_) prefix. (4) Buffer contents-observer refactor: Buffer::onContentsChange now takes a Context, asserts that only texture contents-observers remain, and notifies the context of the buffer binding mask, while State.cpp delegates element-array binding to VertexArray::bindElementBuffer — this is the observer/dirty-tracking machinery that has historically been a source of use-after-free/stale-pointer bugs between Buffer, VertexArray and Texture. (5) Depth clamping: Context::clearBufferfv/clearBufferfi now clamp01 the depth value. The violated invariant and precise fix therefore cannot be pinned from this diff alone; the honest conclusion is that a specific ANGLE-upstream fix (most plausibly in the shader translator or the buffer/vertex-array observer path) rode in with the roll and the surrounding table/enum churn is noise.
Attack Path
1. Serve malicious WebGL/WebGL2 content
Get a victim to load a page that creates a WebGL context; ANGLE is the GL implementation backing WebGL in WebKit (GPU process on macOS/iOS).
2. Feed crafted shaders or GL state
Submit GLSL that exercises the changed translator paths — signed-integer compound assignments / increment-decrement (Metal backend) or gl_PerVertex built-in redeclaration (SPIR-V/Metal) — or drive the buffer/vertex-array binding and contents-change paths that were refactored.
3. Reach the vulnerable ANGLE code
Inference: the crafted input drives either a miscompiled shader (bad generated MSL/SPIR-V) or a stale observer/dirty-state interaction in Buffer/VertexArray/Texture.
4. Induce memory corruption
Inference: depending on the true root cause this yields either GPU-side out-of-bounds behavior from a miscompiled shader or a use-after-free/stale-pointer in the ANGLE object graph; the exact primitive is not determinable from this bulk-roll diff.
5. Escalate within the GPU process
Standard exploitation background: groom the GPU-process heap and convert the corruption toward arbitrary R/W and code execution inside the sandboxed GPU process, then chain a separate escape.
Impact Assessment
Because the fix is delivered inside a bulk ANGLE roll, the strength of the primitive cannot be established from this diff with confidence; the CVE is rated medium with ‘memory corruption from crafted web content’. The most plausible reachable surface is WebGL shader compilation (Metal/SPIR-V translator) or the buffer/vertex-array/texture observer machinery, reached from crafted JS+GLSL. On modern WebKit ANGLE/WebGL runs in the sandboxed GPU process, so a resulting OOB or use-after-free would be confined there and would require a further sandbox escape for full compromise; escalation to code execution is conceivable but not demonstrable from this diff. This assessment is partly inference given the roll cannot be reduced to one mechanism.
Audit Directions
Diff the ANGLE roll against upstream
Recover the two ANGLE commit hashes from Source/ThirdParty/ANGLE/WebKit/angle_commit.h before/after and review only the upstream commits between them; grep the roll’s changes.diff for security-tagged commits to find the actual fix rather than the table noise.
Metal/SPIR-V translator arithmetic and built-ins
Audit EmitMetal.cpp/ProgramPrelude.cpp for any remaining operator that still routes compound-assign through a by-value helper, and TranslatorSPIRV.cpp/ParseContext.cpp/CollectVariables.cpp for EvqPerVertexIn/Out handling; grep for ANGLE_iadd/ANGLE_isub, EOpAddAssign, isGLPerVertex, kIdInputPerVertexBlock.
Buffer/VertexArray/Texture contents-observer lifetimes
In libANGLE trace onContentsChange/onDataChanged(Context*), addContentsObserver/removeContentsObserver, bindElementBuffer and mContentsObservers for stale-pointer/UAF risk; grep for kBufferTextureIndex and getBufferBindingMask across renderer backends listed in COVERAGE NOTES (VertexArrayVk/Mtl, TextureVk).
Reserved-name and clamp hardening as fix markers
Treat the new nameStartsWithReservedPrefix guards in getAttribLocation/getUniformLocation and the clamp01 depth guards in clearBufferfv/clearBufferfi as hints to the intended bug class; grep the omitted validationES*.cpp files for missing reserved-prefix or range checks on the same entry points.
Changed Functions
| Function | File | Change | Note |
|---|---|---|---|
GetOperatorString |
Source/ThirdParty/ANGLE/src/compiler/translator/msl/EmitMetal.cpp |
modified | Splits EOpAdd/EOpSub from EOpAddAssign/EOpSubAssign and maps ++/– for signed ints to dedicated ANGLE_*Int helpers, so compound assignment is no longer emitted via a by-value iadd/isub; MSL codegen correctness change (inference: security relevance is shader miscompilation). |
| `ProgramPrelude helpers (addInt/addAssignInt/subInt/subAssignInt/pre | postIncrementInt/pre | postDecrementInt; removed iadd/isub)` | Source/ThirdParty/ANGLE/src/compiler/translator/msl/ProgramPrelude.cpp |
TParseContext::declareVariable / addInterfaceBlock |
Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp |
modified | Sets needsReservedCheck only for user-defined redeclarations, applies EvqPosition/EvqPointSize/EvqClipDistance/EvqCullDistance to gl_PerVertex members, and tags the block EvqPerVertexIn/Out. |
CollectVariablesTraverser::visitDeclaration |
Source/ThirdParty/ANGLE/src/compiler/translator/CollectVariables.cpp |
modified | Adds EvqPerVertexIn/EvqPerVertexOut cases that skip collection so per-vertex blocks are not treated as ordinary varyings. |
TranslatorSPIRV::assignSpirvIds |
Source/ThirdParty/ANGLE/src/compiler/translator/spirv/TranslatorSPIRV.cpp |
modified | Assigns reserved input/output PerVertex SPIR-V IDs for EvqPerVertexIn/Out blocks instead of treating them as generic varyings. |
Buffer::onContentsChange / onDataChanged / bufferDataImpl / bufferSubData / copyBufferSubData |
Source/ThirdParty/ANGLE/src/libANGLE/Buffer.cpp |
modified | onContentsChange/onDataChanged now take a Context*; onContentsChange asserts only texture contents-observers remain and notifies the context of the buffer binding mask (observer/dirty-tracking refactor). |
State::setGenericBufferBinding<ElementArray> |
Source/ThirdParty/ANGLE/src/libANGLE/State.cpp |
modified | Replaces inline observer/ref bookkeeping with a single VertexArray::bindElementBuffer(context, buffer) call, centralizing element-array-buffer binding. |
Context::getAttribLocation / getUniformLocation |
Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp |
modified | Early-return -1 when the queried name starts with a reserved (gl_) prefix; also clearBufferfv/clearBufferfi now clamp01 the depth value and generateSupportedExtensions/error bookkeeping adjusted. |
MakeStaticString |
Source/ThirdParty/ANGLE/src/common/angleutils.cpp |
added | Interns strings in a leaked static std::set so returned const char* stay valid for process lifetime. |
GLenumToString / PackedGLEnums (FromGLenum/ToGLenum QueryType) / g_stringEnumTable |
Source/ThirdParty/ANGLE/src/common/gl_enum_utils_autogen.cpp, Source/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.cpp |
modified | Autogenerated enum/name-table churn (adds many enums, removes CommandsCompleted/GL_LINEAR_MIPMAP_LINEAR entries); table noise from the roll, no direct security mechanism. |
Files Changed
Source Files
Source/ThirdParty/ANGLE/.gnSource/ThirdParty/ANGLE/ANGLE.plistSource/ThirdParty/ANGLE/CONTRIBUTORSSource/ThirdParty/ANGLE/DEPSSource/ThirdParty/ANGLE/GLESv2.cmakeSource/ThirdParty/ANGLE/WATCHLISTSSource/ThirdParty/ANGLE/WebKit/ANGLEShaderProgramVersion.hSource/ThirdParty/ANGLE/WebKit/angle_commit.hSource/ThirdParty/ANGLE/changes.diffSource/ThirdParty/ANGLE/doc/ExtensionSupport.mdSource/ThirdParty/ANGLE/extensions/EGL_ANGLE_device_webgpu.txtSource/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_webgpu.txtSource/ThirdParty/ANGLE/extensions/EGL_ANGLE_webgpu_texture_client_buffer.txtSource/ThirdParty/ANGLE/gni/angle.gniSource/ThirdParty/ANGLE/include/EGL/eglext_angle.hSource/ThirdParty/ANGLE/include/GLES2/gl2ext.hSource/ThirdParty/ANGLE/include/GLES2/gl2ext_angle.hSource/ThirdParty/ANGLE/include/export.hSource/ThirdParty/ANGLE/include/platform/Feature.hSource/ThirdParty/ANGLE/include/platform/autogen/FeaturesVk_autogen.hSource/ThirdParty/ANGLE/include/platform/autogen/FeaturesWgpu_autogen.hSource/ThirdParty/ANGLE/include/platform/gen_features.pySource/ThirdParty/ANGLE/include/platform/vk_features.jsonSource/ThirdParty/ANGLE/include/platform/wgpu_features.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/SPIR-V_helpers.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/WebGPU_format.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/packed_enum.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.jsonSource/ThirdParty/ANGLE/scripts/generate_entry_points.pySource/ThirdParty/ANGLE/scripts/registry_xml.pySource/ThirdParty/ANGLE/scripts/roll_aosp.shSource/ThirdParty/ANGLE/src/android_system_settings/res/layout/fragment.xmlSource/ThirdParty/ANGLE/src/android_system_settings/src/com/android/angle/AndroidManifest.xmlSource/ThirdParty/ANGLE/src/android_system_settings/src/com/android/angle/MainActivity.javaSource/ThirdParty/ANGLE/src/android_system_settings/src/com/android/angle/common/MainFragment.javaSource/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.cppSource/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.hSource/ThirdParty/ANGLE/src/common/angleutils.cppSource/ThirdParty/ANGLE/src/common/angleutils.hSource/ThirdParty/ANGLE/src/common/gl_enum_utils_autogen.cppSource/ThirdParty/ANGLE/src/common/packed_gl_enums.jsonSource/ThirdParty/ANGLE/src/common/system_utils.hSource/ThirdParty/ANGLE/src/common/utilities.cppSource/ThirdParty/ANGLE/src/compiler/translator/CollectVariables.cppSource/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cppSource/ThirdParty/ANGLE/src/compiler/translator/Types.hSource/ThirdParty/ANGLE/src/compiler/translator/msl/EmitMetal.cppSource/ThirdParty/ANGLE/src/compiler/translator/msl/ProgramPrelude.cppSource/ThirdParty/ANGLE/src/compiler/translator/spirv/TranslatorSPIRV.cppSource/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo.hSource/ThirdParty/ANGLE/src/libANGLE/Buffer.cppSource/ThirdParty/ANGLE/src/libANGLE/Buffer.hSource/ThirdParty/ANGLE/src/libANGLE/Caps.cppSource/ThirdParty/ANGLE/src/libANGLE/Caps.hSource/ThirdParty/ANGLE/src/libANGLE/Context.cppSource/ThirdParty/ANGLE/src/libANGLE/Context.hSource/ThirdParty/ANGLE/src/libANGLE/Context.inl.hSource/ThirdParty/ANGLE/src/libANGLE/Context_gles_ext_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.hSource/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cppSource/ThirdParty/ANGLE/src/libANGLE/State.cppSource/ThirdParty/ANGLE/src/libANGLE/Surface.cppSource/ThirdParty/ANGLE/src/libANGLE/Texture.cppSource/ThirdParty/ANGLE/src/libANGLE/Texture.hSource/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cppSource/ThirdParty/ANGLE/src/libANGLE/VertexArray.cppSource/ThirdParty/ANGLE/src/libANGLE/VertexArray.hSource/ThirdParty/ANGLE/src/libANGLE/VertexArray_unittest.cppSource/ThirdParty/ANGLE/src/libANGLE/angletypes.hSource/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_params.cppSource/ThirdParty/ANGLE/src/libANGLE/gles_extensions_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/gles_extensions_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/queryutils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/SurfaceImpl.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/SurfaceImpl.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/VertexArrayImpl.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/SurfaceD3D.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/SurfaceD3D.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Query11.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Query9.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/DispatchTableGL_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/QueryGL.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/QueryGL.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/functionsgl_typedefs.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/gl_bindings_data.jsonSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/null_functions.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/null_functions.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProvokingVertexHelper.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramExecutableVk.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/spv_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/spv_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_renderer.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_renderer.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/BUILD.gnSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/BufferWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ContextWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ContextWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/DeviceWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/DisplayWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/DisplayWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ImageWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ImageWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ProgramExecutableWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ProgramWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/RenderbufferWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/RenderbufferWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/SurfaceWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/SurfaceWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/TextureWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/TextureWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/VertexArrayWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/linux/x11/WindowSurfaceWgpuX11.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/mac/WindowSurfaceWgpuMetalLayer.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_command_buffer.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_command_buffer.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_map.jsonSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_table_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_helpers.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_helpers.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_pipeline_state.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_proc_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_proc_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_sources.gniSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/win32/WindowSurfaceWgpuWin32.cppSource/ThirdParty/ANGLE/src/libANGLE/validationEGL.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES2.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES3.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES31.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES31.hSource/ThirdParty/ANGLE/src/libANGLE/validationESEXT.cppSource/ThirdParty/ANGLE/src/libANGLE/validationESEXT_autogen.hSource/ThirdParty/ANGLE/src/libGLESv2.gniSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_1_0_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_2_0_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_0_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_1_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_2_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.hSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.defSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_no_capture_autogen.defSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.defSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_with_capture_autogen.defSource/ThirdParty/ANGLE/util/autogen/angle_features_autogen.cppSource/ThirdParty/ANGLE/util/autogen/angle_features_autogen.hSource/ThirdParty/ANGLE/util/capture/frame_capture_replay_autogen.cpp
Test Files
Source/ThirdParty/ANGLE/src/tests/BUILD.gnSource/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gniSource/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txtSource/ThirdParty/ANGLE/src/tests/compiler_tests/Parse_test.cppSource/ThirdParty/ANGLE/src/tests/deqp_support/deqp.gniSource/ThirdParty/ANGLE/src/tests/gl_tests/ClearTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/ErrorMessages.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/GLSLUBTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/MultiDrawTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/SyncQueriesTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cppSource/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_perf.pySource/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_traces.jsonSource/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.cppSource/ThirdParty/ANGLE/src/tests/test_utils/angle_test_platform.cppSource/ThirdParty/ANGLE/src/tests/test_utils/angle_test_platform.h