)]}'
{
  "commit": "318948133839dcf445f6b39854538f776e3302b3",
  "tree": "8e72baa894d83c1e26bf067014abe10dc4240f6f",
  "parents": [
    "20ba9991499b808cf6d3d36b888088591fc0989c"
  ],
  "author": {
    "name": "Ken Russell",
    "email": "kbr@chromium.org",
    "time": "Fri Jul 17 15:24:36 2026 -0700"
  },
  "committer": {
    "name": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Jul 17 17:46:18 2026 -0700"
  },
  "message": "Reland \"GL: Limit declared vertex output varying components\"\n\nThis reverts commit 3cf1a6c74785246ed0c29f58816632e05d7d6616.\n\nAdd a workaround which, when enabled, tracks the number of output\ncomponents from the vertex shader and fails the compile if there\u0027s an\nattempt to exceed a specific limit (1024).\n\nRelative to the original commit, apply a much higher compile time\nlimit which is unlikely to be reached by any test or real-world\napplication, and apply it to all context types, not just WebGL\u0027s.\n\nApply this workaround on Imagination\u0027s PowerVR OpenGL ES drivers to\nwork around a bug in the driver\u0027s shader compiler.\n\nCo-authored with Gemini.\n\nTest: angle_end2end_tests \\\n  --gtest_filter\u003dGLSLValidationTest_ES3_LimitOutputVaryings.\\\n  TooManyDeclaredVertexOutputComponents\nTAG\u003dagy\nCONV\u003d8ed05bff-eb25-4de9-92b8-d097e4c0abae\n\nBug: chromium:529991907\nChange-Id: I79d0bd117d6e0d6412011d361183484f088243e6\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/8114814\nCommit-Queue: Kenneth Russell \u003ckbr@chromium.org\u003e\nReviewed-by: Shahbaz Youssefi \u003csyoussefi@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a725c38cbe2273589b2b0129c715ffa0da4bd0cb",
      "old_mode": 33188,
      "old_path": "include/GLSLANG/ShaderLang.h",
      "new_id": "dde82d24ac6ae2e0e211c9af2bd2874c1e2db250",
      "new_mode": 33188,
      "new_path": "include/GLSLANG/ShaderLang.h"
    },
    {
      "type": "modify",
      "old_id": "9f60d6b791c67298547a77a1fddc382c2558972c",
      "old_mode": 33188,
      "old_path": "include/platform/autogen/FeaturesGL_autogen.h",
      "new_id": "2b4a23e90fd6528ba5a0a11f19653549178ffd61",
      "new_mode": 33188,
      "new_path": "include/platform/autogen/FeaturesGL_autogen.h"
    },
    {
      "type": "modify",
      "old_id": "127cccfbe2397e9f69a773b71a26d8c4a5934b3b",
      "old_mode": 33188,
      "old_path": "include/platform/gl_features.json",
      "new_id": "789e621188ad1d07b7b86bc1139426b9f20572ed",
      "new_mode": 33188,
      "new_path": "include/platform/gl_features.json"
    },
    {
      "type": "modify",
      "old_id": "ddcf9bc7a07026027a8d15962a9401d29ffdeea0",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/ParseContext.cpp",
      "new_id": "7745cbe125e56002ea253313e6f2821c859b63d9",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/ParseContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "3d62dfacbcb31a73d7baa9819e1ca7f619440ec1",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/ParseContext.h",
      "new_id": "d08695502cee2f6dc49aa76354181fbc0f9b7550",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/ParseContext.h"
    },
    {
      "type": "modify",
      "old_id": "02adcce7a58059f4d39f87e4b7d4e253f366539c",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/gl/ShaderGL.cpp",
      "new_id": "c23fccd5f96bcafa7eedc0b7365af4fc25541814",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/gl/ShaderGL.cpp"
    },
    {
      "type": "modify",
      "old_id": "5cbbd9fe4feffd69d62998554d977daddf93c07d",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/gl/renderergl_utils.cpp",
      "new_id": "8c78bae7ab50c5fc2edb414701c2c318183454f1",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/gl/renderergl_utils.cpp"
    },
    {
      "type": "modify",
      "old_id": "014ab698ed38663d4d396aaba12f6378f3273434",
      "old_mode": 33188,
      "old_path": "src/tests/gl_tests/GLSLValidationTest.cpp",
      "new_id": "28a44aa5d8ddb03bbfdde3d1899a3d0161b85c4f",
      "new_mode": 33188,
      "new_path": "src/tests/gl_tests/GLSLValidationTest.cpp"
    },
    {
      "type": "modify",
      "old_id": "adce1f18bb7c976e694287caa2190c605a57de37",
      "old_mode": 33188,
      "old_path": "util/autogen/angle_features_autogen.cpp",
      "new_id": "2b52609a4a0ae27e84c9b013ad51289f2442d5af",
      "new_mode": 33188,
      "new_path": "util/autogen/angle_features_autogen.cpp"
    },
    {
      "type": "modify",
      "old_id": "09308ab6896fbcd2a2c9462a6a1e56ff12591650",
      "old_mode": 33188,
      "old_path": "util/autogen/angle_features_autogen.h",
      "new_id": "16733c1630cca0b89d5aa286e9a15bb84751f397",
      "new_mode": 33188,
      "new_path": "util/autogen/angle_features_autogen.h"
    }
  ]
}
