)]}'
{
  "commit": "0b3147cd3f635587213c0e6bbfaa28f4b24cfaf6",
  "tree": "f25e24edb1b5c73c9a54b4be8ccca621dcaf4181",
  "parents": [
    "cc85917b110ea7fd211ed0015706e5037e2a28b7"
  ],
  "author": {
    "name": "Andrew Marshall",
    "email": "planetmarshall@users.noreply.github.com",
    "time": "Wed Mar 11 03:47:43 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Mar 11 03:47:43 2026 +0000"
  },
  "message": "[impeller] Use the GLES3 shaders in the embedder if supported (#180072)\n\n\u003c!--\nThanks for filing a pull request!\nReviewers are typically assigned within a week of filing a request.\nTo learn more about code review, see our documentation on Tree Hygiene:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n--\u003e\n\nAdds the GLES3 shaders to the embedder (used by Linux and custom\nembedders) if they are supported.\n\nFixes #179185\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n---------\n\nCo-authored-by: Jason Simmons \u003cjsimmons@google.com\u003e\nCo-authored-by: Jason Simmons \u003cjason-simmons@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "74ac146f6a123f82a0798a419d06365911c269de",
      "old_mode": 33188,
      "old_path": "docs/engine/testing/Testing-the-engine.md",
      "new_id": "0cfa21401f5e74d43861ef2ad4d7112f10c947e8",
      "new_mode": 33188,
      "new_path": "docs/engine/testing/Testing-the-engine.md"
    },
    {
      "type": "modify",
      "old_id": "c8a9e218403046d9c126c83b9eefc5f6d5db072c",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_runtime_effect_unittests.cc",
      "new_id": "73a4cd579bf359c5c97f6fb6fd900f8fe2159b9b",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_runtime_effect_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "6f31b963baf8f77b886cfab5516bca923a4d80ca",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_vertices_unittests.cc",
      "new_id": "55d8473cde125a4c3c00b76abe241d761cc19d76",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_vertices_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "7ca94c4dad1bf1cd2a544db6afae8aef6e8d2cb3",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/canvas_unittests.cc",
      "new_id": "6bcac03849cf78ad0750bd2d6bdf4497de028e00",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/canvas_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "aae5107e8d9ca122cb3ca27ecef0182196099288",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/entity/entity_unittests.cc",
      "new_id": "69ce4911a79139427f4066f7e59d3d39871f5828",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/entity/entity_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "9158eb616b08e15df1156e24339eada6a5d361ea",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test.h",
      "new_id": "cc1def8b9c8f3217ceb57bf4e7c5649ce3775c2f",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test.h"
    },
    {
      "type": "modify",
      "old_id": "72e6637ef616136af9478c8536b855d097a3bf38",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc",
      "new_id": "d139104df44295d55b5cddb8943dc46a9cfa98ce",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc"
    },
    {
      "type": "modify",
      "old_id": "69e001728fa73106d1846ae5b5907ec5e6cb831e",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test_stub.cc",
      "new_id": "e1ad1528dd01e078237d39ed4346df77c31f800f",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test_stub.cc"
    },
    {
      "type": "modify",
      "old_id": "a1a075b8ea80b92f0ff1f9992f0a44e806204311",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.cc",
      "new_id": "32b00b9df4503f1f98ff918020302a743fe4704d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.cc"
    },
    {
      "type": "modify",
      "old_id": "c1973e929414f490abe434de1906fd6e64647fca",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.h",
      "new_id": "d54d1e78a1b27dddc23a06a72dacca89d940f35d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.h"
    },
    {
      "type": "modify",
      "old_id": "2028a82529ba45d524d923ef4b032decc514831d",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.h",
      "new_id": "4ba9a083bedb80875e6eaf6e5e05ed2fb6bd8b39",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.h"
    },
    {
      "type": "modify",
      "old_id": "218dbe51c03bff645a06daa6796869a5295b5381",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.mm",
      "new_id": "12c596f6bd987dfb4439191abc9fe1625cd37c98",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.mm"
    },
    {
      "type": "modify",
      "old_id": "3ea803d954041228e3020290e8fdd5d54d9f50f5",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.cc",
      "new_id": "ab957178251422dba39b3ef7344e7b2409512645",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.cc"
    },
    {
      "type": "modify",
      "old_id": "0f4012469a0535156ccc5b97214c42ba50003767",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.h",
      "new_id": "9ea956f6d387c3de438197c4331a1cd2554f284e",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.h"
    },
    {
      "type": "modify",
      "old_id": "363c8bad70c66874b6c345bbcf9d9e56be043fe7",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground.cc",
      "new_id": "b1059245a8f3ff1c0ba04ba30b052c86f699d4fa",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground.cc"
    },
    {
      "type": "modify",
      "old_id": "6878a5975156cf4a5177ae3f78b8fb2287ba7581",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground.h",
      "new_id": "e343be2d9eb79ad5abb442b8bb207537042d7328",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground.h"
    },
    {
      "type": "modify",
      "old_id": "ed2593fc98ffb56dfbcc2140bcefe13e4bc71642",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground_impl.h",
      "new_id": "1a26d388acd6b14fef6e0e52ee3ee823722d8f78",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground_impl.h"
    },
    {
      "type": "modify",
      "old_id": "85a2d32bdc1df9f459c5ce7d0e978ef0a3afabd3",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground_test.h",
      "new_id": "fae11be7cab99a6ae50d0fabcd585e07aa010416",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground_test.h"
    },
    {
      "type": "modify",
      "old_id": "34d9843554d475a33b126f70afe4743c3ffc1124",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/gles/buffer_bindings_gles.cc",
      "new_id": "f5aab37d777a77fa8873f319452c7abb7a2ece4d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/gles/buffer_bindings_gles.cc"
    },
    {
      "type": "modify",
      "old_id": "456c56470b551a721dc18b3e5fd76417a70c3268",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc",
      "new_id": "66f4a6881945c25190078fec187da6faf683b8fb",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/runtime_stage/runtime_stage_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "18564dcaca528cf388194192864acafc270d9372",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/shell/platform/embedder/BUILD.gn",
      "new_id": "61abe64a16f904d74075abdee14c6c919d12f0dc",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/shell/platform/embedder/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "779c37b482a0dd578498655596cd6759975cf17b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc",
      "new_id": "d73ae89f95ba85a3d6a63673edf727383d15ed2a",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc"
    },
    {
      "type": "modify",
      "old_id": "52febc2b378eeb325742da6bf56f7c1bdbef40e9",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/shell/platform/embedder/embedder_surface_gl_impeller.h",
      "new_id": "274e1ccb38f70b4d1e5af3fd9096ba61810a8b12",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/shell/platform/embedder/embedder_surface_gl_impeller.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eda11d2ccb0bac619bbff4bd08560f1bb656b32a",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/shell/platform/embedder/tests/embedder_test_surface_gl_impeller.cc"
    }
  ]
}
