)]}'
{
  "commit": "9bb0a59074036751da2288a9aa866ef929210b10",
  "tree": "b7cf8886171983cc6addf8ba40883069ceb1c88e",
  "parents": [
    "788437e41ee0c5f410ff4f2ed87023ab96eca784"
  ],
  "author": {
    "name": "Jim Graham",
    "email": "flar@google.com",
    "time": "Sun Jun 11 14:14:24 2023 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Jun 11 21:14:24 2023 +0000"
  },
  "message": "Reland \"add non-rendering operation culling to DisplayListBuilder\" (#41463) (#42584)\n\nThis reverts commit 2553def911fa26e7ce69769e9e946c90bc023b98.\r\n\r\nFixes https://github.com/flutter/flutter/issues/125338\r\n\r\nThis PR should fix the blendmode/color analysis that caused failures for https://github.com/flutter/engine/pull/41463 as well as the bounds failures for inverted rectangles that caused failures for https://github.com/flutter/engine/pull/42330 (incorporating the fix from https://github.com/flutter/engine/pull/42556).\r\n\r\nThe description from the [previous PR](https://github.com/flutter/engine/pull/41463) updated with the new name of the DL property:\r\n\r\n---------------------------------\r\nThis optimization avoids recording unnecessary render operations that will not affect the output and also eliminates the need for \"draw detection\" mechanisms like `DlOpSpy` and `CanvasSpy` by remembering if any non-transparent operations were included. The `DlOpSpy` unit tests were updated to check if the results from that object match the new `DisplayList::modifies_transparent_black()` method.\r\n\r\nFixes https://github.com/flutter/flutter/issues/125338\r\n\r\nIn addition, this change will unblock some other Issues:\r\n\r\n- https://github.com/flutter/flutter/issues/125318\r\n- https://github.com/flutter/flutter/issues/125403",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4ec6111485d883a6b331da93ffe0630d7c21e92f",
      "old_mode": 33188,
      "old_path": "display_list/benchmarking/dl_complexity_unittests.cc",
      "new_id": "eee77ac9bdf556a092456837edfc286e3e751e6e",
      "new_mode": 33188,
      "new_path": "display_list/benchmarking/dl_complexity_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "378f86804f26009e02d8b1cad5a8a501a18e4df8",
      "old_mode": 33188,
      "old_path": "display_list/display_list.cc",
      "new_id": "e06bcf246d3d4f770f951eebc5a77c2628206971",
      "new_mode": 33188,
      "new_path": "display_list/display_list.cc"
    },
    {
      "type": "modify",
      "old_id": "4a6f339fdea0d61534b08865f32389c213e542b6",
      "old_mode": 33188,
      "old_path": "display_list/display_list.h",
      "new_id": "668a247d5596f780e29395de491675262b2db026",
      "new_mode": 33188,
      "new_path": "display_list/display_list.h"
    },
    {
      "type": "modify",
      "old_id": "f18a6c571b5a255347f8ff8b27906a01e049bb37",
      "old_mode": 33188,
      "old_path": "display_list/display_list_unittests.cc",
      "new_id": "c726fd97572976aa9aed7323ffdc3b219f96ba58",
      "new_mode": 33188,
      "new_path": "display_list/display_list_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "ea2a13258078017891a159cafd0c67150d318051",
      "old_mode": 33188,
      "old_path": "display_list/dl_builder.cc",
      "new_id": "266a8609ec5edb941d0dd231065fb1c209f65ded",
      "new_mode": 33188,
      "new_path": "display_list/dl_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "1d9cb8eb12299616317f0f9f534b24e028ab62ee",
      "old_mode": 33188,
      "old_path": "display_list/dl_builder.h",
      "new_id": "ab0bce0db3c38cca85fe30d3934d4417252086af",
      "new_mode": 33188,
      "new_path": "display_list/dl_builder.h"
    },
    {
      "type": "modify",
      "old_id": "d926e58c3b8189d13c1d0e6dd0b3258c91909ab1",
      "old_mode": 33188,
      "old_path": "display_list/dl_color.h",
      "new_id": "92a39150d2f2efb476f2cd17f78ddce96bf1ade7",
      "new_mode": 33188,
      "new_path": "display_list/dl_color.h"
    },
    {
      "type": "modify",
      "old_id": "77619a25671647a4c130a8fc1adedf0e0ee4ea74",
      "old_mode": 33188,
      "old_path": "display_list/dl_paint.h",
      "new_id": "3d9220f57e3d67a919aaf2f6ef549c20b1a8e8df",
      "new_mode": 33188,
      "new_path": "display_list/dl_paint.h"
    },
    {
      "type": "modify",
      "old_id": "565c9daa3acf78604fea2225905e2d16e6a82c39",
      "old_mode": 33188,
      "old_path": "display_list/testing/dl_rendering_unittests.cc",
      "new_id": "d894044e9663d758f7ea3d3eb4219f249a89653d",
      "new_mode": 33188,
      "new_path": "display_list/testing/dl_rendering_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "4479f63c1d67896df443877eee0b83ae6bd04cde",
      "old_mode": 33188,
      "old_path": "display_list/testing/dl_test_snippets.cc",
      "new_id": "0a53f0337afd9661d9a2b77ce078741f46d10caf",
      "new_mode": 33188,
      "new_path": "display_list/testing/dl_test_snippets.cc"
    },
    {
      "type": "modify",
      "old_id": "94f7995d81eb5a4a7628c432e14e751494defdde",
      "old_mode": 33188,
      "old_path": "display_list/testing/dl_test_snippets.h",
      "new_id": "98b40599b41cfd00a57bd2a5418de60bcf480247",
      "new_mode": 33188,
      "new_path": "display_list/testing/dl_test_snippets.h"
    },
    {
      "type": "modify",
      "old_id": "c6efaaf78c9d1bc4a12d8073858141d79124a549",
      "old_mode": 33188,
      "old_path": "display_list/utils/dl_matrix_clip_tracker.h",
      "new_id": "d50ab8935c469b37e4758eef8f1fa11fb0d337f3",
      "new_mode": 33188,
      "new_path": "display_list/utils/dl_matrix_clip_tracker.h"
    },
    {
      "type": "modify",
      "old_id": "e981258ef1a03dd03db752cc6d2ea31e3a4b219a",
      "old_mode": 33188,
      "old_path": "flow/diff_context_unittests.cc",
      "new_id": "d8b78a94070c041cb2aab378df2d427c93fcdbfb",
      "new_mode": 33188,
      "new_path": "flow/diff_context_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "42317ff9541a23904b14b5218704840a37faf637",
      "old_mode": 33188,
      "old_path": "flow/layers/container_layer_unittests.cc",
      "new_id": "206be009966a7a50404d403112031dd89fb13590",
      "new_mode": 33188,
      "new_path": "flow/layers/container_layer_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "956bfe88c12cf86024fe5a956572c0ccc441fc0b",
      "old_mode": 33188,
      "old_path": "flow/layers/display_list_layer_unittests.cc",
      "new_id": "dee93d2a673e0c70af47782a0800481eb45df73c",
      "new_mode": 33188,
      "new_path": "flow/layers/display_list_layer_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "ca1f1067e87c3fd022cd6bef6cf640037d230ba9",
      "old_mode": 33188,
      "old_path": "flow/layers/opacity_layer_unittests.cc",
      "new_id": "71ccdc15c8476857cf1fa103fcb67e4b1a9c4d03",
      "new_mode": 33188,
      "new_path": "flow/layers/opacity_layer_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "20153a0140d5ce1ce710fd8654593e98a8537ad3",
      "old_mode": 33188,
      "old_path": "flow/testing/diff_context_test.cc",
      "new_id": "c4c68bb7ab271ae2862c0bafe8ee7993bfa5ca8f",
      "new_mode": 33188,
      "new_path": "flow/testing/diff_context_test.cc"
    },
    {
      "type": "modify",
      "old_id": "69beb41d83470bf88e38d97f501735f2bb776010",
      "old_mode": 33188,
      "old_path": "flow/testing/diff_context_test.h",
      "new_id": "f22561552fdd0ba9bc63c83caec8aaeeb54f725d",
      "new_mode": 33188,
      "new_path": "flow/testing/diff_context_test.h"
    },
    {
      "type": "modify",
      "old_id": "22f118fd0a3ece2f0e5223afb4c21f48e1e0d5fd",
      "old_mode": 33188,
      "old_path": "impeller/display_list/dl_unittests.cc",
      "new_id": "01a81d3441d40f5bd8661525f3bf79edb940a21f",
      "new_mode": 33188,
      "new_path": "impeller/display_list/dl_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "dba02134238c82ee8ff006b65ea46dbd3a48fc33",
      "old_mode": 33188,
      "old_path": "shell/common/dl_op_spy_unittests.cc",
      "new_id": "7aaac1cbe52a8e23effa681db9a40f9d72171cb4",
      "new_mode": 33188,
      "new_path": "shell/common/dl_op_spy_unittests.cc"
    }
  ]
}
