)]}'
{
  "commit": "65c8c6e8d7581c1a87504960c51fa4b21282f9bb",
  "tree": "8819c22ce64606a9440c0522ac180141fb8f0845",
  "parents": [
    "9975c85013db35dd311ac27b09c932157ec881ea"
  ],
  "author": {
    "name": "Jonah Williams",
    "email": "jonahwilliams@google.com",
    "time": "Tue Nov 26 13:35:23 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Nov 26 21:35:23 2024 +0000"
  },
  "message": "[Impeller] cache even more text frame data to skip lookups. (#56798)\n\nEvery text frame must inform the glyph atlas about the glyphs + scale it contains. When this happens, the glyph atlas will populate the glyph and then tell teh text frame about the location in the atlas, so that the text contents shader can sample it correctly.\r\n\r\nOnce this has been done once for a given text frame + scale + offset, we can actually just keep reusing the same data provided 1) the atlas itself hasn\u0027t changed and 2) the scale/offset/properties are the same.\r\n\r\nThis constitutes a nice CPU usage reduction in places where there is a lot of text that isn\u0027t being invalidated, like scrolling on the flutter gallery.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1bdad62aff5848614d7ce56543b5bc7687ffaa38",
      "old_mode": 33188,
      "old_path": "impeller/display_list/dl_dispatcher.cc",
      "new_id": "b1ba5b7e35365250b704640858aa6a2719b4bc80",
      "new_mode": 33188,
      "new_path": "impeller/display_list/dl_dispatcher.cc"
    },
    {
      "type": "modify",
      "old_id": "dfa4c42198a946ab6ccd06de6a230abff40986f4",
      "old_mode": 33188,
      "old_path": "impeller/entity/contents/text_contents.cc",
      "new_id": "4d4a130480157544d95654f0be95248e4da788cc",
      "new_mode": 33188,
      "new_path": "impeller/entity/contents/text_contents.cc"
    },
    {
      "type": "modify",
      "old_id": "8fee465fabe9c18c93e970424420ef1bd9f7f06a",
      "old_mode": 33188,
      "old_path": "impeller/entity/entity_unittests.cc",
      "new_id": "756203ab2f04af80a663ca2c69c9c93c44f2682e",
      "new_mode": 33188,
      "new_path": "impeller/entity/entity_unittests.cc"
    },
    {
      "type": "modify",
      "old_id": "80b499352b557d81910e243881d6bf7e52240107",
      "old_mode": 33188,
      "old_path": "impeller/typographer/backends/skia/typographer_context_skia.cc",
      "new_id": "13dc254e67dce103650011c2d7584d942af047e1",
      "new_mode": 33188,
      "new_path": "impeller/typographer/backends/skia/typographer_context_skia.cc"
    },
    {
      "type": "modify",
      "old_id": "e530f5b3edcda03e3c4fd91c7097004f34347bbb",
      "old_mode": 33188,
      "old_path": "impeller/typographer/font_glyph_pair.h",
      "new_id": "e3df2dae50c116cd9a95734e70b04ea6eb8b8c47",
      "new_mode": 33188,
      "new_path": "impeller/typographer/font_glyph_pair.h"
    },
    {
      "type": "modify",
      "old_id": "093593804ea5f968ed6e54d93a7937124f319b68",
      "old_mode": 33188,
      "old_path": "impeller/typographer/glyph_atlas.cc",
      "new_id": "98038668fb501641835642f054d3ea66d01c92a9",
      "new_mode": 33188,
      "new_path": "impeller/typographer/glyph_atlas.cc"
    },
    {
      "type": "modify",
      "old_id": "87c549031838707c3443e22fa050233d23453e79",
      "old_mode": 33188,
      "old_path": "impeller/typographer/glyph_atlas.h",
      "new_id": "bf11ff056ae240d04db851d57dc9056cb16a17d4",
      "new_mode": 33188,
      "new_path": "impeller/typographer/glyph_atlas.h"
    },
    {
      "type": "modify",
      "old_id": "b72bb621c05836856c41a221ece5f006b93e7901",
      "old_mode": 33188,
      "old_path": "impeller/typographer/text_frame.cc",
      "new_id": "3535fb207f2b04c7b0e3b94d9bf4d18badc11aec",
      "new_mode": 33188,
      "new_path": "impeller/typographer/text_frame.cc"
    },
    {
      "type": "modify",
      "old_id": "0604d6cc1eb6b38c839920b087b99c8814acfd8a",
      "old_mode": 33188,
      "old_path": "impeller/typographer/text_frame.h",
      "new_id": "067c8ebd054861485801d136c6312f2f107c211f",
      "new_mode": 33188,
      "new_path": "impeller/typographer/text_frame.h"
    },
    {
      "type": "modify",
      "old_id": "6367314d9b397093aafa3b56ea5b61989850af7d",
      "old_mode": 33188,
      "old_path": "impeller/typographer/typographer_unittests.cc",
      "new_id": "4b8cc1cbc9606f5c1375a1767203d745f65d45ef",
      "new_mode": 33188,
      "new_path": "impeller/typographer/typographer_unittests.cc"
    }
  ]
}
