)]}'
{
  "commit": "5045687984fb3e60bbbb3a2ff7a910066b9ec723",
  "tree": "6309c40933b8e27199121d283a484aadbb4b336a",
  "parents": [
    "167a19d8463f5ab36e21bb7c6ee840842efc7a8e"
  ],
  "author": {
    "name": "Lalit Maganti",
    "email": "lalitm@google.com",
    "time": "Fri Apr 26 00:47:08 2024 +0100"
  },
  "committer": {
    "name": "Lalit Maganti",
    "email": "lalitm@google.com",
    "time": "Fri Apr 26 00:47:08 2024 +0100"
  },
  "message": "ui: utilise segment forest to improve counter tracks on large traces\n\nThis CL introduces the use of the segment forest to significantly speed\nup the queries of counter tracks on large traces. Specifically the data\nstructure is exposed to Typescript via the use of a new \"CounterMipmap\"\ntrace processor operator.\n\nAlso while I\u0027m here, fix a few subtle issues I found in the rendering\nof counter tracks:\n1) Don\u0027t draw things deep in negative x: this can cause disappearing\n   tracks when very very zoomed in\n2) Improve perf of counter panels query.\n3) Fix some subtle overlap between counter units and the hover line:\n   this is pixel peeping but still nice to fix. Specifically, on my\n   monitor, I saw the bottom 3/4 pixels overlapping with the top of the\n   counter line when the counter was at its maximum.\n\nChange-Id: I603faaccd080f5e5ff07c37462a039e6850803ea",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8a4ba32ec1ac8f5f63884ff2ad7bd494e844085d",
      "old_mode": 33188,
      "old_path": "Android.bp",
      "new_id": "c66ad4e84ecf5ff5ce0b9ac928b3fbddbbda62ef",
      "new_mode": 33188,
      "new_path": "Android.bp"
    },
    {
      "type": "modify",
      "old_id": "c9f3381cb734c3edc6607696fb2a6110095aa1ed",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "57b3bf60ec8a649af931debb603dc265ba087ccb",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "modify",
      "old_id": "bbcb771fbe8fa1a46b1eb3ae2bf447a88510337c",
      "old_mode": 33188,
      "old_path": "src/trace_processor/perfetto_sql/intrinsics/operators/BUILD.gn",
      "new_id": "2dca8b627b83fe5375abaccb888bdc0765f3546c",
      "new_mode": 33188,
      "new_path": "src/trace_processor/perfetto_sql/intrinsics/operators/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "83321ce0542fed3e18dcecfdacf98687ad0266ae",
      "new_mode": 33188,
      "new_path": "src/trace_processor/perfetto_sql/intrinsics/operators/counter_mipmap_operator.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1b0897cc0821228d180afb8fd9c31e485f6f1afd",
      "new_mode": 33188,
      "new_path": "src/trace_processor/perfetto_sql/intrinsics/operators/counter_mipmap_operator.h"
    },
    {
      "type": "modify",
      "old_id": "b36a63a81c6b0c2c4d37c665cb4e46803532e490",
      "old_mode": 33188,
      "old_path": "src/trace_processor/trace_processor_impl.cc",
      "new_id": "2deba7ac76400bdd28c41f1a1dc9b1a3c0ffe20d",
      "new_mode": 33188,
      "new_path": "src/trace_processor/trace_processor_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "656ec56daede39fe8a5acea94fa43a01a9ea8fec",
      "old_mode": 33188,
      "old_path": "ui/src/frontend/base_counter_track.ts",
      "new_id": "6285b277c6b5876603204458e30e290ea17d864d",
      "new_mode": 33188,
      "new_path": "ui/src/frontend/base_counter_track.ts"
    },
    {
      "type": "modify",
      "old_id": "5fdf93821bf6e811582ca289e37e971f085b28a2",
      "old_mode": 33188,
      "old_path": "ui/src/tracks/counter/index.ts",
      "new_id": "55773cd87d73faea99873b6d5cbff08010634993",
      "new_mode": 33188,
      "new_path": "ui/src/tracks/counter/index.ts"
    }
  ]
}
