)]}'
{
  "commit": "547e77e6fa717c2717e449589db820924a16b452",
  "tree": "4ac6cedcff229ec68f647685b6e7e1ef51d7eaf6",
  "parents": [
    "34704839e3cce01b4da6830bb49bac13caa15e34"
  ],
  "author": {
    "name": "Jim Graham",
    "email": "flar@google.com",
    "time": "Mon Jul 13 20:44:29 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jul 14 03:44:29 2026 +0000"
  },
  "message": "[Impeller] Playground expanded role (#188889)\n\nCurrently the set of Playground tests in the Impeller directory is the\nmain way in which we test changes to the renderer. Unfortunately, these\ntests don\u0027t test much code unless they are either run in the\n`impeller_golden_tests` executable, or if they are run with\n`--enable_playground`. Without those conditions the test harness simply\nallows the caller to construct a DisplayList and then immediately\nreturns true without seeing if it successfully renders anything. This PR\nexpands the role of these Playground tests in 2 ways:\n\n- The tests can now generate golden images directly from\n`impeller_unittests` without needing a separate executable\n(`impeller_golden_tests`). If you specify the flag\n`--golden_output_dir\u003d\u003cdirectory\u003e` then golden images for any test marked\nas a golden test will be written there along with a digest of the files\nwritten.\n- The tests will always render their target at least once for each\nPlayground test, whether or not goldens are being generated or the\nplayground is enabled, expanding the amount of code that is tested on\neach run.\n\nNote that some tests were found to fail when you actually tried to\nrender something. Some of them with trivial fixes are fixed in this PR\nwhile others which require more investigation have been deferred to\nfollow-on issues, such as:\n\nThe Interop RuntimeEffect test:\nhttps://github.com/flutter/flutter/issues/188882\nThe StencilMask tests (with playground window):\nhttps://github.com/flutter/flutter/issues/188884\nThe MassiveScalingTexture test:\nhttps://github.com/flutter/flutter/issues/189286\nThe SepiaTone subpass tests:\nhttps://github.com/flutter/flutter/issues/189287\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 [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\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- [ ] 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\nIf you need help, consider asking for advice on the #hackers-new channel\non [Discord].\n\nIf this change needs to override an active code freeze, provide a\ncomment explaining why. The code freeze workflow can be overridden by\ncode reviewers. See pinned issues for any active code freezes with\nguidance.\n\n**Note**: The Flutter team is currently trialing the use of [Gemini Code\nAssist for\nGitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).\nComments from the `gemini-code-assist` bot should not be taken as\nauthoritative feedback from the Flutter team. If you find its comments\nuseful you can update your code accordingly, but if you are unsure or\ndisagree with the feedback, please feel free to wait for a Flutter team\nmember\u0027s review for guidance on which automated comments should be\naddressed.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "caab882ad6d84f7c473da742acd2487b802867e1",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/display_list/testing/BUILD.gn",
      "new_id": "994afe02f53167939fa4244d6eef7e391defec85",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/display_list/testing/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "8ad5c0e67a5ebeeb9f29a8397fa091059dfc465b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/display_list/testing/impeller/dl_test_surface_instance_impeller.cc",
      "new_id": "4e676c537259ef81becd78ded5240a6cde030deb",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/display_list/testing/impeller/dl_test_surface_instance_impeller.cc"
    },
    {
      "type": "modify",
      "old_id": "5460af12beedb06564bac9c820c18eaedc583980",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/display_list/testing/impeller/dl_test_surface_instance_impeller.h",
      "new_id": "c7dea9592e484bed5f5e3bab959b74034823b88a",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/display_list/testing/impeller/dl_test_surface_instance_impeller.h"
    },
    {
      "type": "modify",
      "old_id": "0f8b679abea2043b17e21bd1b6bbc6e325bbd456",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/BUILD.gn",
      "new_id": "b9416e8926b93cfaf14ff5f434bf5d7fdd14feca",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "eb7c3d5f7a0eca6793c27059749b03938f6cb001",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/base/BUILD.gn",
      "new_id": "85b1bb55ccb892091ce229ac73543f600df4d604",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/base/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "291173757f7cd31ad7dfb34304594935feb043fe",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/BUILD.gn",
      "new_id": "d3aa29b7c3b1cb494c384e32978df1c3ed7fde0a",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "75814ba17d56487b3548a6868db52d2e6fe3fd34",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_basic_unittests.cc",
      "new_id": "62276d6c71faae1910db0438c965235b83ee828e",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_basic_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "d890b77c56548075878cf5e825e7abb4bdb3d38a",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_blend_unittests.cc",
      "new_id": "f3e501cec2c969628a320d58eae4a0b1b614abbb",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_blend_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "f6da6fec1cf35e01224defee024c0f6b0afab915",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_blur_unittests.cc",
      "new_id": "30368a7294950f7240dd666d8ca59fc95a2ee3b9",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_blur_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "fab952bcc8fbc44170c4f65ed438a1c41958c98b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_gradient_unittests.cc",
      "new_id": "27dbad64b89b91f0b174fb0309a1acf9e51c4324",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_gradient_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "0aef34a1439d00a28e08499f27f48da9b062e716",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_path_unittests.cc",
      "new_id": "7204fa7f7656176e9e99fc283cdabd9fa07889ad",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_path_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "8e1e3aabc7ab69c258d0865ebf36c917d4cbb91f",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_primitive_shape_unittests.cc",
      "new_id": "2399b69af09074b63e51bfb981c99d2a67387750",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_primitive_shape_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "73a4cd579bf359c5c97f6fb6fd900f8fe2159b9b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_runtime_effect_unittests.cc",
      "new_id": "cf20da988c9c4d6d7d6faec83d16ff81d04dd5a7",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_runtime_effect_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "b4c3c4eaf846babb3095c9fd4b566a14d2649deb",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_text_unittests.cc",
      "new_id": "548c525f5fb0458efe1a876c17566f818a9ad4a6",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_text_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "c6109f79c5c08801db9d4cdf78e6bcbf77361b0b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_dl_unittests.cc",
      "new_id": "87ae0fc23161f5fa16b653d5bc52eadf0775576a",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_dl_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "2d91301a760e7349c07e2d4fce5a713c1cd94c85",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_playground.cc",
      "new_id": "e851dd665b01e99c75ad0a3b8bbe5937625c6de2",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_playground.cc"
    },
    {
      "type": "modify",
      "old_id": "13eb79012a08a9d07e5737e907ca5433e205bb82",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_playground.h",
      "new_id": "0a42e5a580a339825414b46aeecd744030a09aef",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_playground.h"
    },
    {
      "type": "modify",
      "old_id": "ddc02e4470e6234ed07600033afc31f54df713b2",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/aiks_unittests.h",
      "new_id": "d24e70652914aeb7a069e001c0bf682633606fb2",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/aiks_unittests.h"
    },
    {
      "type": "modify",
      "old_id": "b8a4b56249820a44f527bd06564836fe09d842a7",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/canvas_unittests.cc",
      "new_id": "455682344de17a0b781de3d9618b1365b26ba65a",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/canvas_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "0ea0ee9986b0da50c307d8b11f76592518a252ca",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/dl_golden_blur_unittests.cc",
      "new_id": "748d2dcaf02bd43afe4ea3cc442a3254ecf50453",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/dl_golden_blur_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "830f7618dd6e5c2b2d9978a43e87f3f89300c6b3",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/dl_golden_unittests.cc",
      "new_id": "b688040debc528821fbffe4def339e048afcce35",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/dl_golden_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "2722066822a4f8a6101c138cfb20140f709be612",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/dl_golden_unittests.h",
      "new_id": "ac3f17dcef8b62d5091564d485525ad389fce73b",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/dl_golden_unittests.h"
    },
    {
      "type": "modify",
      "old_id": "6528d9c1385e972110cb242198b48be2c92b037a",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/dl_playground.cc",
      "new_id": "e93121ddf7cdd35a2c889ac8563721ebc7508f29",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/dl_playground.cc"
    },
    {
      "type": "modify",
      "old_id": "b6057a1230b53ac19fb04214e00f29fd99c6ff24",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/dl_playground.h",
      "new_id": "ad9462321f168090d9ca2f143d2cc054c12d1e08",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/dl_playground.h"
    },
    {
      "type": "modify",
      "old_id": "02b948de12282d2b0d6a7243320fd5159889aae0",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/dl_unittests.cc",
      "new_id": "94771443c8648d04dbe08a79b1723f9c04dd8aca",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/dl_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "a3aaebfd1849f8b104beabf26b2996768a739230",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/testing/render_text_in_canvas.cc",
      "new_id": "fba902421dc32f699eb2ab1229c4f561f49d4a52",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/testing/render_text_in_canvas.cc"
    },
    {
      "type": "modify",
      "old_id": "7edaeadb97b056b799cdb221c3f90758b8fae034",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/testing/render_text_in_canvas.h",
      "new_id": "3242896e715913ddb1cecbb3d731849c15770fd6",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/testing/render_text_in_canvas.h"
    },
    {
      "type": "modify",
      "old_id": "aadb8302d859071bb6d4221ad1a5a32a11ed378b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/display_list/testing/rmse.h",
      "new_id": "75d19b5baaaea9da0fb9b81cb05cf6215a1293e6",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/display_list/testing/rmse.h"
    },
    {
      "type": "modify",
      "old_id": "79ed38211b4a79be3dae883ebd43d91dd1533353",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/entity/BUILD.gn",
      "new_id": "03f12e16fd403ce57b1c62bcf2eccd39c4556d39",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/entity/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "a2de219377a8b37b2638d68b0f772dc88e776bf7",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc",
      "new_id": "917c11d31a646248acddcf296d53d0350e64faf8",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc"
    },
    {
      "type": "modify",
      "old_id": "718c4a73995304b64237c764ecf94e212cd81ad8",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/entity/entity_unittests.cc",
      "new_id": "476af2b6c44027d3ba77cb4f0e4c4e8659fb19fd",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/entity/entity_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "c873869f7e8a5fd5da2b3d1ee279218ea0958dbc",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/BUILD.gn",
      "new_id": "22dad40341718d5e9228a0382b88621b313ef738",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "f07a01d35f07cc5bdc73b021a84c3ee9350c82d7",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test.h",
      "new_id": "d9726e6ad67385d6b1dff1eac6b1f6d72be66813",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test.h"
    },
    {
      "type": "modify",
      "old_id": "23211d8611d8a577ed14c717c6a5e8ec6d948357",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc",
      "new_id": "13b89d1e377266b07efefed1800a74aa1b2049c3",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc"
    },
    {
      "type": "rename",
      "old_id": "ae6c8a5da7d6fb3f83b4489586204923bf88a5c6",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/screenshotter.h",
      "new_id": "79a0e0abcab012d0d826bddac214348d31c46078",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/golden_screenshotter.h",
      "score": 63
    },
    {
      "type": "modify",
      "old_id": "d3456110c6fd24adc1855cbaeed9261359e2dc75",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/golden_tests.cc",
      "new_id": "21cb5d39f7b9768de41987246da2458ebf4f4081",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/golden_tests.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "69aa4022dc1e818b39d0f4482500a1e5feefbd98",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/metal_golden_screenshotter.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac87ed1852e104f47cb86286e5fc4b34cabdbb1e",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/metal_golden_screenshotter.mm"
    },
    {
      "type": "delete",
      "old_id": "26308113384170820d31cbfdfcd24e391e94c63e",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/metal_screenshotter.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b645717b72d5c730fe41dd2021e6d8c3b2596976",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/vulkan_golden_screenshotter.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bb77635583fb3fbd666eb4e8f40d1212ec48ef2c",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/golden_tests/vulkan_golden_screenshotter.mm"
    },
    {
      "type": "delete",
      "old_id": "42af7c6eb0e502bf3a9b7be9842c28091b84cb6b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/vulkan_screenshotter.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "eb0ab23db0dd88ed03d9dc805655e612c2f8bed9",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/BUILD.gn",
      "new_id": "74ff1822a9c64f4d809b4e5891f30a268c1f492d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "13e8a9c569997377ccbc1a44153df209fcd3377a",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.cc",
      "new_id": "62c2755fb5c068c436c99360fa41f0d2241c6c1d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.cc"
    },
    {
      "type": "modify",
      "old_id": "de3b7ecacf1883fb1f1e15568c59159001aed761",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.h",
      "new_id": "4c6c57fdd1b6cb878f396979ea0f4b2b211d5ce4",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/gles/playground_impl_gles.h"
    },
    {
      "type": "modify",
      "old_id": "4ba9a083bedb80875e6eaf6e5e05ed2fb6bd8b39",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.h",
      "new_id": "5dbae51fb27e58f1c11cf7aa98842c18fdcc0966",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.h"
    },
    {
      "type": "modify",
      "old_id": "12c596f6bd987dfb4439191abc9fe1625cd37c98",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.mm",
      "new_id": "237c51a96b607096f82e72fd21ff163eac5364f4",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/metal/playground_impl_mtl.mm"
    },
    {
      "type": "modify",
      "old_id": "ab957178251422dba39b3ef7344e7b2409512645",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.cc",
      "new_id": "cc7bfe626d0c6075e42644768efab976b6b62bd6",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.cc"
    },
    {
      "type": "modify",
      "old_id": "9ea956f6d387c3de438197c4331a1cd2554f284e",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.h",
      "new_id": "9162afb00dc406a841e9706c4e1d427e61ad7012",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/backend/vulkan/playground_impl_vk.h"
    },
    {
      "type": "modify",
      "old_id": "b2331c6e39dd99dbcd7a040a8b9f58b6748057db",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground.cc",
      "new_id": "5868bff4d1a14a632d4733aee52c50b24204874c",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground.cc"
    },
    {
      "type": "modify",
      "old_id": "dc2f7046e925b2d4185647e3cd84dc96b1c5415e",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground.h",
      "new_id": "664e231c261f6d2cfae28dd88ff4131f5769a93d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground.h"
    },
    {
      "type": "modify",
      "old_id": "22a9909e3c4d0dd554bd4df116e64ce27ec2d875",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground_impl.cc",
      "new_id": "ba74554c949e598d39f1f0975c0bb1a2f78253ee",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "1a26d388acd6b14fef6e0e52ee3ee823722d8f78",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground_impl.h",
      "new_id": "ca6d27b3e1d3d48ce7627f241c39c43398aed298",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground_impl.h"
    },
    {
      "type": "modify",
      "old_id": "84e6f2d90a0a5c53cbd4226909bf0f2918d3c6f5",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground_test.cc",
      "new_id": "bdafbe28fd35f82519c1a208e8f224f242907e8f",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground_test.cc"
    },
    {
      "type": "modify",
      "old_id": "309c8e787d16964600796ab15ea93a8ae08b3ea1",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/playground/playground_test.h",
      "new_id": "74c1b87fa9b81f7104ffc68494b63de26a9068ee",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/playground/playground_test.h"
    },
    {
      "type": "modify",
      "old_id": "4c9190707e33942b4bca7f0c258596769185d432",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/BUILD.gn",
      "new_id": "ee339a915fe95071fcbd5f755b26ce43113817d1",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "a7860e7b823c77e017e6ae3574253203601414e2",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/vulkan/BUILD.gn",
      "new_id": "13e3573363da17e3028120631e8d5251fdad1d21",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/vulkan/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "44178962076895a902d8b0005a1eadb7049b5805",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc",
      "new_id": "6d6cf2b70c235464bd042b9a962d07d591f281ba",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/backend/vulkan/descriptor_pool_vk.cc"
    },
    {
      "type": "modify",
      "old_id": "7d8171ca052bb60b5c463bc845c23329a1afe02d",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/renderer_dart_unittests.cc",
      "new_id": "36653e0e7fd5eb01e0f6e43f0135349656585f14",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/renderer_dart_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "8d2e48b33e74722d36c008659d769301de858957",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/renderer_golden_unittests.cc",
      "new_id": "ab657c801b50a91117824620d284994c7b34215b",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/renderer_golden_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "a66c332df1a147b05fd8857bf0d7772cc38876e6",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/renderer/renderer_unittests.cc",
      "new_id": "e0b024b6245a09359c6782fbd02388c3f494d4ad",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/renderer/renderer_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "ff059a55abddea64ccdfd11f18f353aa2bfb8be6",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/runtime_stage/BUILD.gn",
      "new_id": "a25519ae5949aa9b92a89e4f7191e08b7282ee19",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/runtime_stage/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "dc23d67e6d050bba7d08e685b907c3f62f7f20bf",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/shader_archive/BUILD.gn",
      "new_id": "d6f72076905c47b8c758a61c112a1eb5a6e79157",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/shader_archive/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "92e73fc05a8ca20c112a1eb8664d97b1949ffcf4",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/tessellator/BUILD.gn",
      "new_id": "599b3528c386a09f140fbb49b9b484a5f279ddc3",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/tessellator/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ff12aaebf51884e0bc97b246add82fef1a05519",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "225b9f075162d7b01797d2a2e2a581211b5c824d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/golden_digest_manager.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "977a99b96378dd6720e899ef194fd5c80b2a9243",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/golden_digest_manager.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9aefcbea47a243d97a591e707140dc04efca999d",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/impeller_unittest_suite.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f60a5d4772f65f3e6caf5d3ae361ee1524077ed2",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/impeller_unittest_suite.h"
    },
    {
      "type": "rename",
      "old_id": "739c7691d238e7aef2ad470c3106284248956144",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/metal_screenshot.h",
      "new_id": "cd460dbfe6d2f96a673d87fbdc0dda68cc4fbed2",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/metal/metal_screenshot.h",
      "score": 85
    },
    {
      "type": "rename",
      "old_id": "7062372e74eaf3b40bb02c261043fe5b0101e0e2",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/metal_screenshot.mm",
      "new_id": "00fbc3d246074d30cfae8449759ee531d71f3871",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/metal/metal_screenshot.mm",
      "score": 96
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5bac5900810a12ec628bddb28ba732d7f7e890d2",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/metal/metal_screenshotter.h"
    },
    {
      "type": "rename",
      "old_id": "b0a819d0c391e3791aa540020a506df8952ed91b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/metal_screenshotter.mm",
      "new_id": "baa3dfa454a8888a7eb4fa138e0e4856116e6fb8",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/metal/metal_screenshotter.mm",
      "score": 75
    },
    {
      "type": "rename",
      "old_id": "4772609b2fb156318a4eda831098fbb0f33dfb71",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/screenshot.h",
      "new_id": "91467b8e9751a73eb6a7bf9f87f23f0c6b3a8cc1",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/screenshot.h",
      "score": 85
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "52ec17ffe0d99b631d1668d17eea08fdd20c7dfe",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/screenshotter.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4059849c55068ca0e606d0703b266c2f1ffe6933",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/screenshotter.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73d634fcba141b623c400b790f24b03a9a559043",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/vulkan/vulkan_screenshotter.h"
    },
    {
      "type": "rename",
      "old_id": "49c7d305b71a32dab7bc1b180a99da53645b2298",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/golden_tests/vulkan_screenshotter.mm",
      "new_id": "4b5eb75fdbb63a2d7f33e2247caa3c96f2375b70",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/testing/vulkan/vulkan_screenshotter.mm",
      "score": 79
    },
    {
      "type": "modify",
      "old_id": "8c82c20881401e21555f554b6858d54776ceab1b",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/impeller/toolkit/interop/impeller_unittests.cc",
      "new_id": "2c16960f13a50d69da94d15f9113d98f85078a96",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/impeller/toolkit/interop/impeller_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "48f4c0d5eb8164c0228add36705496a8d6ae6ad1",
      "old_mode": 33188,
      "old_path": "engine/src/flutter/testing/run_all_unittests.cc",
      "new_id": "53d5470e592b650f777d3ac4f979d7475a86a7f2",
      "new_mode": 33188,
      "new_path": "engine/src/flutter/testing/run_all_unittests.cc"
    }
  ]
}
