)]}'
{
  "log": [
    {
      "commit": "ab1f35fa4ac2423f6814de9ceb0b1889b2d3c969",
      "tree": "bbba5a8ac3bc209cee1353c198535993b4e0baf6",
      "parents": [
        "737ef010f8d144567bdad1543349eada7ba01399"
      ],
      "author": {
        "name": "Kaylee Lubick",
        "email": "kjlubick@google.com",
        "time": "Thu Jun 20 17:19:31 2024 +0000"
      },
      "committer": {
        "name": "Kaylee Lubick",
        "email": "kjlubick@google.com",
        "time": "Thu Jun 20 19:12:18 2024 +0000"
      },
      "message": "[base] Update deprecated GrVk type names\n\nThese are just aliases for the GPU-backend agnostic type name,\nso we should just use them.\n\nThis also removes seemingly unnecessary #includes.\n\nChange-Id: I98ffd20f91d7526bc4f3d405f8a9b71e612021b9\nBug: b/309785258\nFlag: EXEMPT refactor\n"
    },
    {
      "commit": "056a15280ea5a5fec93c74046d501844bae82ae7",
      "tree": "7b4897108f45959eb75da7bea3a710841a3c820b",
      "parents": [
        "ac3c3a4d126373c9d98fc2cec1babb71f8232fa6",
        "1391d8ee77c9fb4147e84be17892c7e0b95766c6"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Apr 26 21:01:02 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 26 21:01:02 2024 +0000"
      },
      "message": "Merge \"Don\u0027t call set_buffer_count for single buffer surfaces\" into main"
    },
    {
      "commit": "1391d8ee77c9fb4147e84be17892c7e0b95766c6",
      "tree": "fb76b29f78d4d91792da71e8a2747b7f3b413f1b",
      "parents": [
        "e234e53b6fd78784d691c94b8b47ef792bd19e89"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 26 15:31:37 2024 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 26 15:32:54 2024 -0400"
      },
      "message": "Don\u0027t call set_buffer_count for single buffer surfaces\n\nFixes: 296145618\nTest: atest android.graphics.cts.HardwareRendererTest#lockHardwareCanvasSingleBuffer\nChange-Id: I1513d6f484e44cb27a7683594899f99e0d802c2b\n"
    },
    {
      "commit": "ecb650dd4b4a19979089b3b3982abd269ab25233",
      "tree": "c074e18ae4e676496428c58f12fa71bf8bbaa137",
      "parents": [
        "da17a7d285ca9b07102f0ff1b82ea38bf59b243f",
        "27da134092a13c422d25affa72ea07ecb71e7042"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Apr 23 22:27:10 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 23 22:27:10 2024 +0000"
      },
      "message": "Merge \"Add HWUI session tagging\" into main"
    },
    {
      "commit": "27da134092a13c422d25affa72ea07ecb71e7042",
      "tree": "28d9b40083a03b4cd581d74444be5130d34c1cca",
      "parents": [
        "e073c73fafbcd9ff342a3c48d238ffca8f33f913"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Apr 05 23:10:48 2024 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Sat Apr 20 00:14:27 2024 +0000"
      },
      "message": "Add HWUI session tagging\n\nAdds a hidden method for the creation of special \"internal\" hint\nsessions with extra metadata, and plumbs hwui to use it\n\nBug: 330553312\nTest: atest PerformanceHintNativeTestCases\nTest: hwui unit tests\nChange-Id: I35e7f81623b8f81a9a12e485f221952a13035b02\n"
    },
    {
      "commit": "254972cf117af611b3ed27e46657344a162616a9",
      "tree": "195818d6afba4ca8a54b6cbaf9160f36052ee055",
      "parents": [
        "e234e53b6fd78784d691c94b8b47ef792bd19e89"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 18 14:15:03 2024 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 18 14:15:03 2024 -0400"
      },
      "message": "Fix HardwareRenderers becoming invalidated by TRIM\n\nFixes: 335646931\nTest: repro steps in bug\nChange-Id: I6b22d202b71effa1a7136a20f51b38732d0fde74\n"
    },
    {
      "commit": "9da39e77eb85e121d2c3c33ebfe7294fbe691de8",
      "tree": "d1f13cabcd27917c2854b6eb98fda21233c9ce24",
      "parents": [
        "dd37c9871ef2a918d251dd9159181eb622a6e371"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Tue Apr 09 14:43:21 2024 +0100"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Apr 10 17:18:26 2024 +0100"
      },
      "message": "Do not mix pid_t and int32_t in Hwui\n\nThose two types are both equivalent to int for Android, but they may not\nbe the same in all host build platforms.\n\nBug: 322360037\nTest: build libhwui on Android and host\nChange-Id: I356da56ce507af1cfa00b685c71d445870338cda\n"
    },
    {
      "commit": "8ab756dbff6530b1b743b111cfab7b6a3266e759",
      "tree": "f063c91574112445fca23503cf546bfc219ea2c8",
      "parents": [
        "d26915c2faac9bc40b6c02ad9fb73dfe5b1cf40f"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Tue Apr 02 17:38:20 2024 +0100"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Apr 10 17:18:00 2024 +0100"
      },
      "message": "Add RenderProxy to host builds of hwui\n\nThis makes RenderProxy and DrawFrameTask compile on host.\n\nBug: 322360037\nTest: build libhwui on host\nChange-Id: I509519e6838ed250c1a1a68390e5e16769427f63\n"
    },
    {
      "commit": "d26915c2faac9bc40b6c02ad9fb73dfe5b1cf40f",
      "tree": "3255fe6e5ee87a2368acf55ba259f94d11e4c12a",
      "parents": [
        "35a873ce837c5841a045930faa914f32e5d6da25"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Tue Mar 26 12:05:52 2024 +0000"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Apr 10 17:17:39 2024 +0100"
      },
      "message": "Use CPU rendering for host builds\n\nThis bypasses the computation of PipelineRenderType on host to force\nusing the CPU rendering pipeline.\n\nBug: 322360037\nTest: build libhwui on host\nChange-Id: Icb5178ba04e5348868c6c7f637e0c7a341fc84cd\n"
    },
    {
      "commit": "8c5ba3f1721daceb712f0d7acde4db1f4c4b1554",
      "tree": "c3ba9ace0b12a24a8d4f94e0bb71ee1b8727a293",
      "parents": [
        "b2818816bb0ca9dbc83bbc6dafa0194637901fd6"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Apr 08 18:01:26 2024 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Apr 08 22:28:24 2024 +0000"
      },
      "message": "Only pick fp16 egl config when using color mode hdr.\n\nDevices that support fp16 should only choose an fp16 egl config when color mode HDR is requested. Otherwise this causes the underlying EGLSurface to be configured with fp16 buffers, which breaks some odd API paths that apps use, like HardwareRenderer -\u003e ImageReader.\n\nBug: 332834976\nTest: Youtube music on watch devices.\nChange-Id: I5db837342eeeb69ed08d1f86d98c4945497fffde\n"
    },
    {
      "commit": "bea67ce5014bf5554d0fbbdbf9f4e96e4803a435",
      "tree": "81e3bfcb24d6d4fab6fb4805597b2964b501b68e",
      "parents": [
        "3a79b1d7aa3a3816b23b2067f434f428b685cf2b"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Thu Mar 28 14:21:16 2024 +0000"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Wed Apr 03 14:18:46 2024 +0100"
      },
      "message": "Create a new RenderPipeline for CPU only rendering\n\nThis takes out of SkiaPipeline what relies on GPU, and puts it into\nSkiaGpuPipeline, making SkiaOpenGLPipeline and SkiaVulkanPipeline\ninherit from SkiaGpuPipeline.\nFrom the new restricted SkiaPipeline, this creates SkiaCpuPipeline that\nonly relies on CPU for rendering.\nIn addition, this moves references to the GrContext out of\nIRenderPipeline and into SkGpuPipeline as the only usage is in classes\ninheriting from SkGpuPipeline.\n\nBug: 322360037\nTest: build libhwui on host\nChange-Id: Ifadacfc593ff54377d6a8a65b0505e294c8d1b29\n"
    },
    {
      "commit": "2cec158cbb6b35e64e293d91aec5f49ef0c15bb2",
      "tree": "0259f5f423c3f36a1896ac8ef222b9b7b347ee02",
      "parents": [
        "13b1479b7be878ac2c326f680c08a6d871336499"
      ],
      "author": {
        "name": "Igor Kraskevich",
        "email": "kraskevich@google.com",
        "time": "Wed Mar 13 11:23:40 2024 +0000"
      },
      "committer": {
        "name": "Igor Kraskevich",
        "email": "kraskevich@google.com",
        "time": "Wed Mar 27 09:53:51 2024 +0000"
      },
      "message": "Pass active functor rendering threads to HWUI ADPF session\n\nTest: unit tested\n\nBug: 329219352\n\nChange-Id: I13e83030e5d0891584ba9d62fe6cc1eb332a7b74\n"
    },
    {
      "commit": "ce9663081c646a6395e272c1f74668683e2243f7",
      "tree": "243913c656d4bb29ec07dcfa0da0c7662cf7ae27",
      "parents": [
        "09a38e4e8c64ccf62573da7ffbe40cef90e573ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 25 19:28:29 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 25 19:28:29 2024 +0000"
      },
      "message": "Revert \"Create a new RenderPipeline for CPU only rendering\"\n\nThis reverts commit 09a38e4e8c64ccf62573da7ffbe40cef90e573ae.\n\nReason for revert: b/331231487\n\nChange-Id: If9529d7ba39edef707af50f67ca8cd4754bfe11b\n"
    },
    {
      "commit": "09a38e4e8c64ccf62573da7ffbe40cef90e573ae",
      "tree": "642fe00f1e4b13d26a84c1bf6406e4a2e48e8179",
      "parents": [
        "8800a495ecdd604c34d18c049d7ea01f0a8d0e39"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Thu Mar 14 15:20:56 2024 +0000"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Thu Mar 21 14:21:54 2024 +0000"
      },
      "message": "Create a new RenderPipeline for CPU only rendering\n\nThis takes out of SkiaPipeline what relies on GPU, and puts it into\nSkiaGpuPipeline, making SkiaOpenGLPipeline and SkiaVulkanPipeline\ninherit from SkiaGpuPipeline.\nFrom the new restricted SkiaPipeline, this creates SkiaCpuPipeline that\nonly relies on CPU for rendering.\nIn addition, this moves references to the GrContext out of\nIRenderPipeline and into SkGpuPipeline as the only usage is in classes\ninheriting from SkGpuPipeline.\n\nBug: 322360037\nTest: build libhwui on host\nChange-Id: Iee70e49a3bdd5f6e85ced91c1a62a9a357eba4ce\n"
    },
    {
      "commit": "4400b39a497b2414a76786c2cd30ec69041105df",
      "tree": "8374f2dcea32d26d8f99fe6a6daa67838ffc7dd8",
      "parents": [
        "8472c5b03594568356ee46611e3dac10fdd1858c",
        "5f076a6359203ead7c955fb7259b330ac8de9213"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Sat Mar 09 04:22:11 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 09 04:22:11 2024 +0000"
      },
      "message": "Merge \"Check optional before accessing the data.\" into main"
    },
    {
      "commit": "5f076a6359203ead7c955fb7259b330ac8de9213",
      "tree": "7ce8649b1a8a7c96c9f3b6fc84c148d7a045c775",
      "parents": [
        "bbc6941cbb3b9ab589e924a03efe913e2f490d0c"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Tue Mar 05 02:00:02 2024 +0000"
      },
      "committer": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Fri Mar 08 19:51:18 2024 +0000"
      },
      "message": "Check optional before accessing the data.\n\nThis is one speculative fix to avoid crash.\n\nBug: 327666562\nChange-Id: I212fbb6dab3bd50010de1cb795fd2b87fed8ff62\nTest: builds\n"
    },
    {
      "commit": "913e9a43e0370b85321c3e03d134978c3e34afcd",
      "tree": "3faa892a388d2ad271b336fd8b40cc6eedb95600",
      "parents": [
        "220d53f4697a2c3c5a8cdec55876c10a2e196b53"
      ],
      "author": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Thu Mar 07 13:14:46 2024 +0000"
      },
      "committer": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Thu Mar 07 13:15:33 2024 +0000"
      },
      "message": "[base] Migrate deprecated GrBackendSemaphore methods\n\nSee https://skia-review.googlesource.com/c/skia/+/781236 and https://skia-review.googlesource.com/c/skia/+/821978\n\nThis is a reland of http://ag/26474115\n\nChange-Id: Ida9996c937b699c46df7f6a945270705879f3416\nBug: b/293490566\n"
    },
    {
      "commit": "dfca12aaa1b8e9040915fed60fb65f8d0233f2dc",
      "tree": "6983c6cd79765dca52f21df5bc17ddcd9480c964",
      "parents": [
        "bcb613c8ca8f2ef2754423407fefbb572a518d5b"
      ],
      "author": {
        "name": "Priyanka Advani",
        "email": "padvani@google.com",
        "time": "Wed Mar 06 22:25:04 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 06 22:25:04 2024 +0000"
      },
      "message": "Revert \"[base] Migrate deprecated GrBackendSemaphore methods\"\n\nThis reverts commit bcb613c8ca8f2ef2754423407fefbb572a518d5b.\n\nReason for revert: Droid-monitored triggered revert due to b/328489884. Will be verifying through ABTD before submitting the revert.\n\nChange-Id: I866b19f0b7427dfdb3e6f5ecb0096df9c8d6c8ad\n"
    },
    {
      "commit": "bcb613c8ca8f2ef2754423407fefbb572a518d5b",
      "tree": "949669fa684bb0d4eb9b7145968f5da33a7f4249",
      "parents": [
        "64cc6c3b78be61fd5d554430357dfd383871b8d4"
      ],
      "author": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Wed Mar 06 13:33:11 2024 +0000"
      },
      "committer": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Wed Mar 06 16:51:38 2024 +0000"
      },
      "message": "[base] Migrate deprecated GrBackendSemaphore methods\n\nSee https://skia-review.googlesource.com/c/skia/+/781236 and https://skia-review.googlesource.com/c/skia/+/821978\n\nChange-Id: I7f6494fff5c0341c895fd6145ca84583fea180fe\nBug: b/293490566\n"
    },
    {
      "commit": "1ddb2fe4d21ce7440ed0777efea595f731b3f7df",
      "tree": "10a9489d0b3e206c8a504ea0f5b94c979554defa",
      "parents": [
        "a7997c130223ac4c03db031d65a319f30c043795",
        "87ef524058b8e30e59ac944016168ea4113744ca"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Fri Feb 23 11:10:46 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 23 11:10:46 2024 +0000"
      },
      "message": "Merge \"Implement RenderThread for host\" into main"
    },
    {
      "commit": "87ef524058b8e30e59ac944016168ea4113744ca",
      "tree": "cd9d7e588f3d6c3fa836935fcc69b1f2ea1cfbc7",
      "parents": [
        "56ca544750274320bdd51d17dbaa1dc9010f6b13"
      ],
      "author": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Tue Feb 13 16:33:00 2024 +0000"
      },
      "committer": {
        "name": "Jerome Gaillard",
        "email": "jgaillard@google.com",
        "time": "Thu Feb 22 16:44:01 2024 +0000"
      },
      "message": "Implement RenderThread for host\n\nThis creates a host implementation of RenderThread in libhwui.\nIn order to do this, it also implements ThreadBase, ReadBack,\nCacheManager. Most of those implementations are no-op.\n\nBug: 322360037\nTest: build libandroid_runtime on host\nChange-Id: If72f46fe9baa645ff95330b971a102c2db554bb6\n"
    },
    {
      "commit": "0184a44e78fbfe0c0e7d96a794783a04d7ae9303",
      "tree": "859cf8c5b0a6625c7f6ba85c9eed56780493590b",
      "parents": [
        "f4c8bd4c9673a03b7e61fb3307204a1da46d5abb",
        "2521e6dfc73e371f202eace44c6ce8483daef304"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Wed Feb 21 00:05:23 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 21 00:05:23 2024 +0000"
      },
      "message": "Merge \"Reduce some redundant steps\" into main am: 2458071b31 am: 2521e6dfc7\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2950305\n\nChange-Id: I46d06ab3ac8ba718a8db8c86f585214b80b25271\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "2521e6dfc73e371f202eace44c6ce8483daef304",
      "tree": "9a3dd54364413fd0f6d1ae84018727e038d85681",
      "parents": [
        "69a65985cb6c2f5515415f494182076ae1887a60",
        "2458071b3115c4b244c50b1bfb1e76cf8cd5b41a"
      ],
      "author": {
        "name": "Nader Jawad",
        "email": "njawad@google.com",
        "time": "Tue Feb 20 23:25:43 2024 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 20 23:25:43 2024 +0000"
      },
      "message": "Merge \"Reduce some redundant steps\" into main am: 2458071b31\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2950305\n\nChange-Id: I7e06b809ba2fd950506d87437f52a3788a9ea84d\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6a74777a800eea2f80bd0a8e7ded29a53aa4c43f",
      "tree": "3d2103a6fbcf67e9d512d135fd29879a5f5e7349",
      "parents": [
        "77ff5996acbe3cd2fde0f9eb559d3e77c3b48e3e"
      ],
      "author": {
        "name": "Liangliang Sui",
        "email": "coolsui.coding@gmail.com",
        "time": "Mon Feb 05 18:38:19 2024 +0800"
      },
      "committer": {
        "name": "Liangliang Sui",
        "email": "coolsui.coding@gmail.com",
        "time": "Mon Feb 05 16:15:17 2024 +0000"
      },
      "message": "Reduce some redundant steps\n\n1. When |frame-\u003ependingDirty.isEmpty()| is executed there, it must not be empty. Because the judgment has been made at the beginning of the applyRenderNodeTransform method.\n\n2. When |dirty-\u003eisEmpty()|, |dirty-\u003esetIWH(frame.width(), frame.height());| can be returned directly after execution. There is no need to judge bufferAge, and subsequent steps are redundant. Because the maximum range of dirty is [0, 0, frame.width(), frame.height()]\n\nChange-Id: Iccb3d39e4139c26ed5e7e24c39d1e141cb380dab\nSigned-off-by: Liangliang Sui \u003ccoolsui.coding@gmail.com\u003e\n"
    },
    {
      "commit": "ddc9c66bf01214698334ef47e5fb71782a41ad5b",
      "tree": "f1a8406d5d8246f53ed8799b4b02edbfbc45f95d",
      "parents": [
        "37d7dedf0822374bc5b0698ed5b9506231ed0fba"
      ],
      "author": {
        "name": "Nolan Scobie",
        "email": "nscobie@google.com",
        "time": "Tue Jan 30 17:38:42 2024 -0500"
      },
      "committer": {
        "name": "Nolan Scobie",
        "email": "nscobie@google.com",
        "time": "Wed Jan 31 13:58:42 2024 -0500"
      },
      "message": "[Vulkan] Utilize Skia\u0027s new VK_ERROR_DEVICE_LOST callback to log\n\nSkia will invoke this callback when it encounters VK_ERROR_DEVICE_LOST.\nSince HWUI enables the VK_EXT_device_fault extension (when available),\nadditional data should be provided from the driver. If the extension is\nnot available, Skia will provide a generic `description` indicating\nthat no info is available.\n\nThe goal of this logging is to provide as much verbose information as\npossible in the logs, while condensing any differentiating info into a\nmore succinct crash message to aid clustering.\n\nCopied/adapted from RE\u0027s callback landed in:\nIbda00573a1db9d8aaa83057207f0f699cc756e33\n\nBug: 313369997\nTest: manually forced crash\nChange-Id: If6a6d04ea99cf6f270c8b481e325d9e0ee548385\n"
    },
    {
      "commit": "7b647e4ea0e92f33c19b315eaed364ee067ba0aa",
      "tree": "47c285aa18cf79476d615f8e169ebd823bee6d38",
      "parents": [
        "46deec9f696f850efdd4427e10db145d68cbb5bd",
        "efd99108901ae47b085f96c841214f6f416dd86f"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Jan 30 10:36:03 2024 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Jan 30 10:36:03 2024 -0800"
      },
      "message": "Merge Android 24Q1 Release (ab/11220357)\n\nBug: 319669529\nMerged-In: I46c7859ff042ee7aa9193757e5df8269f4892362\nChange-Id: I0c7b5036c0b0f5f2caad551edb063350f6eb87e7\n"
    },
    {
      "commit": "8e6a8468b58c5239e4d3f1ef466c05eef7d62444",
      "tree": "63dd686c56de7874aeb61b9d7b6c21a23e4df9eb",
      "parents": [
        "dd7cd7c03a41302a843889bdf59d70814afe9e46"
      ],
      "author": {
        "name": "Jiang Tian",
        "email": "ot_jiang.tian@mediatek.com",
        "time": "Tue Jan 09 11:52:05 2024 +0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 18 19:06:02 2024 +0000"
      },
      "message": "Fix crash from asynchronous GPU metrics\n\nMaking the scope more accurate that only acquire the lock when trying\nto access frame info in FrameInfoVisualizer, then make it irrelevant\nto the real draw operation.\n\nBug: 317995179\nTest: 1.going to developer options\n      2. swapping the \"profile hwui\" option from \"none\" to \"bars\"\n          and back a couple times, no crash\n\nChange-Id: I069a28a7e847c0c3fca94fd9c43e95382f501b80\nMerged-In: I069a28a7e847c0c3fca94fd9c43e95382f501b80\n"
    },
    {
      "commit": "c30db4b6da51c7559b685e95a45fb0e88ecdb78a",
      "tree": "81ccd3813d81c97ddf14f664d91d035c17767852",
      "parents": [
        "0042debc7fe7bec645a35b940dc51d2c192b3266",
        "e0edc3af8c35b616e21ada6989a1ccbcda1a1571"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 18 19:05:08 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 18 19:05:08 2024 +0000"
      },
      "message": "Merge \"Fix crash from asynchronous GPU metrics\" into main"
    },
    {
      "commit": "e0edc3af8c35b616e21ada6989a1ccbcda1a1571",
      "tree": "05dca3909d930f0f9905b3b5367447d620c09dd8",
      "parents": [
        "a35c8f8305980ae5a89b09e81c0013e7c4350f6f"
      ],
      "author": {
        "name": "Jiang Tian",
        "email": "ot_jiang.tian@mediatek.com",
        "time": "Tue Jan 09 11:52:05 2024 +0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 17 16:10:37 2024 -0500"
      },
      "message": "Fix crash from asynchronous GPU metrics\n\nMaking the scope more accurate that only acquire the lock when trying\nto access frame info in FrameInfoVisualizer, then make it irrelevant\nto the real draw operation.\n\nBug: 317995179\nTest: 1.going to developer options\n      2. swapping the \"profile hwui\" option from \"none\" to \"bars\"\n          and back a couple times, no crash\n\nChange-Id: I069a28a7e847c0c3fca94fd9c43e95382f501b80\n"
    },
    {
      "commit": "28cc50a135140cd171a960dee3d6af4ed54d8fb4",
      "tree": "10170878ba88f9079365cb514c943fe6b49af4d3",
      "parents": [
        "b95c9fe2ba8091fa95d3dd8091aaaf820770e25b",
        "926364538f32cfec8f54617f60dfa55c659b1e91"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jan 17 16:10:46 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 17 16:10:46 2024 +0000"
      },
      "message": "Merge \"Some devices might skip sending TRIM_BACKGROUND\" into main"
    },
    {
      "commit": "475aee8beb7bf16ad92c10cf00219ec919e17b86",
      "tree": "1d7bb41f5de58b54850b83f74f7874d14cd8bea0",
      "parents": [
        "5f7657c4d4a736c463f9f844b0aea5cd08549949",
        "22ab7f32617e9facbfb2ad8a1c37bd852e677688"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Jan 16 22:58:49 2024 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 16 22:58:49 2024 +0000"
      },
      "message": "Merge \"Support fp16 in hwui for HDR\" into main"
    },
    {
      "commit": "926364538f32cfec8f54617f60dfa55c659b1e91",
      "tree": "d280c38e0b2ce7d65b417c5612aa0fbe28322835",
      "parents": [
        "a35c8f8305980ae5a89b09e81c0013e7c4350f6f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 11 11:08:08 2024 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 16 21:06:12 2024 +0000"
      },
      "message": "Some devices might skip sending TRIM_BACKGROUND\n\nSo be more defensive in when we do the graphics cleanup\nin case we are skipped straight to TRIM_COMPLETE\n\nTest: none\nBug: 314251818\nChange-Id: I8b03707b30235db6e2c5972531ff2f4437f02f9d\n"
    },
    {
      "commit": "1083707b02d70e0ae09d1e31cf50fc7cc294987e",
      "tree": "8bb2c6558b4a13c75e6f7ec3b88f43982a9b3896",
      "parents": [
        "6cb651b1e4f5677b3afa4ffbcaeaef8d3f5bc6a4"
      ],
      "author": {
        "name": "Nolan Scobie",
        "email": "nscobie@google.com",
        "time": "Thu Jan 11 16:45:36 2024 -0500"
      },
      "committer": {
        "name": "Nolan Scobie",
        "email": "nscobie@google.com",
        "time": "Thu Jan 11 17:59:55 2024 -0500"
      },
      "message": "Add default shortcut for tracing Skia\u0027s GPU memory usage\n\nBug: 319164766\nTest: comparing traces with debug.hwui.skia_tracing_enabled on and off\nChange-Id: Ie24e3b4705380ef143699f229469226df7b4913a\n"
    },
    {
      "commit": "dab518a039808a249841e6190134b395b3d1bd8f",
      "tree": "f90774e6c95a1d5d71391b2fbc103c63a3ffa40c",
      "parents": [
        "1335a832937ff38e5fef545d3ba66482f345e516",
        "6ccda761cadaa498372c05c33e186e9a48f514fb"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 15 16:48:42 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 15 16:48:42 2023 +0000"
      },
      "message": "Merge \"Fix gpu resource not cleaned up\" into main"
    },
    {
      "commit": "4bd8d8a49cc85598a2f15227a8e47ee34447b73e",
      "tree": "2170ed0c5fadd779dcd6a64ea16ab2de98e080b0",
      "parents": [
        "e2d61b7b6f46447249deed2326a52122f5c10e28"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 08 11:27:19 2023 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 08 11:36:17 2023 -0500"
      },
      "message": "Track ADataSpace naming adjustments\n\nTest: make\nBug: 315475131\nChange-Id: Ieb8ec0065b1b6ce165e43b1f539ccb1238ceb747\n"
    },
    {
      "commit": "6ccda761cadaa498372c05c33e186e9a48f514fb",
      "tree": "f886810201f01275ef0d21b87b2c6c16643e87fe",
      "parents": [
        "ad73c57d691ad2cfd48b201db6cf8b053d2207ba"
      ],
      "author": {
        "name": "Zhao Qin",
        "email": "qinzhao@bytedance.com",
        "time": "Tue Nov 28 16:33:47 2023 +0800"
      },
      "committer": {
        "name": "Zhao Qin",
        "email": "qinzhao@bytedance.com",
        "time": "Tue Nov 28 16:43:19 2023 +0800"
      },
      "message": "Fix gpu resource not cleaned up\n\nGpu resource is not purged as expected in new implementation when\napp stays in foreground.\n\nTest: manual, adb shell dumpsys gfxinfo\nChange-Id: I15deb71693e726661c8bae70c7ae30cff2dcfa6b\n"
    },
    {
      "commit": "2375002a5c5e5240e4799ff71e51454352799c19",
      "tree": "0ff228d3a146073e02e47e04b5fc295814203b10",
      "parents": [
        "e749187514b90ad38193d902fcd603cf1aaf6a4b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 21 18:30:35 2023 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 21 18:30:59 2023 -0500"
      },
      "message": "Fix some libhwui build warnings\n\nFixes: 243390200\nTest: make\nChange-Id: I0150737e744016d56f8f4c4464d90b29b8505344\n"
    },
    {
      "commit": "361d88e6b05f91a7403626430ccc8d20ee3377c3",
      "tree": "55cb8146df2f481b05e17ea475b8e8b74f4b78b5",
      "parents": [
        "8621fe013087876d8e97ba13a44dfdfb4bb5f3b8",
        "4db23fdb5fbf3b909bc6d9dd03664ee9e1d9312d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 13 15:23:37 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 13 15:23:37 2023 +0000"
      },
      "message": "Merge \"Fix UAF in VkSemaphore management\" into main"
    },
    {
      "commit": "4db23fdb5fbf3b909bc6d9dd03664ee9e1d9312d",
      "tree": "626308827d5ed6eeee30bae777f7b39bb0a5c6c4",
      "parents": [
        "5d3fac14c08512a7ec0ae6a517c6ee94518490b9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 10 15:31:49 2023 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 10 15:32:31 2023 -0500"
      },
      "message": "Fix UAF in VkSemaphore management\n\nTest: atest CtsUiRenderingTestCases passes on hwasan build\nFixes: 310244900\nChange-Id: I9ce160410801c6b7078ecd80eba59e14aac4ef51\n"
    },
    {
      "commit": "192374c97883be12240e143b5673e208f732ffd1",
      "tree": "7e2c30cfe1dca594138deb592ec9902b7a5d88fe",
      "parents": [
        "0849504665dcb45271e5055b6a2f4d4c417e5e28",
        "5d3fac14c08512a7ec0ae6a517c6ee94518490b9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 09 18:14:59 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 18:14:59 2023 +0000"
      },
      "message": "Merge \"Adjust how present semaphore is handled\" into main"
    },
    {
      "commit": "5d3fac14c08512a7ec0ae6a517c6ee94518490b9",
      "tree": "7c3e0f5bb3ab041cc3037dbae0b1081958a901ff",
      "parents": [
        "a03981784febf2105d0a60965dcd2f7106535b4f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 08 23:08:10 2023 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 08 23:09:24 2023 -0500"
      },
      "message": "Adjust how present semaphore is handled\n\nAvoids stashing a semaphore in a field\nuse unique_fd to ensure an unused present fence isn\u0027t leaked\n\nTest: sample app ran in a loop for 3 hours, FD usage remained constant\nFixes: 295332012\nChange-Id: Iee38e86587805ef3596e5f7efea3ca3b5c7758b3\n"
    },
    {
      "commit": "7bf43433c6a8474ddfa2e09d0604314fe848c3eb",
      "tree": "e6bfcd00eb3944e195e92fd4390988e93017dba1",
      "parents": [
        "0edd84716a9090da9a35837353ccb7344d5b8608",
        "f70a4e86c2201295ab29e150183b61ed003ff184"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 08 19:25:47 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Nov 08 19:25:47 2023 +0000"
      },
      "message": "Merge \"Make active Context valid while buildLayer() When RecordingCanvas::drawPoints() is executed through buildLayer(), active Context is null. It leads to crash\" into main am: d773035f1a am: 691b495c70 am: f70a4e86c2\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2821330\n\nChange-Id: Idd22c5919c84e48c79f4606803ed061f04e353c3\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "691b495c705c157f84ffb09779ebb16f5d64ceed",
      "tree": "15838416a3ca9640a1cc14f94bc8ec5fee2bf0c9",
      "parents": [
        "33ccf035623ca2735b62a2526b44e6f23f0ef1c1",
        "d773035f1a5a3f3db7353d665b653ddfda102d0c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 08 18:12:10 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Nov 08 18:12:10 2023 +0000"
      },
      "message": "Merge \"Make active Context valid while buildLayer() When RecordingCanvas::drawPoints() is executed through buildLayer(), active Context is null. It leads to crash\" into main am: d773035f1a\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2821330\n\nChange-Id: Iaa1fef32bb164a1353f92c54b97f6b595f72d578\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "29781f450d3acc1a1405a83a1a99bad73ed4ff91",
      "tree": "a5b0378bc82684e749070f4c9f2560467f40e5dc",
      "parents": [
        "253698da790ebb76df2f5bee60362300ce004c6c"
      ],
      "author": {
        "name": "Minkyoung Kim",
        "email": "mer.kim@samsung.corp-partner.google.com",
        "time": "Tue Nov 07 18:35:11 2023 +0900"
      },
      "committer": {
        "name": "Minkyoung Kim",
        "email": "mer.kim@samsung.corp-partner.google.com",
        "time": "Wed Nov 08 14:01:49 2023 +0900"
      },
      "message": "Make active Context valid while buildLayer() When RecordingCanvas::drawPoints() is executed through buildLayer(), active Context is null.\nIt leads to crash\n\nChange-Id: Iefe7fa0e056e82f07cd54fa3bfd74180f89ae726\n"
    },
    {
      "commit": "417accdcaac72dffce9039c971cb867fcf279653",
      "tree": "cf9fb964f30abf7972b8584bd0d5ccdaa185b8cf",
      "parents": [
        "10614f6487059a631cda474e820a6e6ff33e208d"
      ],
      "author": {
        "name": "Tyler Freeman",
        "email": "fuego@google.com",
        "time": "Tue Oct 31 02:01:06 2023 +0000"
      },
      "committer": {
        "name": "Tyler Freeman",
        "email": "fuego@google.com",
        "time": "Tue Nov 07 22:48:57 2023 +0000"
      },
      "message": "refactor(force invert): use enum/intdef for force dark type in setForceDark() functions\n\nThis allows the RenderNode to differentiate between normal force dark\nand force force-dark (force invert color). In the next CL we will treat\nforce invert slightly differently, not allowing devs to opt-out of force\ndark in individual Views/RenderNodes.\n\nThis also sets us up to specify a \"force light\" mode for force invert,\nif we ever need it.\n\nBug: 282821643\nTest: atest ViewRootImplTest\nChange-Id: I8cc0fe099cccabdd09ea072aca1e70527e91e1a8\n"
    },
    {
      "commit": "22ab7f32617e9facbfb2ad8a1c37bd852e677688",
      "tree": "b1235737fefccf5de3d3f04fbdd6fa2ef77c013f",
      "parents": [
        "55e03013762786108bfc07d0d72c20428a299c71"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Sep 06 02:11:56 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Nov 03 15:51:35 2023 +0000"
      },
      "message": "Support fp16 in hwui for HDR\n\nPicking sRGB primaries and transfer with extended range bit as the\ndataspace, because that\u0027s straightforward for EGL.\n\nThen, rather than dimming SDR content, we instead just render as normal\nso that we take advantage of the full bit depth\n\nBug: 236745178\nTest: builds\nChange-Id: Ica39a2c81be508effb97a8850b0c8e272c10a084\n"
    },
    {
      "commit": "d25bbf4b7fe9c6f7195796a7d781ffc5ba8c2c99",
      "tree": "44d28503c1306a6eb52cd285111fdbfa8931a9cf",
      "parents": [
        "1237cbb1ed79efa424208b107720337a0651b8ce",
        "b96e638c2e5aee159236021097003c6f550efd67"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 24 13:44:27 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 24 13:44:27 2023 +0000"
      },
      "message": "Merge \"Split exception into 2 different messages\" into main"
    },
    {
      "commit": "b96e638c2e5aee159236021097003c6f550efd67",
      "tree": "96ea88842e09afc81c3aa8942ec21af4fd83fa07",
      "parents": [
        "fcfd9bb8e78368f64d11c3a67b7a57127c0c5f2b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 20 14:15:15 2023 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 20 14:15:15 2023 -0400"
      },
      "message": "Split exception into 2 different messages\n\nAllows distinguishing between HWUI mistakes vs. GPU issues\n\nTest: make\nChange-Id: Ie138ef201f758ef10da8d238f466d7ee16cfb6d2\n"
    },
    {
      "commit": "2d3ec5659022e3ce8287046f1aa7aea413858413",
      "tree": "d6902eb595293831f0602b043968fa628a03488b",
      "parents": [
        "42d5498bc332c766d58178979bfaab27a3ae34ea",
        "cef0bca744357fa0449c446f7aba35e3075a7274"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Oct 19 23:11:02 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 19 23:11:02 2023 +0000"
      },
      "message": "Merge \"Optimize HWUI ADPF for sysui and ensure correct closure\" into main"
    },
    {
      "commit": "cef0bca744357fa0449c446f7aba35e3075a7274",
      "tree": "5e0dd9fa6cd653804e82db8535c56cbe50c7dde4",
      "parents": [
        "2a0f9e1103520cd4df2316e5fc8164ef8d671e9e"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Mon Oct 16 22:00:11 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Oct 19 19:18:31 2023 +0000"
      },
      "message": "Optimize HWUI ADPF for sysui and ensure correct closure\n\nThis patch prevents the HintSessionWrapper from setting the\ntimestamp on load_up hints, to avoid edge cases in systemui\nwhere load_up hints were being sent before reset had a chance\nto be checked, making ADPF think work was still ongoing.\n\nThis patch also ensures the session closes when a\nCanvasContext is destructed, as previously it would wait until\nthe delayed destroy was evaluated before closing the session.\n\nBug: 302620048\nTest: hwuiunit\nChange-Id: I15172382665934acc28c80ff06937475481ba62b\n"
    },
    {
      "commit": "086fe948a9d96c2561f50648b28176e0684cde12",
      "tree": "4cd1acfb64b84d726dac4bab086b94a20e618cd8",
      "parents": [
        "0b5e898dc76941f36f16b408d48c653f2574757e",
        "be9bd5dafe05bb8a8ad5d94c14f63178f155afe2"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Oct 13 20:21:46 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Oct 13 20:21:46 2023 +0000"
      },
      "message": "[DO NOT MERGE] Revert \"Mitigation for mass GC deletion\" am: be9bd5dafe\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/25032861\n\nChange-Id: Ice8f504512c04b1295a125d7a5198f2a93f9b8fd\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "be9bd5dafe05bb8a8ad5d94c14f63178f155afe2",
      "tree": "72afa74629e8b0e849b22db45ee64d120f86f0ce",
      "parents": [
        "a25ad0514e64eda1e2c6691c301849be6f2612c1"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Oct 12 19:37:36 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Oct 13 18:17:37 2023 +0000"
      },
      "message": "[DO NOT MERGE] Revert \"Mitigation for mass GC deletion\"\n\nRevert submission 24828717\n\nReason for revert: performance concerns\n\nReverted changes: /q/submissionid:24828717\n\nBug: 300360668\nBug: 302620048\n\nChange-Id: Iefb7488f6e100ca7cbb0d43337e5830860ebebe5\n"
    },
    {
      "commit": "f6b21959d65e10c45022b584b03f7e96c8e8b382",
      "tree": "631a8967c8c88d88e2e34414e5b4d0cd04e5afcf",
      "parents": [
        "0c970db001eadcea02075c8c795fc96b99f64fa2"
      ],
      "author": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Fri Oct 13 13:12:17 2023 +0000"
      },
      "committer": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Fri Oct 13 13:12:49 2023 +0000"
      },
      "message": "[base] Use newer GrDirectContexts::MakeVulkan\n\nThis was added in http://review.skia.org/764516 and the old versions were deprecated.\n\nThis should not change any functionality as the deprecated APIs call the new APIs.\n\nChange-Id: I817acb74611a4ba1b83339ff20c42c5efc4684d2\nBug: b:293490566\n"
    },
    {
      "commit": "a25ad0514e64eda1e2c6691c301849be6f2612c1",
      "tree": "a1290335316fabfe4a8f6b1bbaa8f13d17ae4eca",
      "parents": [
        "73b143c6cd334c5369fa801b54952aa1ebae26c6"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Oct 12 19:42:23 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Oct 12 20:00:56 2023 +0000"
      },
      "message": "[DO NOT MERGE] Revert \"Send cached target duration when creating sessions\"\n\nThis reverts commit 73b143c6cd334c5369fa801b54952aa1ebae26c6.\n\nReason for revert: Performance issues\n\nBug: 300360668\nBug: 302620048\n\nChange-Id: I2a00c0498392a49f64d1f0e523d3ccbc9b345c57\n"
    },
    {
      "commit": "f984307ba38d8f2067afa9c4076f5a15e5e0e984",
      "tree": "f45b258ab21150654de787971fdf5224474d37d8",
      "parents": [
        "24758d1bec8172ae71c4fc9bdf8d5cfc0169f486",
        "299fe6f5d6fc6f1af7c3411dcf4e5efdf7217368"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Sep 27 16:05:10 2023 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Sep 27 16:05:10 2023 -0700"
      },
      "message": "Merge UP1A.231005.007\n\nBug: 291102124\nMerged-In: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95\nChange-Id: I64a40b9b56d5b18f8423d53abb5c1ba4429d5037\n"
    },
    {
      "commit": "bd304f3d68747cd80c551d9f95c5d7d8cd1f30d5",
      "tree": "1b8aa06876c204bfa1b5ea3ff261ee0d7a4b3c4b",
      "parents": [
        "3710ce6e5dfd986de24107877b34486cdebadb29",
        "348d90c78a63e9e042b692449b05aa1f5629f146"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Wed Sep 27 19:41:59 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 27 19:41:59 2023 +0000"
      },
      "message": "Merge \"Send cached target duration when creating sessions\" into udc-qpr-dev am: 348d90c78a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24866464\n\nChange-Id: I162b41e03709c8c0a967b2f96d8306c025f5874c\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "73b143c6cd334c5369fa801b54952aa1ebae26c6",
      "tree": "ec100f5eeb81e4a883b1d05ca0cdcf80ab0fd6fa",
      "parents": [
        "56916c44d70687e8549dda3eb73a8e385008e5be"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Sep 26 19:30:25 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Wed Sep 27 19:07:28 2023 +0000"
      },
      "message": "Send cached target duration when creating sessions\n\nThis fixes an issue where the default target duration was being sent\nwhen re-creating sessions, after the true target duration was already\nknown. This caused the wrong value in PowerHAL, and no corrective update\nwas sent because the cached value never changed.\n\nBug: 301806277\nTest: hwuitest\nChange-Id: I80d90e855fce92264d8341aad78b19dc547b65f4\nMerged-In: I80d90e855fce92264d8341aad78b19dc547b65f4\n"
    },
    {
      "commit": "e1163cdb719d9d2bd4ab2b4ebaac3df5dbbe9b4e",
      "tree": "043799a8e9517305d79a944f7a212721ca07d8eb",
      "parents": [
        "dd8255cf54dccb46446a7d9e7377acc09139996c"
      ],
      "author": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Wed Sep 27 15:00:48 2023 +0000"
      },
      "committer": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Wed Sep 27 16:51:26 2023 +0000"
      },
      "message": "[base] Use newer GrDirectContexts::MakeGL\n\nThis was added in https://skia-review.googlesource.com/c/skia/+/760017 and the old versions were deprecated.\n\nChange-Id: I8f08431966cf6205a180626763915b402bec81d6\nBug: b/293490566\n"
    },
    {
      "commit": "1b99d78960682dca27c8d234b48263a54fd223ec",
      "tree": "531938d1903e5b7b6e8ea2607c6868e39dab395a",
      "parents": [
        "cab681542a0710c0308415d78686b7e31edefb64"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Sep 26 19:30:25 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Sep 26 21:34:11 2023 +0000"
      },
      "message": "Send cached target duration when creating sessions\n\nThis fixes an issue where the default target duration was being sent\nwhen re-creating sessions, after the true target duration was already\nknown. This caused the wrong value in PowerHAL, and no corrective update\nwas sent because the cached value never changed.\n\nBug: 301806277\nTest: hwuitest\nChange-Id: I80d90e855fce92264d8341aad78b19dc547b65f4\n"
    },
    {
      "commit": "f452cb0f4f424b764188a34d076730019f804ce7",
      "tree": "ba0d42cbdb5f7af7767e6ed7687ec0aaa7c8d3e9",
      "parents": [
        "ef0b83a0edd0b239c4c7c09e29a25c3f8d654807",
        "97a0cbe74456632fdf05dc694a4f02c6cac194e5"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Sat Sep 23 02:49:04 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 23 02:49:04 2023 +0000"
      },
      "message": "Merge \"hwui: trace vsyncId for RT animations \" into main"
    },
    {
      "commit": "8d6888707e7cf3da2f321d942188e3b400bd33b5",
      "tree": "d4de7e31c4dca85425fa4b18d3eee6dfdf31a120",
      "parents": [
        "322467f3aea954ba656c3c2b5975a16dca3c588f",
        "d9b21f6fa512b5517aee81204b7ed76183af0514"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Sep 22 23:34:41 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 22 23:34:41 2023 +0000"
      },
      "message": "Merge changes Icc35293f,I05ed15cd into udc-qpr-dev am: d9b21f6fa5\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24828717\n\nChange-Id: Id62ff266430b5020d55f914b4c6b2b72ca56c1c8\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "322467f3aea954ba656c3c2b5975a16dca3c588f",
      "tree": "9f8e1caa5d1a314ddb02c94a784c2b007712cce6",
      "parents": [
        "72e621c8574670fecad7bc1965f4eb02d9ca6df7",
        "87765575a7e8e163e4d61f325d7b6e1f8947a3af"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Sep 22 23:34:15 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Sep 22 23:34:15 2023 +0000"
      },
      "message": "Add unit tests for HintSessionWrapper am: 87765575a7\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24829890\n\nChange-Id: Ib904236482120466d0589419b4bbdc1a0c3330f6\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "237bb3855ca87f653cea1ae0cee8992102e6b47c",
      "tree": "fc72049362bd65fa675ff0e373ab089349a20921",
      "parents": [
        "87765575a7e8e163e4d61f325d7b6e1f8947a3af"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Sep 14 22:56:50 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Sep 22 20:56:11 2023 +0000"
      },
      "message": "Mitigation for mass GC deletion\n\nDelete sessions after 2 seconds from when CC::destroy() is called, to\nensure they get the chance to be re-used without being destroyed but\nstill get destroyed if they aren\u0027t re-used.\n\nThis also adds several new unit tests around the functionality to ensure\nits thread-safety.\n\nTest: hwuitest\nBug: 300360668\nChange-Id: Icc35293ff49e14dc3599fc12d153f70acd29042a\nMerged-In: Icc35293ff49e14dc3599fc12d153f70acd29042a\n(cherry picked from commit 0daae6aacc7b4de111edb28dd2d9013e97843557)\n"
    },
    {
      "commit": "87765575a7e8e163e4d61f325d7b6e1f8947a3af",
      "tree": "e476338b74bbf7d71f2be9cc556e76f40d9ef400",
      "parents": [
        "db9f9d765804f8298b6a64f37beb73a7c45657c1"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Sep 07 05:52:07 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Sep 22 19:43:38 2023 +0000"
      },
      "message": "Add unit tests for HintSessionWrapper\n\nThis patch adds several unit tests for HintSessionWrapper, including\none specifically for a recent race condition memory leak.\n\nIt also refactors HintSessionWrapper to better support testing, and\ncreates a macro to shorten the dlsym bindings.\n\nBug: 299541959\nTest: hwuiunit\n\nChange-Id: I05ed15cdbd157b109667563d30627cfc4ae83777\nMerged-In: I05ed15cdbd157b109667563d30627cfc4ae83777\n(cherry picked from commit 0c6683683e370e591a5c45ea24d9b5f48d250f5c)\n"
    },
    {
      "commit": "aa65626634cdca97f2dfb8ff51b329c7ec1f6853",
      "tree": "24e2372e0c05992db764df8f32909a43b955b149",
      "parents": [
        "c05944b3663fec1c87781c8f1dd154c4d351558b",
        "0daae6aacc7b4de111edb28dd2d9013e97843557"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Sep 21 21:42:10 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 21 21:42:10 2023 +0000"
      },
      "message": "Merge \"Mitigation for mass GC deletion\" into main"
    },
    {
      "commit": "0daae6aacc7b4de111edb28dd2d9013e97843557",
      "tree": "15f6790e0cbfa9baf178a8af49a91422361f9196",
      "parents": [
        "0c6683683e370e591a5c45ea24d9b5f48d250f5c"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Sep 14 22:56:50 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Sep 19 21:41:40 2023 +0000"
      },
      "message": "Mitigation for mass GC deletion\n\nDelete sessions after 2 seconds from when CC::destroy() is called, to\nensure they get the chance to be re-used without being destroyed but\nstill get destroyed if they aren\u0027t re-used.\n\nThis also adds several new unit tests around the functionality to ensure\nits thread-safety.\n\nTest: hwuitest\nBug: 300360668\nChange-Id: Icc35293ff49e14dc3599fc12d153f70acd29042a\n"
    },
    {
      "commit": "bca403b2102eebdbcdfd2ebc65a7f244d2e1f406",
      "tree": "bbcb5f2b6adad95134e3b9ffae6c3f8bcbf0ecee",
      "parents": [
        "1f81948bebf861f0b73c2d27c9ece21ef5c1193c"
      ],
      "author": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Mon Sep 18 12:14:59 2023 +0000"
      },
      "committer": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Mon Sep 18 12:18:38 2023 +0000"
      },
      "message": "Replace use of deprecated GrDirectContext API\n\nChange-Id: I136ac31fd693f3a32f76e2d728952f370cdf7683\n"
    },
    {
      "commit": "13fb62b50d78b84f5e1544df1619f6187de96417",
      "tree": "36b6857a63a6e59065fa0b47089a2bee83f85b85",
      "parents": [
        "c66775007618d324dbde18c41afa8554fd283668",
        "cae0b21c5816b4e3991b27f59d6faaf180db50e1"
      ],
      "author": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Wed Sep 13 17:09:34 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 13 17:09:34 2023 +0000"
      },
      "message": "Merge \"[base] Update GrDirectContext calls to use safer API\" into main"
    },
    {
      "commit": "cae0b21c5816b4e3991b27f59d6faaf180db50e1",
      "tree": "7eda31e16545ed12c062ab937b06e998ce5d146e",
      "parents": [
        "9f1c93593c79eeb86f94206c5e83bb4f7b9d77ca"
      ],
      "author": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Tue Sep 12 18:33:10 2023 +0000"
      },
      "committer": {
        "name": "Kevin Lubick",
        "email": "kjlubick@google.com",
        "time": "Tue Sep 12 18:33:45 2023 +0000"
      },
      "message": "[base] Update GrDirectContext calls to use safer API\n\nIn http://review.skia.org/750403 and http://review.skia.org/751523,\nSkia modified some GrDirectContext APIs to make them less error-prone\nin response to https://crbug.com/1475906.\n\nThis updates part of Android to call those modified APIs.\n\nChange-Id: I164fcc735b3c36bf58de2f1ed9f277e90fc09325\n"
    },
    {
      "commit": "0c6683683e370e591a5c45ea24d9b5f48d250f5c",
      "tree": "886cdfedbd2cbd389b678f1914f3479d90ea69b1",
      "parents": [
        "1be8f108b65c062ec232fa3274bd72cccd03294e"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Sep 07 05:52:07 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Sep 08 22:16:55 2023 +0000"
      },
      "message": "Add unit tests for HintSessionWrapper\n\nThis patch adds several unit tests for HintSessionWrapper, including\none specifically for a recent race condition memory leak.\n\nIt also refactors HintSessionWrapper to better support testing, and\ncreates a macro to shorten the dlsym bindings.\n\nBug: 299541959\nTest: hwuiunit\n\nChange-Id: I05ed15cdbd157b109667563d30627cfc4ae83777\n"
    },
    {
      "commit": "75da5da9cc6de5d43e82a520cbe0690386164866",
      "tree": "9f2860c9ca58077ae30b9cc8efba063424b22037",
      "parents": [
        "c8c094355fdc8b1f53a7f4c602c1d33e057aff95",
        "4ee2ba0c249aac3c2889109f30fcda67523f9f03"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Aug 31 11:54:06 2023 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Aug 31 12:36:14 2023 -0700"
      },
      "message": "Merge UP1A.230905.019\n\nMerged-In: I67149c6faa2766be6d2537f2315dd2734bdd0447\nChange-Id: I5d35bf3f01914320970b64392555617b774cfa38\n"
    },
    {
      "commit": "2f82c051314a846a86781ca52d584479ab82e3f8",
      "tree": "37e606afbff18cd70b9f923014c55f65dd3377da",
      "parents": [
        "fad18860640cbb77bf688db41a8b5f1c222584fa",
        "734d810da8d7cd2882f24b5fb3f36220a722d8d2"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Aug 31 18:06:19 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 31 18:06:19 2023 +0000"
      },
      "message": "Merge \"[base] Migrate deprecated Vk GrBackendSurface related functions\" into main"
    },
    {
      "commit": "2f359c1ddfd33449f5219f70622f21049c15d895",
      "tree": "2a4ae79951c8c57bbd06f919ef286ebab999ea8a",
      "parents": [
        "5fa41f5201dde5f7406e0079a4b21402190fe9b8"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Aug 24 15:56:46 2023 +0000"
      },
      "committer": {
        "name": "Android Build Coastguard Worker",
        "email": "android-build-coastguard-worker@google.com",
        "time": "Wed Aug 30 17:54:11 2023 +0000"
      },
      "message": "Fix possible leaks in CanvasContext HintSessionWrapper\n\nEnsure the mHintSessionFuture is accounted for correctly in the\ndestructor.\n\nBug: b/297230599\nTest: manual\n(cherry picked from commit ac620f64a32500890007b0b405ca72405d6db41e)\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e4b73a7aa058be845d3ee2433b8da99fc524d7c1)\nMerged-In: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95\nChange-Id: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95\n"
    },
    {
      "commit": "88855bd120683c82d81ddeb4056561036200d61e",
      "tree": "509014fd2f174f74195fa57faa41cdbd73964a17",
      "parents": [
        "dcda563fb7f59d501493d6e2c6bfa08cac885a7c",
        "894168f2639d7a3567b6a7f7df256feb48dfa88a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 30 07:11:14 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Aug 30 07:11:14 2023 +0000"
      },
      "message": "Merge \"Prevent session destruction on CanvasContext::destroy()\" into udc-qpr-dev am: 894168f263\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24587505\n\nChange-Id: I854750e4ea424cf8d484470126b215c83a243027\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f1376d83da48c5e028a78a19b9cade38908a16b3",
      "tree": "9cdc3f387bcfe2ebc20a9d7454317a324ad363eb",
      "parents": [
        "071a9f92251c56ce865f153c288784b7d2e4db20"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Aug 29 17:55:46 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Aug 29 22:45:21 2023 +0000"
      },
      "message": "Prevent session destruction on CanvasContext::destroy()\n\nWhile sessions not getting destructed on CanvasContext::destroy()\nwas initially suspected as a culprit for a memory leak, there are many\ncases where CanvasContexts are repeatedly destroyed then reused. This\ncaused excessive re-creation and prevented hints from being sent, since\nhints can\u0027t send while waiting for the session, causing regression. The\nsession will ultimately get destroyed in CanvasContext\u0027s destructor, so\nleaving these sessions active for the lifecycle of CanvasContext is\nfine, especially since the session is usually getting reset before new\nwork comes in anyway.\n\nBug: 297604399\nTest: uibench runs of regressed metrics\nChange-Id: I209e40764d5bbcde85d709bccbc41f94f9c2ab49\nMerged-In: I209e40764d5bbcde85d709bccbc41f94f9c2ab49\n(cherry picked from commit 9f3654e683e7c843b848c46747206da0999d6dca)\n"
    },
    {
      "commit": "baed89584854b8fc194f54f9327771fd7bcf1147",
      "tree": "b1717f01021a32d9b81216975dd5349355479b33",
      "parents": [
        "6557fb33034068dfdb9a176f75ec40cde2ce8a58",
        "9f3654e683e7c843b848c46747206da0999d6dca"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Aug 29 21:37:28 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 29 21:37:28 2023 +0000"
      },
      "message": "Merge \"Prevent session destruction on CanvasContext::destroy()\" into main"
    },
    {
      "commit": "9f3654e683e7c843b848c46747206da0999d6dca",
      "tree": "3d730c9f8878cd91ca58574f4cd79dff9ae8fb66",
      "parents": [
        "ac620f64a32500890007b0b405ca72405d6db41e"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Aug 29 17:55:46 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Tue Aug 29 18:23:34 2023 +0000"
      },
      "message": "Prevent session destruction on CanvasContext::destroy()\n\nWhile sessions not getting destructed on CanvasContext::destroy()\nwas initially suspected as a culprit for a memory leak, there are many\ncases where CanvasContexts are repeatedly destroyed then reused. This\ncaused excessive re-creation and prevented hints from being sent, since\nhints can\u0027t send while waiting for the session, causing regression. The\nsession will ultimately get destroyed in CanvasContext\u0027s destructor, so\nleaving these sessions active for the lifecycle of CanvasContext is\nfine, especially since the session is usually getting reset before new\nwork comes in anyway.\n\nBug: 297604399\nTest: uibench runs of regressed metrics\nChange-Id: I209e40764d5bbcde85d709bccbc41f94f9c2ab49\n"
    },
    {
      "commit": "734d810da8d7cd2882f24b5fb3f36220a722d8d2",
      "tree": "39c4f6f3c05a644b1e1d91db9d7de4abdda56a46",
      "parents": [
        "4f5cb1b3b5bc6b062354ba9fca7775d8f9e42d12"
      ],
      "author": {
        "name": "Brian Osman",
        "email": "brianosman@google.com",
        "time": "Tue Aug 29 18:07:56 2023 +0000"
      },
      "committer": {
        "name": "Brian Osman",
        "email": "brianosman@google.com",
        "time": "Tue Aug 29 18:11:11 2023 +0000"
      },
      "message": "[base] Migrate deprecated Vk GrBackendSurface related functions\n\nChange-Id: Ie9b9bb974cb102ded79925e92d5359c1945067f8\n"
    },
    {
      "commit": "aaa8951a509a8c5c35ccbe018902000312220db3",
      "tree": "5500599ec4ff397ac6b0c5ce980ffe993f8d884c",
      "parents": [
        "b74be890a14686f3fe06cfbb967bb7b078fcb8bd",
        "dc2ea290dd674d35343fbc9f8a8d408002601768"
      ],
      "author": {
        "name": "Wei Wang",
        "email": "wvw@google.com",
        "time": "Mon Aug 28 17:13:38 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 28 17:13:38 2023 +0000"
      },
      "message": "Merge \"Fix possible leaks in CanvasContext HintSessionWrapper\" into udc-qpr-dev am: dc2ea290dd\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24557622\n\nChange-Id: Iac528c96caae57186dfd543e7d6e0cc00c95c0f7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "7d3ffbae618e9e728644a96647ed709bf39ae759",
      "tree": "ab369a30c6a0e17a69c8f80c6353be4de3692e10",
      "parents": [
        "a8a87bbca9162af7add830139198c4ee899fa123",
        "8a809c6e46007521f75ac035ad4b1dcc1d00d9cf"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 25 12:59:08 2023 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 25 12:59:08 2023 -0700"
      },
      "message": "Merge Android U (ab/10368041)\n\nBug: 291102124\nMerged-In: I3c9e9d15786fbead1b874636b46844f6c24bccc2\nChange-Id: Id6cf6cc13baef4e67486c6271a1510146204affa\n"
    },
    {
      "commit": "10d75fc5f2e4097338122628566650ca42cd44f4",
      "tree": "10b2d5348c8008bbe759ddfe51fb990b5b101eef",
      "parents": [
        "21c98807fa227afe199c5ef48db2c851c92606ef"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Aug 24 15:56:46 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Aug 25 19:56:37 2023 +0000"
      },
      "message": "Fix possible leaks in CanvasContext HintSessionWrapper\n\nEnsure the mHintSessionFuture is accounted for correctly in the\ndestructor, and proper destruction is taken in CanvasContext::destroy()\nin addition to the destructor.\n\nBug: b/297230599\nTest: manual\nChange-Id: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95\nMerged-In: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95\n(cherry picked from commit ac620f64a32500890007b0b405ca72405d6db41e)\n"
    },
    {
      "commit": "8f4645083ff21d71225b270a4bde33adf7182c31",
      "tree": "e3fbac87d365754f09ad6f04e2242218217cb4a4",
      "parents": [
        "8fcaebb059109592b6bcb65af2abbb52e775715c",
        "ac620f64a32500890007b0b405ca72405d6db41e"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Fri Aug 25 19:55:30 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 25 19:55:30 2023 +0000"
      },
      "message": "Merge \"Fix possible leaks in CanvasContext HintSessionWrapper\" into main"
    },
    {
      "commit": "8fcaebb059109592b6bcb65af2abbb52e775715c",
      "tree": "06bdc0746e0b694db0784834938e2e2704ff8405",
      "parents": [
        "6abeba13a4f955029b5b1a264248a6d42a75bf9f",
        "671a9f66236f8fdee2b15a3bc84cc1139ddda741"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Aug 25 19:42:23 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 25 19:42:23 2023 +0000"
      },
      "message": "Merge \"Tighten up race condition risk in VulkanManager.\" into main"
    },
    {
      "commit": "671a9f66236f8fdee2b15a3bc84cc1139ddda741",
      "tree": "b89c193a6a33670238bfd61c3b1948403b87749f",
      "parents": [
        "025af291d696a93613e72b192dc8e910607ed538"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Aug 25 17:18:02 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Aug 25 17:32:50 2023 +0000"
      },
      "message": "Tighten up race condition risk in VulkanManager.\n\nChecking for mDevice !\u003d null risks using inconsistent state if the\nHardwareBufferUpload thread and the render thread race in setting up\nvulkan. Instead, use an atomic bool and std::call_once to manage\ninitiaizing VulkanManager instances.\n\nBug: 280178674\nTest: builds, boots\nChange-Id: Ic0a1c3ae1939ece536eb57de369232b213236d11\n"
    },
    {
      "commit": "ac620f64a32500890007b0b405ca72405d6db41e",
      "tree": "711c95782d253880e7250f6b2d25e15d74d8e140",
      "parents": [
        "5e309ba6abbb0e4c1fd2fca834b213d5af220c2b"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Aug 24 15:56:46 2023 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Aug 24 23:46:17 2023 +0000"
      },
      "message": "Fix possible leaks in CanvasContext HintSessionWrapper\n\nEnsure the mHintSessionFuture is accounted for correctly in the\ndestructor, and proper destruction is taken in CanvasContext::destroy()\nin addition to the destructor.\n\nBug: b/297230599\nTest: manual\nChange-Id: Idcbd0f2ba87290f090d693f0a64cb46fe8270b95\n"
    },
    {
      "commit": "0341ba5bb3dd33ab7d7a50d49056c4698bd3a2a9",
      "tree": "689b0427c811d36e24a10d7d819529120c8e6eba",
      "parents": [
        "af3eb24f8e68617e7a4686edd6201fea1b0fe59d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 24 11:37:36 2023 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 24 11:37:36 2023 -0400"
      },
      "message": "Don\u0027t access IAllocator from isolated process\n\nFixes: 297302510\nTest: n/a\nChange-Id: If9a3527f5dc52e4cc8080cea2be4e39ed04890e9\n"
    },
    {
      "commit": "85d58379e96e378a60e4915479042a64b8cb1bfa",
      "tree": "fa980095af2d1498b3e8336b267c33cca6b46618",
      "parents": [
        "0cbbd69f096351b189c27ce3eea9a3bd6aaae57d",
        "546041c4b0dc47355344851f046e99cbc249c5dc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 18 17:29:33 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 18 17:29:33 2023 +0000"
      },
      "message": "Merge \"Use String8/16 c_str [graphics]\" into main am: 9ba8706bbf am: ddf7338570 am: 1624ad4632 am: 546041c4b0\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2715835\n\nChange-Id: Id819f98c8c96f4fe2bfeedb6c05c82551261934d\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "1624ad4632c599b75497f73e6d0cf940452c37b5",
      "tree": "401801d6673ca4b40c780c3e305bd1ecbeace8c5",
      "parents": [
        "6caa7cbbec81b2304fea3a98950d202002e98ac1",
        "ddf7338570f22e3aed340d2244676251f24ae6cb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Aug 18 16:37:50 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 18 16:37:50 2023 +0000"
      },
      "message": "Merge \"Use String8/16 c_str [graphics]\" into main am: 9ba8706bbf am: ddf7338570\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2715835\n\nChange-Id: I58315da41fde151f8bba7bf274c6bbd8092092ef\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "cacaee48a9c1c7cba1143caa85ddc94dec7a2033",
      "tree": "1c1cc877889fa486be8c6ced478e976c8e1f725e",
      "parents": [
        "61b5f48d5d5b0dc8432f28d66c85c15edb1e4dc0"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 10 23:54:44 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 17 21:00:30 2023 +0000"
      },
      "message": "Use String8/16 c_str [graphics]\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: I605c6c25c2415bdb4996715f270ee8be9e9d1a23\nMerged-In: I605c6c25c2415bdb4996715f270ee8be9e9d1a23\n"
    },
    {
      "commit": "3f9f863ea038c335d284b95cf2117e6b37e134eb",
      "tree": "e5966195928cba09d6c8dd25942e7b394c63adce",
      "parents": [
        "3e85a02e9fb80d995cd4ddc9871437f8efcd4585"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 10 23:54:44 2023 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Thu Aug 17 20:59:54 2023 +0000"
      },
      "message": "Use String8/16 c_str [graphics]\n\nBug: 295394788\nTest: make checkbuild\nChange-Id: I605c6c25c2415bdb4996715f270ee8be9e9d1a23\n"
    },
    {
      "commit": "07f3d9115236e641b89af8ad9ef5d00017795019",
      "tree": "5f90b3f064450514b319f29ee0554e2d3ed333de",
      "parents": [
        "fc5bf263748d2a0d51f784790fb73cfaf79f7a6d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 17 12:46:44 2023 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 17 12:47:10 2023 -0400"
      },
      "message": "Add TextureView list to dumpsys gfxinfo\n\nTest: dumpsys gfxinfo looking at a textureview\nChange-Id: I57bffad773ef62bfd96998341c5f050c6a87ebde\n"
    },
    {
      "commit": "e088dcdce8ac7a947c2a2e4cd2ba6cea7a28e21c",
      "tree": "ae30522dd57246a56251368789c8a6402f519ffd",
      "parents": [
        "afce62fb455d3790f328b3582e681c6e27e86224"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Aug 10 11:45:58 2023 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Aug 10 22:58:02 2023 +0000"
      },
      "message": "hwui: add reason for skipped frames\n\n.. so we could report the unintentional skipped frames to Perfetto,\nrather than report undrawn frames as well.\n\nTest: manual\nBug: 294884928\nChange-Id: Ic49f4050cb3028d7adb5c930947ff6b72655d832\n"
    },
    {
      "commit": "97a0cbe74456632fdf05dc694a4f02c6cac194e5",
      "tree": "6f765960cf1130afadc20d28d8378f6f6c715518",
      "parents": [
        "ae785ff2704a97de7f770e9ef6dc19d0899d4c5c"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Aug 10 19:29:20 2023 +0000"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Aug 10 19:29:24 2023 +0000"
      },
      "message": "hwui: trace vsyncId for RT animations \n\nChange-Id: I67d4342daa2ad31f6ac32935fbcee6912c1b1943\nTest: manual\n"
    },
    {
      "commit": "7237e47b94720fd7fa56a18070c238b4057ff8d3",
      "tree": "40facb712bd6cad16dfc1112f52cff01ca79103c",
      "parents": [
        "5f5f3f0fee2fc523d0968fcc00526a10f054d5a1"
      ],
      "author": {
        "name": "Nolan Scobie",
        "email": "nscobie@google.com",
        "time": "Fri Aug 04 16:50:41 2023 -0400"
      },
      "committer": {
        "name": "Nolan Scobie",
        "email": "nscobie@google.com",
        "time": "Mon Aug 07 14:04:50 2023 -0400"
      },
      "message": "Use \"HWUI\" LOG_TAG exclusively in libs/hwui/**\n\n\"OpenGLRenderer\" is no longer accurate, and jreck@ has expressed a\ndesire to have all logging unified under one tag to allow for filtering,\nas logcat is quite noisy.\n\nBug: N/A\nTest: builds and *seems* to pass a quick \"#ifndef LOG_TAG\" check to\nsee if LOG_TAG is ever overridden outside of this Android.bp\n\nChange-Id: I8b5413f20a85fb9615bd38778c3262790b7225bf\n"
    },
    {
      "commit": "2c9a2db8316d4bb8bcc803ccd2585d35de9dd48a",
      "tree": "2ebfb60b5da286f5c5f081222467c8c558cda856",
      "parents": [
        "22d86f519c414278dac1cdd918d76ddf98562ac1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 21 16:35:41 2023 -0400"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 21 16:36:33 2023 -0400"
      },
      "message": "Dump gralloc information in dumpsys gfxinfo\n\nThis is really handy information to have and\neven though it\u0027s not strictly speaking in the realm\nof what gfxinfo is responsible for, it\u0027s a good-enough\nplace to shove it so why not\n\nTest: dumpsys gfxinfo com.android.systemui\nChange-Id: I11982eca9460a38471bbb4eab019b2335f6b13a4\n"
    },
    {
      "commit": "cca3bfaa040bd1842c947d57b61491557713b9a5",
      "tree": "59f7122b2cf286dadd367f369ec5f17777e8ab37",
      "parents": [
        "8e4462b48e6ed55c300e5fd5c7fa5beef2c3224c"
      ],
      "author": {
        "name": "Mattias Simonsson",
        "email": "mattiass@google.com",
        "time": "Mon Jul 17 08:03:14 2023 +0000"
      },
      "committer": {
        "name": "Android Build Coastguard Worker",
        "email": "android-build-coastguard-worker@google.com",
        "time": "Tue Jul 18 04:32:00 2023 +0000"
      },
      "message": "Enable VK_EXT_global_priority\n\nThis extension is used to set context priority for Vulkan\nqueues. Without it, Properties::contextPriority is ignored.\n\nBug: 290104871\nTest: Chrome swipe home\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e545f96ec6a1d0da6359a042d3c7f0c701e451f9)\nMerged-In: I362f0f253b466cfcbcebbe79936ae9a5c5261d92\nChange-Id: I362f0f253b466cfcbcebbe79936ae9a5c5261d92\n"
    },
    {
      "commit": "ab581c15c5ef0d0c5f7d05d06959eedbff4ca3c3",
      "tree": "fe9d0da2ecf0511caae2a16e45518ee4fed1e32f",
      "parents": [
        "416f7245879afe991f9f0b2611c66195679ee642",
        "ad58308b43ac78f98d8e8c583ff842f1eccc2ec4"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Jul 18 03:20:02 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 18 03:20:02 2023 +0000"
      },
      "message": "Merge \"Enable VK_EXT_global_priority\" into udc-dev am: 99c28e88c5 am: 34e364018b am: ad58308b43\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24058478\n\nChange-Id: Ia58d04a8d1b9d9d670ca4000eeaf530ab7fdc7c1\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b9064cdc483213199f78babc810e313568d9ccef",
      "tree": "12c550afd7b4053f9832f88d28790c445a3fc57d",
      "parents": [
        "83aa47833c7d5b5c32274cafeb7bd6ab2538bde9",
        "6c8ebad47d1dffd8c45d811bcb56fcfa81aea657"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Jul 18 03:02:21 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 18 03:02:21 2023 +0000"
      },
      "message": "Merge \"Enable VK_EXT_global_priority\" into udc-dev am: 99c28e88c5 am: 6c8ebad47d\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24058478\n\nChange-Id: Iceb75548abc535147c563fc1adb7749a255ff972\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "4af546f114db433a4fa406a3ba86328f402a8b6d",
      "tree": "527c3c308ec9ec404b1d129f43cfe4fcdd27bc40",
      "parents": [
        "163ebb1e9a34109654b2588cb6c0f1cc15530729",
        "37674c23a90571be572eaf01d653626cce65b428"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Jul 18 03:01:03 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 18 03:01:03 2023 +0000"
      },
      "message": "Merge \"Enable VK_EXT_global_priority\" into udc-dev am: 99c28e88c5 am: 37674c23a9\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24058478\n\nChange-Id: I8b5db21c13593de02714c9cb958e1f231adc916d\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e545f96ec6a1d0da6359a042d3c7f0c701e451f9",
      "tree": "36c06fefa831e018647713b74087ca24fbdc666e",
      "parents": [
        "7b715ed99e7b58e59d2271e3516b5c0462a64a59"
      ],
      "author": {
        "name": "Mattias Simonsson",
        "email": "mattiass@google.com",
        "time": "Mon Jul 17 08:03:14 2023 +0000"
      },
      "committer": {
        "name": "Mattias Simonsson",
        "email": "mattiass@google.com",
        "time": "Mon Jul 17 08:29:48 2023 +0000"
      },
      "message": "Enable VK_EXT_global_priority\n\nThis extension is used to set context priority for Vulkan\nqueues. Without it, Properties::contextPriority is ignored.\n\nBug: 290104871\nTest: Chrome swipe home\nChange-Id: I362f0f253b466cfcbcebbe79936ae9a5c5261d92\n"
    }
  ],
  "next": "20a4d68338ca000e3ee0c5c71a01552eab1061e1"
}
