)]}'
{
  "commit": "a6c939faabed40ea5878bbf717dd9be0bb59080b",
  "tree": "f2130367faac02d6daddc12017663bc270431148",
  "parents": [
    "44f8a43687ca2087ba343e4c2bee43a59bfc6a29"
  ],
  "author": {
    "name": "Jonah Williams",
    "email": "jonahwilliams@google.com",
    "time": "Wed Nov 08 10:38:59 2023 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Nov 08 18:38:59 2023 +0000"
  },
  "message": "[Impeller] remove capability to read from onscreen. (#47808)\n\nAs discovered by @knopp in https://github.com/flutter/flutter/issues/131567#issuecomment-1678210475, this is actually reducing performance substantially when there are multiple blurs. In the case of https://github.com/flutter/flutter/issues/132735 , removing this capbility improves GPU performance from 400ms per frame to ~100 ms per frame.\r\n\r\nFixes https://github.com/flutter/flutter/issues/131567#issuecomment-1678210475\r\n\r\n-----\r\n\r\nÂ  | Macrobench | Example App\r\n-- | -- | --\r\nTOT | 250 | 450\r\nW/Out OnScreen | 203-187 | 125-109\r\nW/Out Onscreen and Resolve | 203 | 125",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6c39a6416f7a8b5023ee2abd8d916d9fd3fa8ae",
      "old_mode": 33188,
      "old_path": "impeller/entity/entity_pass.cc",
      "new_id": "dcfd1418770d355eed94ab8a11a8899a41c0fa75",
      "new_mode": 33188,
      "new_path": "impeller/entity/entity_pass.cc"
    },
    {
      "type": "modify",
      "old_id": "9b2251c054f39a3eb2d551f202fddeb97e2683ff",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/gles/capabilities_gles.cc",
      "new_id": "c659dad574a07244a09b75a07cffbcbf4b78e895",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/gles/capabilities_gles.cc"
    },
    {
      "type": "modify",
      "old_id": "47dcaa33f3fb0e13e1652e92c2f7f9daea6796b9",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/gles/capabilities_gles.h",
      "new_id": "921d3a4287cac49973e90025f3fbc6fd4ebc4969",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/gles/capabilities_gles.h"
    },
    {
      "type": "modify",
      "old_id": "5a82cf5b4c9b65ffb0dffdc8f813650295dd9ebe",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/gles/test/capabilities_unittests.cc",
      "new_id": "530c5c5e3f0570c0fd0022f8bdb36613bf8759dc",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/gles/test/capabilities_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "06fd34724685a76bc95aee38953e5183af071f48",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/metal/context_mtl.mm",
      "new_id": "9373d3e3a7b3571a4e3d5d9de645383a1206e687",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/metal/context_mtl.mm"
    },
    {
      "type": "modify",
      "old_id": "ada7712ad66f708191a946b1c75693772a5710da",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/vulkan/capabilities_vk.cc",
      "new_id": "8af5a31f0b3cab7901e2bcff2115dadc5e8dc87d",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/vulkan/capabilities_vk.cc"
    },
    {
      "type": "modify",
      "old_id": "a768610d9c4ba25e4f3e1ec791758039ac97af89",
      "old_mode": 33188,
      "old_path": "impeller/renderer/backend/vulkan/capabilities_vk.h",
      "new_id": "f7ffd2232fc7c6ed306dfe4d56158b964abd9e2f",
      "new_mode": 33188,
      "new_path": "impeller/renderer/backend/vulkan/capabilities_vk.h"
    },
    {
      "type": "modify",
      "old_id": "80ea8e0f2b384bb880a8726c2bd258c544da6415",
      "old_mode": 33188,
      "old_path": "impeller/renderer/capabilities.cc",
      "new_id": "4dcda955ab95427c4317a2b4187bbd1ac40c28b8",
      "new_mode": 33188,
      "new_path": "impeller/renderer/capabilities.cc"
    },
    {
      "type": "modify",
      "old_id": "99d5986b1fe0287cc74508856d67d945a0b04cfc",
      "old_mode": 33188,
      "old_path": "impeller/renderer/capabilities.h",
      "new_id": "48f12a7d2432da51ddf531ea5732115eae88e01b",
      "new_mode": 33188,
      "new_path": "impeller/renderer/capabilities.h"
    },
    {
      "type": "modify",
      "old_id": "beab9a9a536153f39fb8b068cec9bc97bc2aeb8b",
      "old_mode": 33188,
      "old_path": "impeller/renderer/capabilities_unittests.cc",
      "new_id": "06c9bc3f822825b3f5a692bcc392da41b6bd2923",
      "new_mode": 33188,
      "new_path": "impeller/renderer/capabilities_unittests.cc"
    }
  ]
}
