)]}'
{
  "log": [
    {
      "commit": "1303d91354c4deb4c56a2beeafee53684b92c821",
      "tree": "674e0ba0987b0382d504c96221d09cb21531b6df",
      "parents": [
        "e334dd4112538701aeb4cce6b21ab167f91df1ce"
      ],
      "author": {
        "name": "Nathaniel Nifong",
        "email": "nifong@google.com",
        "time": "Wed Oct 06 09:41:24 2021 -0400"
      },
      "committer": {
        "name": "Nathaniel Nifong",
        "email": "nifong@google.com",
        "time": "Mon Dec 06 11:42:36 2021 -0500"
      },
      "message": "Pass fps data to flattener\n\nUse this extra data in determining if a layer should be considered inactive for flattening.\nThe effect is that sub 1 fps layers are cached immediately upon updating.\n\nTest: Unit tests added, and confirmation of the intended effect on R6 during camera recording using\ndumpsys surfaceflinger (expected all CameraLauncher layers to be device composited)\n\nBug: b/192271493\n\nChange-Id: I06f2dd0b3256da5699ffca7347285dc8cf52713c\n"
    },
    {
      "commit": "814a38b32515cb5aa958ff7eab27f90655233715",
      "tree": "c1058bfc9e6612a261bf4e6eeb65333d5ce785bb",
      "parents": [
        "9b3e9971ca5e1ff86ca173b3e5825dbbd7c14701",
        "bc4ca8885126656ea5c419f033abc7ec2abcb3ad"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Tue Nov 30 02:40:21 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Nov 30 02:40:21 2021 +0000"
      },
      "message": "Merge \"Let touch region empty if the input bounds is empty\" into sc-v2-dev am: d0896e2d10 am: bc4ca88851\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16303692\n\nChange-Id: I731dcb394a1424edb401021fd8d52e189a0ffb10\n"
    },
    {
      "commit": "bc4ca8885126656ea5c419f033abc7ec2abcb3ad",
      "tree": "8ad000d0819c2a2199d57079e197544006669a1b",
      "parents": [
        "a1fd504439eea3e6c1a70a94e09690ac0ab43ee4",
        "d0896e2d109a04451566e68a5c7ebb4c10b3113d"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Tue Nov 30 02:22:51 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Nov 30 02:22:51 2021 +0000"
      },
      "message": "Merge \"Let touch region empty if the input bounds is empty\" into sc-v2-dev am: d0896e2d10\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16303692\n\nChange-Id: I160185b734fa4a766a0eb06881424d9e70eae35f\n"
    },
    {
      "commit": "d0896e2d109a04451566e68a5c7ebb4c10b3113d",
      "tree": "a0653e982c6af883ab66a27c0c51cdbea2026df9",
      "parents": [
        "f2cf7639a80206c43c83cf6076998b45f4feb24b",
        "49d525aa2a1c4d9291d544f2c46e512038ac46bc"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Tue Nov 30 02:07:16 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 30 02:07:16 2021 +0000"
      },
      "message": "Merge \"Let touch region empty if the input bounds is empty\" into sc-v2-dev"
    },
    {
      "commit": "6bb31e5d20ce9eee579009061d3787816df246c9",
      "tree": "616da6e8784673a5221e73b1f788ebd0150482ef",
      "parents": [
        "772b32776fb14cce1f03ce87676aacaf9f877565",
        "a1fd504439eea3e6c1a70a94e09690ac0ab43ee4"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Nov 29 20:35:51 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 29 20:35:51 2021 +0000"
      },
      "message": "Merge \"SF: Fix duplicate callbacks from mirrored layers\" into sc-v2-dev am: f2cf7639a8 am: a1fd504439\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16358662\n\nChange-Id: I7e0001d176358f8c21ad54ee0fed10d8fa272aa5\n"
    },
    {
      "commit": "a1fd504439eea3e6c1a70a94e09690ac0ab43ee4",
      "tree": "a61436c1ad035a75ced19afe28fbbbefe06d37ba",
      "parents": [
        "6c63e8e375a9a6606cca9667196dff4e29ccb2db",
        "f2cf7639a80206c43c83cf6076998b45f4feb24b"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Nov 29 20:18:59 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Nov 29 20:18:59 2021 +0000"
      },
      "message": "Merge \"SF: Fix duplicate callbacks from mirrored layers\" into sc-v2-dev am: f2cf7639a8\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16358662\n\nChange-Id: I56de42f07911445ad5672ecd4a10776cdc24dbcd\n"
    },
    {
      "commit": "3bb11d07d941a7db96eefd389862fa1d87c810fc",
      "tree": "50e94f389a56a68841a477b898b26f535e569d5d",
      "parents": [
        "3316c9775acab304c5f790b6fa48a576563b7bcc"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Nov 26 09:24:11 2021 -0800"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Nov 29 18:18:02 2021 +0000"
      },
      "message": "SF: Fix duplicate callbacks from mirrored layers\n\nWhen cloning layers, we would also clone the layer\u0027s\ncallback handles which resulted in SF emitting duplicate\ncallbacks.\n\nTest: presubmit\nTest: launcher does not ANR when switching wallpapers with screen recording enabled\nBug: 205922358\n\nChange-Id: Ic0435164f27d9bca7f80fc57d9021a9f544c936f\n"
    },
    {
      "commit": "d5e0d0d591f9d708b241a9ec5c04f93c1eef225c",
      "tree": "dc4c2847eaca1cab783cf1cee67ca7a767b1d0eb",
      "parents": [
        "7360d4323e99ee19efc942295ed123fc78b1546e",
        "f5d0ea545aaea01d8d73ad97603619ec3874a2e7"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Nov 22 18:17:43 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 22 18:17:43 2021 +0000"
      },
      "message": "Merge \"SF: Remove manual enum stringification\""
    },
    {
      "commit": "49d525aa2a1c4d9291d544f2c46e512038ac46bc",
      "tree": "9dbfb3d1f3cc3d670d3b0bf83749816221a1053a",
      "parents": [
        "11595687cb64ef66b390deaf9aca9f891423afd5"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Nov 19 15:11:51 2021 +0000"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Mon Nov 22 05:50:47 2021 +0000"
      },
      "message": "Let touch region empty if the input bounds is empty\n\nIf the input bounds is empty, we should let the touch region empty so\nit could prevent receiving touch without valid bounds.\n\nBug: 204747595\nTest: atest InputSurfacesTest\nChange-Id: Iee59c437a084ca9db6936af7a4852190169518d9\n"
    },
    {
      "commit": "f5d0ea545aaea01d8d73ad97603619ec3874a2e7",
      "tree": "cd44326adcfa54fe0292c9279e40720b4f9d3c34",
      "parents": [
        "079ec332de6012a59a4bfa4ed9ba967189e0f4da"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Sun Sep 26 17:27:01 2021 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Nov 19 12:53:03 2021 -0800"
      },
      "message": "SF: Remove manual enum stringification\n\nUpgrade to scoped enums where applicable. Pull GameMode from TimeStats\ninto libgui to plumb it as an enum rather than int32_t.\n\nBug: 185536303\nTest: libsurfaceflinger_unittest\nChange-Id: I81fdd24805757ef953484055ee867684eb94fecf\n"
    },
    {
      "commit": "068173d9076ca25fa5cc008a116e4ec22503b9be",
      "tree": "8a4a8e603eaa40dcf79a2a75f8c64ecf3d0717b3",
      "parents": [
        "079ec332de6012a59a4bfa4ed9ba967189e0f4da"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Aug 11 17:22:59 2021 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Nov 19 15:58:39 2021 +0000"
      },
      "message": "SF: Add VsyncSchedule skeleton\n\nPull the Scheduler::VsyncSchedule struct and related code into its own\nfile, as it will be extended with more per-display state, e.g. reactor\nregistrations, resync state machine, etc.\n\nAdd \u003cscheduler/Features.h\u003e for feature flags. Move Scheduler into its\nnamespace.\n\nBug: 185535769\nTest: libsurfaceflinger_unittest\nChange-Id: I6e10893632c5abf40380df924791d1fcc27c3cc2\n"
    },
    {
      "commit": "0287549af5956d2117aaab0863140febd575d5fc",
      "tree": "d889c8e95d6e81dec1f2b3cc749e3a227e3599ed",
      "parents": [
        "695f28e4fd0e807ddc4c8f7a148613f3be15a7bd",
        "00b9013d323caceec2528326809bf65d50c39c72"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 10 17:20:15 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 10 17:20:15 2021 +0000"
      },
      "message": "Merge \"SF: Simplify layer tracing\""
    },
    {
      "commit": "3704e31f35dd1211669bb2e33a7f51b20c8e63f4",
      "tree": "3c0a979ea7a63c067df543595bb4df5aca49eff7",
      "parents": [
        "982775d747c7767b79b955dccf7f8ec9f400035d",
        "7fb9e5a047292114552ba6523bd790269b6cf937"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 09 17:02:09 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 09 17:02:09 2021 +0000"
      },
      "message": "Merge \"SF: Create layers with layerid\""
    },
    {
      "commit": "ad88bf96b95f09a99966eeec41c9bdd67a4f3946",
      "tree": "9a0bae27ae50c85017598b895ac2c5b96b007dd9",
      "parents": [
        "f10a918703f020e18082a5faeab1031045c6dcbb",
        "a5505cb8fa988023685e8d67fcc8117ee7c63b1e"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Nov 09 15:41:39 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 09 15:41:39 2021 +0000"
      },
      "message": "Merge \"Revert \"SurfaceFlinger: Emit callbacks for non-buffer layer transactions\"\""
    },
    {
      "commit": "a5505cb8fa988023685e8d67fcc8117ee7c63b1e",
      "tree": "00af6e96bb97ca397dac732d895ef789f4375847",
      "parents": [
        "da1fd1508c914c7f0849e4e00a5fae5412433337"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Nov 09 11:46:30 2021 +0000"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue Nov 09 11:46:30 2021 +0000"
      },
      "message": "Revert \"SurfaceFlinger: Emit callbacks for non-buffer layer transactions\"\n\nThis reverts commit da1fd1508c914c7f0849e4e00a5fae5412433337.\n\nReason for revert: Potential culprit CL for broken test b/205501709\n\nChange-Id: Iece745e0690f4d31b93918697b306ded3abfd0d0\n"
    },
    {
      "commit": "00b9013d323caceec2528326809bf65d50c39c72",
      "tree": "00b4b9f581ecdbd1030c3846079c363529d60b7e",
      "parents": [
        "7fb9e5a047292114552ba6523bd790269b6cf937"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Nov 05 14:03:40 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Nov 08 13:40:35 2021 -0800"
      },
      "message": "SF: Simplify layer tracing\n\nAs preparation to support transaction tracing, do the\nfollowing:\n1. refactor the ring buffer code so it can be reused\n2. remove layer async tracing since we will use\ntransaction tracing for always on tracing\n\nTest: presubmit\nTest: capture sf trace via bugreport\nBug: 200284593\n\nChange-Id: I28388c6db27a420c078e1cc33b0b378c55c6c5d6\n"
    },
    {
      "commit": "7fb9e5a047292114552ba6523bd790269b6cf937",
      "tree": "7a41eabc7a76608f408f5081fe8102825e8866e6",
      "parents": [
        "c9963a2d6e1b8751541fa395115311bd50b90b87"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Nov 08 12:44:05 2021 -0800"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Nov 08 13:40:34 2021 -0800"
      },
      "message": "SF: Create layers with layerid\n\nWhen recreating layer states from transaction traces\nwe need to create layers with a specific layer id.\n\nAdd the layer id as part of LayerCreationArgs and pass\nthe struct around instead of individual args.\n\nTest: presubmit\nBug: 200284593\nChange-Id: I029cdb5362d1926deaf2ce64f70a1882a418705b\n"
    },
    {
      "commit": "040744c6d6ac0a7efea8c4d66813803669c34e83",
      "tree": "6a07ab3c229b8c2edcfd03e4f2bd712c80b86ff9",
      "parents": [
        "d209221a38e6ffa9e026f7f27731ec7c9e24ddf9",
        "da1fd1508c914c7f0849e4e00a5fae5412433337"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Nov 05 18:08:11 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 05 18:08:11 2021 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Emit callbacks for non-buffer layer transactions\""
    },
    {
      "commit": "d209221a38e6ffa9e026f7f27731ec7c9e24ddf9",
      "tree": "9a184684bf6a0e17a6b2943e3d616f0d30e5d69c",
      "parents": [
        "e10d2a3a23c09be843f07989fbbb4accfe8128c5",
        "82de19bc5532d68df8f497062882d8d594a4f8f2"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Fri Nov 05 17:46:38 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 05 17:46:38 2021 +0000"
      },
      "message": "Merge \"Remove dead code around use_frame_rate_api\""
    },
    {
      "commit": "da1fd1508c914c7f0849e4e00a5fae5412433337",
      "tree": "6acc5a1bebfb8d144a954e3b0b4d8a4c06aa537f",
      "parents": [
        "cd52e2db6c57326c1380cd53e9520adc7faf5ec9"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 18 09:36:33 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Nov 04 22:32:51 2021 +0000"
      },
      "message": "SurfaceFlinger: Emit callbacks for non-buffer layer transactions\n\nEnsure we emit callbacks if the transaction contains only non-buffer\nlayer state changes.\n\nTest: atest SurfaceFlinger_test\nFixes: 205183085\nChange-Id: I56bf0dcaff4312628fe2cd1d0b93db520518ec54\n"
    },
    {
      "commit": "66b29b5cb4fa5d1f9ed8c155c2771c0102af57dc",
      "tree": "3bde8325a975dcffca2c46c4442536c25e81178f",
      "parents": [
        "3b37f10b377f63868d333ff07588d02fa6ffc066",
        "8ab6e7de468ab9ccb43f46e67f554ff7a8b1fbcf"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Nov 03 16:49:26 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Nov 03 16:49:26 2021 +0000"
      },
      "message": "Merge \"CompositionEngine: Update blur state correctly\" into sc-v2-dev am: 8ee4246c4b am: 8ab6e7de46\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16177243\n\nChange-Id: I94d1dd0978fdb1e63e32ed28e21e1d4188490975\n"
    },
    {
      "commit": "8ab6e7de468ab9ccb43f46e67f554ff7a8b1fbcf",
      "tree": "60c9640bdc60b2ee9b03fcd6e66d1cfb073e90f3",
      "parents": [
        "efcf48a6de11a6665ed7c013c766b7e87326c795",
        "8ee4246c4b432e30b38bdd9fa909a8004e944b41"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Nov 03 16:18:32 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Nov 03 16:18:32 2021 +0000"
      },
      "message": "Merge \"CompositionEngine: Update blur state correctly\" into sc-v2-dev am: 8ee4246c4b\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16177243\n\nChange-Id: Ie1bfa2af4c5e64f4a77c14d15a32e4857c4d665f\n"
    },
    {
      "commit": "b801a98e4d24f9ac106d8e5dbd52425eb29f582b",
      "tree": "d2862c4ee926dc2aa1be928f72ba3981ece99995",
      "parents": [
        "e6adce5936314c85b739c3a0297fe601100e6284"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Nov 02 15:12:08 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Nov 02 23:19:43 2021 +0000"
      },
      "message": "CompositionEngine: Update blur state correctly\n\nPreviously when blur state (blur radius or blur region) was\nupdated, we would recompute visible regions. This is not\nnecessary and triggers expensive visible region checks that\nmay contribute to sf missing the frame deadline.\n\nFix this by only triggering a visible region change if we\nstart or stop drawing blur. In addition, when visible region\ndoes not change, update the blur parameters so Composition\nEngine picks up the most up-to-date blur parameters.\n\nTest: atest libcompositionengine_test\nFixes: 202589767\n\nChange-Id: I442f190d92d6b911bb6bd9b4a440e0dcdbd7fb2e\n"
    },
    {
      "commit": "82de19bc5532d68df8f497062882d8d594a4f8f2",
      "tree": "c07dee9e837c126478d53692c6089aad2bdef3cd",
      "parents": [
        "ccfc0b73ad209627efa7eb8039ff3dd881f4915b"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Thu Oct 28 16:34:42 2021 +0200"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Thu Oct 28 18:09:17 2021 +0200"
      },
      "message": "Remove dead code around use_frame_rate_api\n\nThere\u0027s no se polixy for ro.surface_flinger.use_frame_rate_api\nand it cannot be used by vendors, so the code is dead. Removing\nit cos there isn\u0027t a use case for disabling this API.\n\nBug: 199911262\nTest: n/a\nChange-Id: I45aabf5ced73d565a5d7adc73971f3615dde0abe\n"
    },
    {
      "commit": "28bbee8549d76b4e05190039285675ea19755b61",
      "tree": "5fba9876deeced72e85ce5cf1e6044a436b9a611",
      "parents": [
        "2f29049116054171e50a9f8fba0511d4e7720941",
        "c6d2d2b11684f6d306ef0fd12c909b185158e889"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 25 18:21:39 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 25 18:21:39 2021 +0000"
      },
      "message": "Merge \"Revert \"Layer: Use raw pointers for Current/Drawing parent\"\""
    },
    {
      "commit": "c6d2d2b11684f6d306ef0fd12c909b185158e889",
      "tree": "8d69fb19c30e2b146e63d368e4d1268c455d7bf2",
      "parents": [
        "cbdb79a195e6c690e16948a7e7c3abbd36414b17"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Mon Oct 25 16:51:49 2021 +0000"
      },
      "committer": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Mon Oct 25 16:51:49 2021 +0000"
      },
      "message": "Revert \"Layer: Use raw pointers for Current/Drawing parent\"\n\nThis reverts commit cbdb79a195e6c690e16948a7e7c3abbd36414b17.\n\nBug: 203175614\nBug: 203559094\nChange-Id: I5432ad46bfbbe5a009e3fb72ae7ac129263260ce\n"
    },
    {
      "commit": "23e07500a900bed481d87f0118392966244f36b8",
      "tree": "796a6e9159e388edc316df35ffeb4211cbd87517",
      "parents": [
        "4746c855fb82bda50ca5c4cccbcd84f264f0b4a4"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Oct 15 11:58:19 2021 +0000"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Thu Oct 21 14:31:39 2021 +0000"
      },
      "message": "Compute unique layer name in with sequence\n\nRemove \u0027getUniqueLayerName\u0027 so we could remove stack lock from\n\u0027createLayer\u0027.\n\nBug: 202621651\nTest: atest libsurfaceflinger_unittest\nTest: atest SurfaceFlinger_test\nChange-Id: If5f4386b6da99bd540231b0c197c59a5823d7d4a\n"
    },
    {
      "commit": "8fbf71314b533fc33c1b08485ae9d291cbbc3ec7",
      "tree": "716cfdc2cdeeb87bf20b70d1f49199f3c0691a19",
      "parents": [
        "4497fa8b12634ccf6b3cd716ca0ed5c0294ad761",
        "6eab42d7b60dd1fc23af7f38770fb4d7e23cec79"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 20 18:00:13 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 20 18:00:13 2021 +0000"
      },
      "message": "Merge \"SF: Polish Fps class\""
    },
    {
      "commit": "6eab42d7b60dd1fc23af7f38770fb4d7e23cec79",
      "tree": "82fe9640191536534eba1b5fffe30878353dd9f5",
      "parents": [
        "c5f9d585efa6ca354f08498ed8787ae1e44a86eb"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Sep 13 14:34:13 2021 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Oct 14 22:26:43 2021 -0700"
      },
      "message": "SF: Polish Fps class\n\nFor consistent comparison (which will later be changed to check ULP\ndistance instead of the magnitude-dependent threshold), express the\ninequality operators in terms of equality, and avoid hashing floats.\n\nAdd Hz literals and (namespaced) operators.\n\nBug: 129481165\nBug: 185535769\nTest: libsurfaceflinger_unittest\nTest: dumpsys SurfaceFlinger --vsync\nChange-Id: I79be5d2dd031218c4054774d2645efb337211538\n"
    },
    {
      "commit": "59a9f506c7293fdee01482a4bb532df953600d4c",
      "tree": "d0e102a21a673d6b7eb9fed85cfd6a7376685193",
      "parents": [
        "08a97163caa30c57a8cbad571a358dd97a838e70"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Tue Oct 12 18:53:23 2021 +0000"
      },
      "committer": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Thu Oct 14 21:26:26 2021 -0700"
      },
      "message": "Revert^2 \"Second Patch for async RenderEngine\"\n\nKeep the change of Second Patch for async RenderEngine and fix the\nregression\n\n- remove the vector variables which is to store futureFence locally in\nBufferStateLayer to get avoid fd leaking\n- screenshots initiated from the app don\u0027t wait on the SF main thread.\n\n2109270e74a18585aceffc94d1758cee47bb4175\n\nBug: 202843200\nBug: 202833127\nBug: 202808760\nTest: Wembley PIN setting test, NexusLauncherOutOfProcTests\nChange-Id: I87847d01e2e330ddec88272cd8608f0b78c0a2cd\n"
    },
    {
      "commit": "2109270e74a18585aceffc94d1758cee47bb4175",
      "tree": "8f1e2c71e0b70f89c15ac207a2847f132a1a7363",
      "parents": [
        "403a05bc88c5aa6671adcf4214c2a531f77ac2a4"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 12 12:43:47 2021 +0000"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue Oct 12 17:14:21 2021 +0000"
      },
      "message": "Revert \"Second Patch for async RenderEngine\"\n\nRevert \"Fix vender implementation due to second patch of async R...\"\n\nRevert submission 15644535-asyncRenderEngineV2\n\nReason for revert: Broke multiple tests\nReverted Changes:\nI772122750:Fix vts cases due to function change for async ren...\nI615f2927d:Second Patch for async RenderEngine\nI3f47b8b67:Fix vender implementation due to second patch of a...\n\nBug: 202803359\nBug: 202808760\nChange-Id: Ib8ef68747621b7114cf2d1dfb856292674729744\n"
    },
    {
      "commit": "403a05bc88c5aa6671adcf4214c2a531f77ac2a4",
      "tree": "f5d93d3b2d3815af4f7d5db4fb67936fa33ac5de",
      "parents": [
        "5795d387464674f24e842ac2ea3477507748b5de"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Fri Aug 20 16:28:35 2021 -0700"
      },
      "committer": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Mon Oct 11 16:46:01 2021 -0700"
      },
      "message": "Second Patch for async RenderEngine\n\n- pass a vector of \u003cLayerSettings\u003e instead of a vector of pointers to\ndrawLayers function to ensure lifecycle safety.\n- capture all local variables to call drawLayerInternals in the render\nengine thread to avoid of pointers being invalidated if it takes long\ntime to pop mFunctions calls.\n- change renderScreenImplLocked return type as a shared_future\nobject to unblock SF main thread for screen capture events.\n- block region sampling thread only when SF main thread hasn\u0027t\ncompleted capture screen event.\n\nBug: 180657548\nTest: SurfaceFlinger_test, android.hardware.graphics.composer@2.2-vts, libcompositionengine_test, librenderengine_test, libsurfaceflinger_unittest pass\nChange-Id: I615f2927d30524988fb12df22fe331e7217c3058\n"
    },
    {
      "commit": "cbdb79a195e6c690e16948a7e7c3abbd36414b17",
      "tree": "8581393599c44607b26070f85c48a84c7d10ddb7",
      "parents": [
        "9666ac5932806ba3dc1350f984818669414535e4"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 11 16:10:45 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Oct 08 11:48:12 2021 -0700"
      },
      "message": "Layer: Use raw pointers for Current/Drawing parent\n\nWe should only be reading/writing this from the main thread\nand likewise we only delete layers on the main thread and\nso using raw pointers and managing the lifetime from the\nLayer destructor will be safe. This significantly decreases\noverhead in various code that traverses via parent (getAlpha,\nisVisible, etc...).\n\nTest: Existing tests pass. simpleperf\nBug: 186200583\nChange-Id: I45745f7c865177ddfe9105d1440a9fa8f3470823\n"
    },
    {
      "commit": "9666ac5932806ba3dc1350f984818669414535e4",
      "tree": "8d69fb19c30e2b146e63d368e4d1268c455d7bf2",
      "parents": [
        "0af0e0632f82bf551a8de44e7f242682c739a1ce",
        "0a13ecc974ef0edcd8b985bf372abc3a1ef00f6b"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Oct 08 15:45:56 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Oct 08 15:45:56 2021 +0000"
      },
      "message": "SurfaceFlinger: Don\u0027t render rounded corners without a valid crop am: b18455930e am: 0a13ecc974\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16009809\n\nChange-Id: Ic644e38cd1f480373b1b37b41b65aace28855f0d\n"
    },
    {
      "commit": "0a13ecc974ef0edcd8b985bf372abc3a1ef00f6b",
      "tree": "77b11d48a451202fc8af73a48cf6bc76fd89cc19",
      "parents": [
        "4f554390c18d1ddcf0efb6a716b4ff1c1d4a8dc6",
        "b18455930e470aa8ec72470d2dfddd51b0a61b95"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Oct 08 15:29:49 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Oct 08 15:29:49 2021 +0000"
      },
      "message": "SurfaceFlinger: Don\u0027t render rounded corners without a valid crop am: b18455930e\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/16009809\n\nChange-Id: Iec66b9ad4f55936fb8c22ae28853198c8beb87bb\n"
    },
    {
      "commit": "b18455930e470aa8ec72470d2dfddd51b0a61b95",
      "tree": "b0ed662e716bb7498a3998659da5d6f7d63fff1a",
      "parents": [
        "0363ad304fb6ab82724ac7766a067708501c8f34"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 07 12:17:57 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 07 20:15:58 2021 +0000"
      },
      "message": "SurfaceFlinger: Don\u0027t render rounded corners without a valid crop\n\nA behaviour difference introduced by I6975332392756d3d96fed1d6f81245a9c7bf0a19\nThis will cause layers to not render if there is a corner radius\nleft behind.\n\nTest: SurfaceFlinger_test\nTest: repro steps in bug\nBug: 200781179\nChange-Id: Ie2548fc37bb7676c10be69130d04f93e7323e79b\n"
    },
    {
      "commit": "b4ba8f5c269b6d82a09f779dc3336ece4c04c053",
      "tree": "c890be2259d2554b920439e40504cb7cd36c16b2",
      "parents": [
        "187489657e13f5910961180af7aefb0f7c4c765a"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Sep 27 18:20:58 2021 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Oct 01 15:07:29 2021 -0700"
      },
      "message": "SF: Fix -Wunused-but-set-variable\n\nSoong appends -Wno-error\u003dunused-but-set-variable, negating SF\u0027s -Werror.\n\n- The type and appId variables are VR remnants.\n- TimeStats::canAddNewAggregatedStats compared apples and oranges.\n\nBug: 129481165\nTest: No warnings on clean build\nChange-Id: I071e71148a269bf9ab9a5e930a775b4ae6564916\n"
    },
    {
      "commit": "16a938f8da032c60e5e243838c1fa214d78908c5",
      "tree": "5cae71c7178a5fe2a660fc00e23ce050799e85c1",
      "parents": [
        "1293c3598b51839bc3625fd1879e16c00184e298"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 24 07:14:54 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 24 20:26:43 2021 +0000"
      },
      "message": "SurfaceFlinger: Drop input for blacked out layers\n\nIf the window will be blacked out on a display because\nthe display does not have the secure flag and the layer\nhas the secure flag set, then drop input.\n\nTest: atest libgui_test\nFixes: 200842159\nChange-Id: Idfe245b0f0091e0cafc15c83b25a9d0fd7364174\n"
    },
    {
      "commit": "20bd96f6f11debdb1fe950b35b25fc732e2bc471",
      "tree": "e4037d397e7d687005eb5a34ee833db4b19ca195",
      "parents": [
        "13f718c14b5929aa1e46fd552c0d6f130b178779",
        "fb06059fa68095ba9d5e251cffb98a3262fb9027"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Sep 22 21:20:31 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 22 21:20:31 2021 +0000"
      },
      "message": "SurfaceFlinger: Implement drop input modes am: fb06059fa6\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15759272\n\nChange-Id: I11def94e755bd988129253d6fb0f1d0fafc62539\n"
    },
    {
      "commit": "fb06059fa68095ba9d5e251cffb98a3262fb9027",
      "tree": "6a1fd441daa863aec9458f4493a19b192eeceeef",
      "parents": [
        "c469011bcfc3a0c36000c791f96522a9b3b98705"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Sep 13 18:40:17 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Sep 22 19:04:04 2021 +0000"
      },
      "message": "SurfaceFlinger: Implement drop input modes\n\nALL: If this mode is set on a layer, set the DROP_INPUT\nfeature flag on the layer and its children if it has a valid input\nchannel. This will ensure these layers will not be able to receive any\ninput.\n\nOBSCURED: If this mode is set, set the DROP_INPUT\nfeature flag on the layer and its children if they have a valid input\nchannel and they are considered occluded. This can happen if the layer\nhas a alpha set by it\u0027s parent OR if its buffer has been cropped by its\nparent. Otherwise, the input feature flag DROP_INPUT_IF_OBSCURED flag\nwill be set so inputflinger can decide to drop input based on\nocclusion.\n\nTest: atest libgui_test InputDispatcherDropInputFeatureTest\nBug: 197364677\nMerged-In: Ibce11ee7df5b5c8c226ebfab29574a99cd656f6d\nChange-Id: Ibce11ee7df5b5c8c226ebfab29574a99cd656f6d\n"
    },
    {
      "commit": "a066d908f6fe28e63ae49327b57fcd31d63fba2d",
      "tree": "dfcf7b00c3b7bad628dd41274baeb59b7b03d241",
      "parents": [
        "1cbc2ca67a12546fe7de8101c02c767254a0e4d2"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Sep 13 18:40:17 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Sep 21 17:59:18 2021 +0000"
      },
      "message": "SurfaceFlinger: Implement drop input modes\n\nALL: If this mode is set on a layer, set the DROP_INPUT\nfeature flag on the layer and its children if it has a valid input\nchannel. This will ensure these layers will not be able to receive any\ninput.\n\nOBSCURED: If this mode is set, set the DROP_INPUT\nfeature flag on the layer and its children if they have a valid input\nchannel and they are considered occluded. This can happen if the layer\nhas a alpha set by it\u0027s parent OR if its buffer has been cropped by its\nparent. Otherwise, the input feature flag DROP_INPUT_IF_OBSCURED flag\nwill be set so inputflinger can decide to drop input based on\nocclusion.\n\nTest: atest libgui_test InputDispatcherDropInputFeatureTest\nBug: 197364677\nChange-Id: Ibce11ee7df5b5c8c226ebfab29574a99cd656f6d\n"
    },
    {
      "commit": "933c2b56be281b5fc4e89d4e6fe1fafed5825584",
      "tree": "01f14ebb9336b33103f63b1106ab65ef95ada15e",
      "parents": [
        "f47f40f2d70103802bb0b615da1dbab98449b41f",
        "35c7a25c56aa82ee92382468c5e58ce17c1bf8e6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 21 15:46:14 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 21 15:46:14 2021 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Handle multiple rounded corner settings\" into sc-v2-dev am: a704aa66c2 am: 35c7a25c56\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15848441\n\nChange-Id: I807acc7a7042f9fb29569f46f72948cb3111ff08\n"
    },
    {
      "commit": "a46f3d7bfb19705a7afb285253181245d94f52e6",
      "tree": "b2fb739ab228de80c710f2189e3c4e3da99d28d4",
      "parents": [
        "a704aa66c2adfaf95082b965d12b0fdc7a0af801",
        "50c735592ec73c34c62dd983a2dc00a1904b1d4d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 21 15:37:30 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 21 15:37:30 2021 +0000"
      },
      "message": "Merge \"SurfaceControl: Add setDropInputMode api\" into sc-v2-dev"
    },
    {
      "commit": "35c7a25c56aa82ee92382468c5e58ce17c1bf8e6",
      "tree": "0e28ba9c30634a0bf8264c532f2d394207043251",
      "parents": [
        "9b0162bae4db45748c5fc7f1dea17e54eb3e72cf",
        "a704aa66c2adfaf95082b965d12b0fdc7a0af801"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 21 15:31:39 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 21 15:31:39 2021 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Handle multiple rounded corner settings\" into sc-v2-dev am: a704aa66c2\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15848441\n\nChange-Id: Ifdf063f0d331875e5b260511f5dad88662dca5c1\n"
    },
    {
      "commit": "4f2ea10357be90b703c1e459fe3a0d346cd0c97d",
      "tree": "fd677be3a5b29d10ae8c24078fb269a78f822dfe",
      "parents": [
        "c50b4e8985196cf7cf2adb0195c14a52bb1e1f62"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Sep 02 09:52:48 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Sep 20 23:23:09 2021 +0000"
      },
      "message": "SurfaceControl: Add setDropInputMode api\n\nIntroduces an API to drop input events on this SurfaceControl. This\npolicy will be inherited by its children. The caller must hold the\nACCESS_SURFACE_FLINGER permission.\n\nOptions include:\nALL: SurfaceControl and its children will not receive any\ninput regardless of whether it has a valid input channel.\nOBSCURED: SurfaceControl and its children will not\nreceive any input if the layer is obscured, cropped by its parent or\ntranslucent.\n\nThese policies are used to enable features that allow for a less trusted\ninteraction model between apps. See the bug for more details.\n\nTest: atest libgui_test InputDispatcherDropInputFeatureTest\nBug:197364677\n\nMerged-In: I443741d5ab51a45d37fb865f11c433c436d96c1e\nChange-Id: I443741d5ab51a45d37fb865f11c433c436d96c1e\n"
    },
    {
      "commit": "9dbf8e89a721b984efc2f73e52fab0ff1ff73771",
      "tree": "aa682461706aa8702881b9e4fcae91aaeb21a23b",
      "parents": [
        "ad87cd09342c0cc209afe2e54aae3096ca7366f0"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Sep 16 16:24:47 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Sep 20 21:07:23 2021 +0000"
      },
      "message": "SurfaceFlinger: Handle multiple rounded corner settings\n\nCurrent implementation gives precedence to the parent layers rounded\ncorner settings. This causes surprising artifacts when rounded\ncorners are applied at different parts of the hierarchy. For example,\nthe pip window\u0027s rounded corner will disappear during animation if\nthe animation leash also applies a rounded corner.\n\nIdeal fix is to support overlapping corner radius settings. But for\nmost cases, we can fix this with a simple heuristic. A layer will\nuse its own rounded corner settings. If the layer does not have any\nrounded corner settings, then its closest parent rounded corner\nsettings will be used. A parent can override the child\u0027s rounded\ncorner settings if its crop is entirely inside the child\u0027s\nrounded corner crop.\n\nWhat this fixes:\nScenarios where both child and parent set a rounded corner radius\nwill draw the rounded corner on the child correctly. Example,\npip with onehanded mode.\n\nWhat doesn\u0027t change:\nLayers will a single rounded corner radius its hierarchy remains\nthe same.\n\nWhat\u0027s still broken:\nIf a child\u0027s rounded corner intersects with the parent\u0027s rounded\ncorner, then the child will draw over the parent\u0027s rounded\ncorner region. Example pip with onehanded mode and the pip\nwindow is dragged to the top right corner.\n\nTest: SurfaceFlinger_test\nFixes: 191993356\nChange-Id: I6975332392756d3d96fed1d6f81245a9c7bf0a19\n"
    },
    {
      "commit": "50c735592ec73c34c62dd983a2dc00a1904b1d4d",
      "tree": "49d441fd52ba265fe814dd015b3b63a0168dba56",
      "parents": [
        "214040a792c4f9793421b017019d0dc53d2de6ca"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Sep 02 09:52:48 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Sep 20 17:38:33 2021 +0000"
      },
      "message": "SurfaceControl: Add setDropInputMode api\n\nIntroduces an API to drop input events on this SurfaceControl. This\npolicy will be inherited by its children. The caller must hold the\nACCESS_SURFACE_FLINGER permission.\n\nOptions include:\nALL: SurfaceControl and its children will not receive any\ninput regardless of whether it has a valid input channel.\nOBSCURED: SurfaceControl and its children will not\nreceive any input if the layer is obscured, cropped by its parent or\ntranslucent.\n\nThese policies are used to enable features that allow for a less trusted\ninteraction model between apps. See the bug for more details.\n\nTest: atest libgui_test InputDispatcherDropInputFeatureTest\nBug:197364677\n\nMerged-In: I443741d5ab51a45d37fb865f11c433c436d96c1e\nChange-Id: I443741d5ab51a45d37fb865f11c433c436d96c1e\n"
    },
    {
      "commit": "9cf4a4d4e57d059a4e4119f0a8f2a8be237f28c2",
      "tree": "d2e108395e328d83a579ed1cff54d803329b0342",
      "parents": [
        "133b3bc5a2bb7dec195a571ce718410d3b45d800"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 17 12:16:08 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 17 12:16:08 2021 -0700"
      },
      "message": "SurfaceControl: Add setDropInputMode api\n\nIntroduces an API to drop input events on this SurfaceControl. This\npolicy will be inherited by its children. The caller must hold the\nACCESS_SURFACE_FLINGER permission.\n\nOptions include:\nALL: SurfaceControl and its children will not receive any\ninput regardless of whether it has a valid input channel.\nOBSCURED: SurfaceControl and its children will not\nreceive any input if the layer is obscured, cropped by its parent or\ntranslucent.\n\nThese policies are used to enable features that allow for a less trusted\ninteraction model between apps. See the bug for more details.\n\nTest: atest libgui_test InputDispatcherDropInputFeatureTest\nBug:197364677\n\nChange-Id: I443741d5ab51a45d37fb865f11c433c436d96c1e\n"
    },
    {
      "commit": "42649635ddc372df66abc5760c811b5229ecc437",
      "tree": "419bcf9d65e27e2ed8164202f575b03ef53c35e5",
      "parents": [
        "4eeba11bc9124b62522fc1394e59f00dd403f075",
        "48f8cb998c61fcad3db9ca7bbebc9e424844e6e2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 16 02:18:53 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 16 02:18:53 2021 +0000"
      },
      "message": "Merge \"Report gui::DisplayInfo to clients with window info changes\""
    },
    {
      "commit": "5e265d2ec93c8269da121a0cc8f3bd8b5c705e8d",
      "tree": "8b0f297882210056a90891071be82b31ecc91a30",
      "parents": [
        "5f72bf2ca47e5d0960b6201455ffc0eb2653d6e6",
        "71c4ccd5c449e3ce5a6ecb1ca1fa408a10d5451b"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Sep 15 18:42:45 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 15 18:42:45 2021 +0000"
      },
      "message": "Merge \"Initialize DrawingState::trustedOverlay to false in constructor\" into stage-aosp-master am: 774787c7ce am: 55bae46ca1 am: 71c4ccd5c4\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15829456\n\nChange-Id: I688317c3da804223fadaceebd8b1d9c961c3bfec\n"
    },
    {
      "commit": "71c4ccd5c449e3ce5a6ecb1ca1fa408a10d5451b",
      "tree": "df53f2f61dd38db991670cc77bf094a6d12d8606",
      "parents": [
        "7b160e3cafeee5fabcf015995056a29f6c9dbd13",
        "55bae46ca1de06925b66c6a03440e89b18818d75"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Sep 15 18:29:20 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Sep 15 18:29:20 2021 +0000"
      },
      "message": "Merge \"Initialize DrawingState::trustedOverlay to false in constructor\" into stage-aosp-master am: 774787c7ce am: 55bae46ca1\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15829456\n\nChange-Id: If5fda7189b74c4334883dca36e0bced2242a3622\n"
    },
    {
      "commit": "48f8cb998c61fcad3db9ca7bbebc9e424844e6e2",
      "tree": "ab5f0d6a3648c074116a8ffe31c70306f893c5ab",
      "parents": [
        "945bf5fad1cfe1dc50e8033fa46bf2f42171366d"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Aug 26 14:05:36 2021 -0700"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Sep 15 06:22:07 2021 -0700"
      },
      "message": "Report gui::DisplayInfo to clients with window info changes\n\nInputFlinger needs to know specifications about displays such as\norientation and projection from SurfaceFlinger to support the\nMotionEvent#getRaw API, which returns coordinates in logical display\nspace at the moment.\n\nSince dispatcher gets window information from SF, we need to send the\ndisplay information that affects input dispatching at the same time as\nupdating window information to ensure those two pieces of information\nremain in sync.\n\nInstead of sending display information along with each window, we\nattempt to reduce the amount of information sent through binder by\nsending DisplayInfo separately to WindowInfos. The newly added\nDisplayInfo struct should only be used by InputFlinger to support raw\ncoordinates for now, with the goal of removing it altogether in the\nfuture.\n\nBug: 179274888\nTest: atest libgui_test inputflinger_tests\nTest: manual, ensure input works\n\nChange-Id: I87429ca4ced5f105f49a117c676cba29f8a5c4da\n"
    },
    {
      "commit": "cccbb97d57caded61785c70ac6d5760037a15d3c",
      "tree": "8838948c3a6a06a0900a509f833825f419fedd3f",
      "parents": [
        "e86f58c53c2ae0bcfc31bc2d80e261dc3193a886"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Fri Sep 10 12:03:42 2021 +0000"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Sep 14 23:13:39 2021 +0000"
      },
      "message": "Initialize DrawingState::trustedOverlay to false in constructor\n\nTo avoid it being initialised to true randomly.\n\nBug: 199483370\nBug: 198370268\nChange-Id: I75be2b1d305e22f8a71532b9f5b8ea6c469baaaa\nMerged-In: I75be2b1d305e22f8a71532b9f5b8ea6c469baaaa\n(cherry picked from commit ba48944f4b465f5927a4764b461942fdf245ca08)\n"
    },
    {
      "commit": "edb375df82f6b48688d85c11dbca91adef088bc8",
      "tree": "00795a9ceb8d476b690b022d34ab19927ee42079",
      "parents": [
        "85bd5cfb61e898393405bca5ae9e74d020618e3e"
      ],
      "author": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Fri Sep 10 12:03:42 2021 +0000"
      },
      "committer": {
        "name": "Robin Lee",
        "email": "rgl@google.com",
        "time": "Fri Sep 10 17:32:31 2021 +0000"
      },
      "message": "Initialize DrawingState::trustedOverlay to false in constructor\n\nTo avoid it being initialised to true randomly.\n\nBug: 199483370\nChange-Id: I75be2b1d305e22f8a71532b9f5b8ea6c469baaaa\n"
    },
    {
      "commit": "66e11cf885d0c2002b3fbdc13ea33b2e54c58105",
      "tree": "75abee0a53deb85094b1c1c38c71bbbf6dc73198",
      "parents": [
        "92e4782b3bd5e743ff1bacd1aa8ba72de3f0f261"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Fri Aug 13 10:13:01 2021 -0500"
      },
      "committer": {
        "name": "Nataniel Borges",
        "email": "natanieljr@google.com",
        "time": "Fri Sep 03 10:06:52 2021 +0000"
      },
      "message": "Add display proto info\n\nCurrently display bounds are calculated in to layer bounds so when proto\nfiles are uploaded, the display bounds are set at the root layer.\nHowever, once display bounds are removed from layer bounds calculation,\nthe proto information will be missing display info and will be hard to\nshow a correct visual representation.\n\nAdd display proto info so winscope can properly show the display area.\n\nTest: winscope works\nBug: 188792659\nChange-Id: I445a892a855c302ab617a9c79bfbf5f217ac5349\nMerged-In: I445a892a855c302ab617a9c79bfbf5f217ac5349\n"
    },
    {
      "commit": "0a39899495675d5a1f84877ff224291d38e544b7",
      "tree": "4cb2e0a00f646ab461938a192b73402aa12bcd22",
      "parents": [
        "04c093a6c2961eb96036acbf0ffb41c8d46294f9"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Fri Aug 13 10:13:01 2021 -0500"
      },
      "committer": {
        "name": "Nataniel Borges",
        "email": "natanieljr@google.com",
        "time": "Thu Aug 26 20:21:18 2021 +0200"
      },
      "message": "Add display proto info\n\nCurrently display bounds are calculated in to layer bounds so when proto\nfiles are uploaded, the display bounds are set at the root layer.\nHowever, once display bounds are removed from layer bounds calculation,\nthe proto information will be missing display info and will be hard to\nshow a correct visual representation.\n\nAdd display proto info so winscope can properly show the display area.\n\nTest: winscope works\nBug: 188792659\nChange-Id: I445a892a855c302ab617a9c79bfbf5f217ac5349\n"
    },
    {
      "commit": "9afe784f828a77e6dd55fd8ff4ffe93a8d09184d",
      "tree": "1815c281fad31b54fd815d782517b1eccf36901a",
      "parents": [
        "214040a792c4f9793421b017019d0dc53d2de6ca"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Aug 16 12:01:57 2021 -0700"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Aug 19 11:51:13 2021 +0000"
      },
      "message": "Undo rotation by physical orientation in WindowInfo transforms\n\nSome devices have a their display panels installed in a different\norientation than the expected default orientation. This can be\nconfigured through the build prop\nro.surface_flinger.primary_display_orientation, or through other means.\n\nInput, framework, and other services are not concerned with the display\npanel orientation. In this CL, we rotate the transforms sent in\nWindowInfo by the inverse of the physical orientation, making the window\ntransforms relative to WM\u0027s ROTATION_0 instead of the display panel\norientation.\n\nBug: 179274888\nBug: 195617582\nBug: 195586068\nTest: manual with device that has a non-standard display panel\ninstallation\nTest: atest com.android.launcher3.ui.TaplTestsLauncher3\n\nMerged-In: I727b22c004014355f337da2b753b61c5946667d0\nChange-Id: I727b22c004014355f337da2b753b61c5946667d0\n"
    },
    {
      "commit": "481e96e06fd6932932b8839c4b8553908913e796",
      "tree": "6617b056187c517efb4b4613b9d09b8393a15d1d",
      "parents": [
        "31e76ed995d34768f5c4e124965f0f08a12cee5a",
        "9e168db5ff17fe32d3686a166ad0bc7720db12a7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Aug 18 20:13:32 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 18 20:13:32 2021 +0000"
      },
      "message": "Merge \"SF: Clean up around transaction commit\""
    },
    {
      "commit": "31e76ed995d34768f5c4e124965f0f08a12cee5a",
      "tree": "1c7412938de0d6c1fbfb80a1df195bf482979fc7",
      "parents": [
        "fa82d490e8dce9d885a50d32ed4368cab8315ae6"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Aug 16 12:01:57 2021 -0700"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Aug 18 18:06:02 2021 +0000"
      },
      "message": "Undo rotation by physical orientation in WindowInfo transforms\n\nSome devices have a their display panels installed in a different\norientation than the expected default orientation. This can be\nconfigured through the build prop\nro.surface_flinger.primary_display_orientation, or through other means.\n\nInput, framework, and other services are not concerned with the display\npanel orientation. In this CL, we rotate the transforms sent in\nWindowInfo by the inverse of the physical orientation, making the window\ntransforms relative to WM\u0027s ROTATION_0 instead of the display panel\norientation.\n\nBug: 179274888\nBug: 195617582\nBug: 195586068\nTest: manual with device that has a non-standard display panel\ninstallation\nTest: atest com.android.launcher3.ui.TaplTestsLauncher3\n\nChange-Id: I727b22c004014355f337da2b753b61c5946667d0\n"
    },
    {
      "commit": "9e168db5ff17fe32d3686a166ad0bc7720db12a7",
      "tree": "2cd7465330e0d705547ebee93a46dc623a6bc348",
      "parents": [
        "b30aa4edc36e20cc853da9881c241ad41f5e6aaf"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu May 27 16:05:12 2021 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Aug 18 09:59:02 2021 -0700"
      },
      "message": "SF: Clean up around transaction commit\n\nRename the vague helpers for transaction commit, and getTransactionFlags\nso its mutable operation is apparent. Inline superfluous variables and a\n3-line function.\n\nBug: 182939859\nTest: Build\nChange-Id: I29637d0f77e8d22ce0f6ba045e4ec80274f614e8\n"
    },
    {
      "commit": "4eda418d430d1a093c4431568082f49a341c3551",
      "tree": "d333945603ff4ead17ac2d5a6f5f3ce1b12153e9",
      "parents": [
        "6afe536fbc56ed4f40b59ce1f49d197e20135175",
        "90a405ca3a31c30a93cac6be67341ae29e4d80a7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Aug 16 11:31:42 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 16 11:31:42 2021 +0000"
      },
      "message": "Merge \"Add requested_corner_radius to layer proto\" into sc-v2-dev"
    },
    {
      "commit": "90a405ca3a31c30a93cac6be67341ae29e4d80a7",
      "tree": "02bb1e99d8ff9e228146c716b0857e14c69e943b",
      "parents": [
        "f334812daa74bb651590334f60229262dad11b81"
      ],
      "author": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Tue Aug 10 09:55:42 2021 +0000"
      },
      "committer": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Mon Aug 16 08:57:14 2021 +0000"
      },
      "message": "Add requested_corner_radius to layer proto\n\nTest: Check that it shows up in the dumped proto files (e.g. Winscope)\nBug: 193875495\nChange-Id: Ib9f68260f73aff3adc455b5ea8e314a96e514fa7\nMerged-In: Ib9f68260f73aff3adc455b5ea8e314a96e514fa7\n(cherry picked from commit abdf4dab40d023d4e0b8ebf93686829f6a41e746)\n"
    },
    {
      "commit": "501c486606a222c34cfd994bc6632c0a85ff9da0",
      "tree": "ba3fcb6ab4dca53e4f153c16af29029662caabaa",
      "parents": [
        "8ca257f9e727555edb3531bbdde7b684d9016033",
        "29fa146d8d745cee950a1ed82ddb500fc6d6c771"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Aug 13 20:45:43 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 13 20:45:43 2021 +0000"
      },
      "message": "Merge \"SF: Consolidate layer-to-output filtering\""
    },
    {
      "commit": "64485165813e7e3ca1ca056ddf44fc33e8144228",
      "tree": "60954ec4dafff972f3cf94a0783f265c15ac572e",
      "parents": [
        "e23f00248a3371c936e760f094e3bfe0c369849f",
        "a8c7c54eed57e5a4b56905a4fb00e27e25b1b908"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Aug 13 20:09:01 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 13 20:09:01 2021 +0000"
      },
      "message": "SurfaceFlinger: Safely cast from IBinder to Layer::Handle am: a8c7c54eed\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15548960\n\nChange-Id: I1554fcb93e7329c3a03aad7c401aa4f082b70b19\n"
    },
    {
      "commit": "a8c7c54eed57e5a4b56905a4fb00e27e25b1b908",
      "tree": "6bf3a24ee3408a214854a8e1eca7072355ac0096",
      "parents": [
        "810d19378edc7bbd87d738d96c4bb49ed45b3d0c"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Jul 20 18:49:42 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Aug 13 00:36:52 2021 +0000"
      },
      "message": "SurfaceFlinger: Safely cast from IBinder to Layer::Handle\n\nBug: b/193034677, b/193034683, b/193033243\nTest: go/wm-smoke, presubmit\n\nChange-Id: Iece64fca254edfd0b82e05ad9629824b2364cc13\nMerged-In: Iece64fca254edfd0b82e05ad9629824b2364cc13\n"
    },
    {
      "commit": "abdf4dab40d023d4e0b8ebf93686829f6a41e746",
      "tree": "dd2a4d7faceda43e70612158e7a864392f64bc96",
      "parents": [
        "d67685e7c23ee75467e98e7a59fa5ee5edb20dc3"
      ],
      "author": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Tue Aug 10 09:55:42 2021 +0000"
      },
      "committer": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Thu Aug 12 16:47:02 2021 +0000"
      },
      "message": "Add requested_corner_radius to layer proto\n\nTest: Check that it shows up in the dumped proto files (e.g. Winscope)\nBug: 193875495\nChange-Id: Ib9f68260f73aff3adc455b5ea8e314a96e514fa7\n"
    },
    {
      "commit": "29fa146d8d745cee950a1ed82ddb500fc6d6c771",
      "tree": "9dc4b5eb802e3d308e6fb00341096cf21638a535",
      "parents": [
        "0f1d2241eabeab7bc08e06e9ebe004a80ff25a4b"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Apr 27 15:51:50 2021 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Aug 09 15:25:19 2021 -0700"
      },
      "message": "SF: Consolidate layer-to-output filtering\n\nAdd ui::LayerFilter for less repetitive CE plumbing. Make ui::LayerStack\na type, and (unlike the alias) use it everywhere. Remove redundant state\nin CE\u0027s DisplayCreationArgs.\n\nBug: 182939859\nTest: Display cutout is excluded in screenshots.\nTest: libcompositionengine_test\nTest: libsurfaceflinger_unittest\nTest: SurfaceFlinger_test\nTest: libgui_test\nChange-Id: Ib854d354af7aef7168001c34297e875b71d53622\n"
    },
    {
      "commit": "dd60942d8011ede74885f92e5cf8aac1219fd645",
      "tree": "a57103c392bd6b5e010057b3bb04136a7bc97db2",
      "parents": [
        "7429c5b8b448469d952d82682525c2e03fca7cb7",
        "da7ade5b509a4d78cebcb5f8232e0be167a7b442"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Mon Aug 09 14:38:40 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Aug 09 14:38:40 2021 +0000"
      },
      "message": "Merge \"Set windowInfo.displayId to be the layerStack\" into sc-v2-dev am: 3c13a3c798 am: da7ade5b50\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15485944\n\nChange-Id: Id8ca729df783adfa92834cb02a2ac76e5690dbc9\n"
    },
    {
      "commit": "3c13a3c798b8aa9495b1ace5b42fdd835268e403",
      "tree": "85606460942b2aba5400996b62963a850745a5b3",
      "parents": [
        "d39be6677aac3b2c7baed7150988807a8d94c032",
        "6eada62e3f020f9c54c188a745945df5265e2e5c"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Mon Aug 09 14:15:22 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 09 14:15:22 2021 +0000"
      },
      "message": "Merge \"Set windowInfo.displayId to be the layerStack\" into sc-v2-dev"
    },
    {
      "commit": "6eada62e3f020f9c54c188a745945df5265e2e5c",
      "tree": "fbdf282f426917c5501a6068f6029ee534bb9b57",
      "parents": [
        "ad802be87734cfd20a2aaa30d92343d5f418e788"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Fri Aug 06 17:09:47 2021 -0500"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Fri Aug 06 17:09:47 2021 -0500"
      },
      "message": "Set windowInfo.displayId to be the layerStack\n\nInstead of using the displayId sent from WMS, it\u0027s better to use the\nlayerStack since it more accurately represents where the layer is\npresented. Previously, the only case where WMS needed to set a displayId\ndifferent from layerStack was when using portal displays, which is no\nlonger supported.\n\nThis also fixes the case with cloned layers. If a cloned layer was\nplaced on a different display than the main layer, the WindowInfo for\nthe clone would end up having the same display as the main window since\nthe properties were directly copied over. With this fix, the cloned\nlayer\u0027s WindowInfo will get the correct layerStack that represents where\nit\u0027s actually rendered.\n\nTest: MediaProjection capture with mirror\nBug: 195280234\nChange-Id: Id1794798a543260c9868ccdc1be3cdb574b73dd5\n"
    },
    {
      "commit": "6c0526863bfabb8cb4a0fe6cdd3ac74dc427d540",
      "tree": "f9b28735699cc6013305bfc97efe477175b70728",
      "parents": [
        "8d95f0850f3c6aa8ca14a651fc4bb96ec9161140",
        "7d15eec233f8d98fcac1f19972447ee254fc7dac"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Aug 06 03:46:54 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 06 03:46:54 2021 +0000"
      },
      "message": "Merge \"SF: fix frame rate for layer tree\" into sc-dev am: 3871daf53a am: 7d15eec233\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15463251\n\nChange-Id: I6c60b0c938548c9dc87b5923c739d8efadbf110b\n"
    },
    {
      "commit": "6544ebe417c7d57607d9bf8066b8e4b4ac7d7d97",
      "tree": "4f8eb1eec26779b877eb50e1a4e6ba81f67d44e9",
      "parents": [
        "b998d927930c73674ef1e09db726a561927d72cd",
        "3871daf53a6916b870e95ba7317cda7161c64444"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Aug 06 03:32:29 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Aug 06 03:32:29 2021 +0000"
      },
      "message": "Merge \"SF: fix frame rate for layer tree\" into sc-dev am: 3871daf53a\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15463251\n\nChange-Id: I1e0ba658e2230d666dd8eaa7497a4986fece264b\n"
    },
    {
      "commit": "a850c185ff4170bea77c5b4e4ed4fa871daada65",
      "tree": "e5c5e29f8901430e71340ec32f1781602d19f502",
      "parents": [
        "edec715c764be0e173056d9211fa079cdcb0cb98"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Aug 04 13:04:37 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Aug 05 11:40:12 2021 -0700"
      },
      "message": "SF: fix frame rate for layer tree\n\nWith the current implementation we might mark layers as NoVote\nincorrectly when a sibling has a frame rate.\n\nTest: adb shell /data/nativetest64/libsurfaceflinger_unittest/libsurfaceflinger_unittest\nBug: 195205467\nChange-Id: I62641f855a027e1192f9a85a4bc50692b1744764\n"
    },
    {
      "commit": "4dea052f15cbce8b34efb038c4277eab32519f87",
      "tree": "d7d36ff3c4e92f08b9e039eebe733440195b7101",
      "parents": [
        "ee3c8f58e92c8082f4cfa707fb39aace27b0b1a6",
        "5eaa7c313627d872ced846dfd0c83b128a389914"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Jul 28 14:46:21 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jul 28 14:46:21 2021 +0000"
      },
      "message": "Merge \"Add mechanism for a task\u0027s windows to be trusted overlays (SF)\" into sc-dev am: 5eaa7c3136\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15150900\n\nChange-Id: I8578a717172c8245da2c8352cbec14f4b9729628\n"
    },
    {
      "commit": "077793ebbd5d972308e92bcb9795d49e2b04668c",
      "tree": "23fe6d73e7d7951d8583b5e52d0e226e02eaf79b",
      "parents": [
        "aca437471cec8906330cb10e57dcba1a7ca91b7c",
        "a0de3613cfa098c5abc19da1c5ec6821bf665c1d"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Fri Jul 23 01:44:13 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 23 01:44:13 2021 +0000"
      },
      "message": "Merge \"Add mechanism for a task\u0027s windows to be trusted overlays (SF)\" into sc-dev am: 5eaa7c3136 am: a0de3613cf\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15150900\n\nChange-Id: I27c503bb7d948499ebadafbd65dfdaf570d95d81\n"
    },
    {
      "commit": "a30f7c99749f48d3c13c3c1ac96fc54a80ba1295",
      "tree": "ee514b89ee23f57242f014e23e03009901e615c9",
      "parents": [
        "5a68a6cfe076081a6bbdfb04cb85551d511539d9"
      ],
      "author": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Tue Jun 29 15:42:56 2021 -0700"
      },
      "committer": {
        "name": "Winson Chung",
        "email": "winsonc@google.com",
        "time": "Wed Jul 21 13:00:16 2021 -0700"
      },
      "message": "Add mechanism for a task\u0027s windows to be trusted overlays (SF)\n\n- Add a layer state to indicate that this layer and its children\n  in the hierarchy are trusted. This can only be set by callers\n  holding ACCESS_SURFACE_FLINGER, and will be used for the PIP\n  task layer to indicate that activities in PIP are trusted (as\n  they are controlled only by the user and SystemUI)\n\nBug: 191529039\nTest: TBD\n\nChange-Id: Id92ccb087bd0d8dbaeeef3ba50b67fe015e53db8\n"
    },
    {
      "commit": "f9096655b6c0dc377786553486a11c0197ab91ea",
      "tree": "47f7194f9a59f87bc9b034c944b81cedcbdc5654",
      "parents": [
        "ce4973ba674adfa7d3baaed49edcb8bac9cc8c40"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Jul 20 18:49:42 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Jul 21 02:17:28 2021 +0000"
      },
      "message": "SurfaceFlinger: Safely cast from IBinder to Layer::Handle\n\nBug: b/193034677, b/193034683, b/193033243\nTest: go/wm-smoke, presubmit\n\nChange-Id: Iece64fca254edfd0b82e05ad9629824b2364cc13\n"
    },
    {
      "commit": "fabe76ff86690f66af0e4ea7c62cdd6539d5690b",
      "tree": "fb8b7c4552ea548ed169fb359a6bc3a6808ce64f",
      "parents": [
        "5440823f57ce64143d27db59326ba07d1b7bf4bf",
        "a168feab09d9963e650e80298c0c633c99e880b9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 17 03:40:07 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 17 03:40:07 2021 +0000"
      },
      "message": "Merge \"Don\u0027t set the visibleRegion dirty bit if blur regions are changing\" into sc-dev am: b9d529ba48 am: a168feab09\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15177906\n\nChange-Id: I4e19c9fde5c8ff10b869697b2d1bcf6d1e4bbecf\n"
    },
    {
      "commit": "43a3431e15764edc7c41097e869b7252b31241a7",
      "tree": "86689b12871b9de2b87702c6e0f3f2eb0e3b6227",
      "parents": [
        "822648d44843c02c019a22457c3a37066d4b3291",
        "b9d529ba488a72125df06327da00798c23c98471"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 17 03:26:14 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Jul 17 03:26:14 2021 +0000"
      },
      "message": "Merge \"Don\u0027t set the visibleRegion dirty bit if blur regions are changing\" into sc-dev am: b9d529ba48\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15177906\n\nChange-Id: I97fbe8f25d26927a4cb7a9c62d58f1b2189f54af\n"
    },
    {
      "commit": "b9d529ba488a72125df06327da00798c23c98471",
      "tree": "4f78b826244adbfe6b36ea8eadd0512fb8d514c8",
      "parents": [
        "6a409e17600f320134dea722247c15770030d7b2",
        "412c592e90b0c5d93d8d009f4b6f5a93a3adfaa2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jul 17 03:15:31 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jul 17 03:15:31 2021 +0000"
      },
      "message": "Merge \"Don\u0027t set the visibleRegion dirty bit if blur regions are changing\" into sc-dev"
    },
    {
      "commit": "0957669e413216016e33649a6fd5fe939604dccf",
      "tree": "1a328f22051ddca9d5ce96399ff9d23ad5960c69",
      "parents": [
        "bf465a61376b9616d14c3143833de1d09c500f70"
      ],
      "author": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Thu Jul 01 12:22:09 2021 -0700"
      },
      "committer": {
        "name": "Evan Rosky",
        "email": "erosky@google.com",
        "time": "Wed Jul 14 15:14:12 2021 -0700"
      },
      "message": "Plumb through display orientation separate from transform\n\nThis is exclusively used for getRaw compatibility. The input\ntransform can include window rotation and also, apparently,\nnested view rotations as it the events get mutated by ui-toolkit.\n\nBug: 187686656\nTest: cd frameworks/native/services/inputflinger \u0026\u0026 atest\nChange-Id: I2fd7a2b2acbe422d962d0646d41c60eb48160620\n"
    },
    {
      "commit": "a4d1c45e2e62594750e84bf2bf98e09c2fd3b634",
      "tree": "4e1303a5876130017a8093f50ead03a433692d47",
      "parents": [
        "4d9d9d9e314957b777ab530455f5fc04368bb391",
        "311ea1b9e8cf457a554c006691b08da848b1f3a6"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Jul 13 23:58:33 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jul 13 23:58:33 2021 +0000"
      },
      "message": "Merge \"SF: don\u0027t skip draw for clearContent\" into sc-dev am: 311ea1b9e8\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15276470\n\nChange-Id: I461e935b9aac2193c1466306bdfed43d31081b9f\n"
    },
    {
      "commit": "baa6cf585169c9d2f87c2033785992953b265692",
      "tree": "ee9f5d34d204b6aa9a56207887c4c5a10ddea96a",
      "parents": [
        "6e8e36486152c3602c5ba3214f34fc01a6a13937"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Jul 13 14:02:19 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Jul 13 14:02:19 2021 -0700"
      },
      "message": "SF: don\u0027t skip draw for clearContent\n\nLayers that needs to punch a hole using clearContent (HWC request)\nshould not be skipped for drawing, as we need to draw the punch hole.\n\nBug: 190765526\nTest: Force all non-SurfaceViews to client composition\nChange-Id: I891f697b0cea1bcbe9782714acd6b8f88ecc99b3\n"
    },
    {
      "commit": "17c6d808e519c71f2fd2fa27e8e954a6914b0618",
      "tree": "e081486e8bafca9a4b5d88610eb50a9165f38564",
      "parents": [
        "af047f7ab3256d3d3335a096b80d7a659e5beb8c",
        "a1f13f4c3cabeb78023e6c82f456a792dc4d8e15"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Jul 02 17:07:34 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jul 02 17:07:34 2021 +0000"
      },
      "message": "Merge \"Optimize mirror layer management\" into sc-dev am: a1f13f4c3c\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15180135\n\nChange-Id: I07c19be8d398966b38fd880e9dcf07a57be81e6a\n"
    },
    {
      "commit": "a1f13f4c3cabeb78023e6c82f456a792dc4d8e15",
      "tree": "b6d223e6a15cd65373d814514ea840a2b51f77f6",
      "parents": [
        "06e31f950c254566c590340553a019d4c93424d8",
        "6a0382d628649b8880a7ecd7fdc215fee14a3b34"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Jul 02 16:55:11 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 02 16:55:11 2021 +0000"
      },
      "message": "Merge \"Optimize mirror layer management\" into sc-dev"
    },
    {
      "commit": "528dc3c6da22798d76dd4f7c6a2f05795df8417a",
      "tree": "4ad6a704b8881ddd95482b6475d1dab2ac48cdaa",
      "parents": [
        "2168bd7dc2dca08dd5abfa84813ffb5042140ae2",
        "2b7d5cea130c2a5d06059ceee61da20ccb2295c8"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Thu Jul 01 23:12:31 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jul 01 23:12:31 2021 +0000"
      },
      "message": "Merge \"Optimize offscreen layer management\" into sc-dev am: 2b7d5cea13\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15150272\n\nChange-Id: I6db2c6b4b9aef6f228fba661f70166d7dc1a807e\n"
    },
    {
      "commit": "6a0382d628649b8880a7ecd7fdc215fee14a3b34",
      "tree": "b58cb9924c452d40cea3deefda36f185dd669ec6",
      "parents": [
        "06c3b63812ae498dbb30e3e276ce4dd1591c3f6c"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Jul 01 15:57:17 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Jul 01 16:09:48 2021 -0700"
      },
      "message": "Optimize mirror layer management\n\nWe currently have to traverse the whole hierarchy twice to\nupdate mirror layer info. While a long term rearchitecture may avoid\nthis entirely, we can optimize the hotpath by avoiding both traversals\nwhen there are no mirror layers in existence.\n\nBug: 186200583\nTest: Existing tests pass\nChange-Id: I63f1fb239aa51e6db4fb1f4cb3cd3a87113d35d9\n"
    },
    {
      "commit": "867be37f20c1bbded383bdba31b38d5c8bc7fe2d",
      "tree": "6e1b817d9bc4f1f4eb11f7462f9e9ea5c9df43ee",
      "parents": [
        "e89521f7c24f04045b2bbf6cb73857e17381ff9e"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Tue Jun 29 17:36:02 2021 -0700"
      },
      "committer": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Thu Jul 01 21:41:05 2021 +0000"
      },
      "message": "Optimize offscreen layer management\n\nNow that we manage reparenting on the main thread, we can directly\nmanipulate the offscreen layers list rather than updating it\nin a later traversal.\n\nBug: 186200583\nTest: Existing tests pass\nChange-Id: I9b101544c272b60d2d93d09b3cc6074098181cf3\n"
    },
    {
      "commit": "412c592e90b0c5d93d8d009f4b6f5a93a3adfaa2",
      "tree": "cba4530435ff1cf06486736cf06d7fe25471dc76",
      "parents": [
        "e1c1b1c55dfc8ec89fd1dd4bb1325bd3428a03a1"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Jul 01 12:05:02 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Jul 01 12:05:23 2021 -0700"
      },
      "message": "Don\u0027t set the visibleRegion dirty bit if blur regions are changing\n\nTest: check winscope trace when pulling down notification shade, see frames are\ntreated as buffer latches\nBug: 191969790\n\nChange-Id: Ifa73d30dcae6d9336cf8e3d709dd8766c9d1b591\n"
    },
    {
      "commit": "3277faf86d598a2ee1080b0bb4dd476fe1fddba8",
      "tree": "4234f214c82163f62575a7570e0b877506c87475",
      "parents": [
        "438d352932acde680c1038e1827838aca3506845"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Wed May 19 16:45:23 2021 -0500"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Jun 29 10:56:57 2021 -0500"
      },
      "message": "Renamed and moved InputWindow and related files\n\nIn preparation for the hierarchy listener interface, moved the\nInputWindow structs into libgui and have libinput dependant on libgui.\nAlso renamed InputWindow to exclude Input since it will be used for more\ngeneric purposes.\n\nTest: Builds and flashes\nBug: 188792659\n\nChange-Id: I24262cbc14d409c00273de0024a672394a959e5f\nMerged-In: I24262cbc14d409c00273de0024a672394a959e5f\n"
    },
    {
      "commit": "6b9039967ee1e25e7e53bf8cc04a16aa0bfe2191",
      "tree": "ed42ac45e2217e4370c251709f0ba49d75ef15b2",
      "parents": [
        "f8f6d4af06cc0604c2fe074aedc0d177a2c2d5a6",
        "3e2a2991783a4d0067b532ad6d0e607a756ac194"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Tue Jun 22 17:36:05 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 22 17:36:05 2021 +0000"
      },
      "message": "Merge \"Avoid traversal in tunnel mode reporter\" into sc-dev"
    },
    {
      "commit": "3e2a2991783a4d0067b532ad6d0e607a756ac194",
      "tree": "f56919f73859af5897b6854497d04e238af7034f",
      "parents": [
        "0aa188a360048c8e4c35a878d9416207c67bab26"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 11 13:42:55 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Tue Jun 22 00:47:33 2021 -0700"
      },
      "message": "Avoid traversal in tunnel mode reporter\n\nWe can just track whether we have a sideband stream or not using\na counter.\n\nTest: Existing tests pass. simpleperf\nBug: 186200583\nChange-Id: I40b0217c186517fc67fe55d8aecf26198561bc39\n"
    },
    {
      "commit": "a70e91c90e0e88f7e36ccb47725b6109d6bb2c99",
      "tree": "4533986d86881a2fe556bf02d91c58b5da824f8a",
      "parents": [
        "b552ff5e4262640cbaefa0031e8b7b61e4864268"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 11 13:59:52 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Jun 21 21:58:09 2021 -0700"
      },
      "message": "Protect committing child list behind visible regions changed\n\nThis can be further optimized but as a first pass checking for\nvisible regions will improve the buffer update path. In Layer.cpp,\nwe need to be sure updating Z-order sets the mVisibleRegionsChanged\nflag directly rather than relying on doTransaction (as this now occurs\ntoo late after being coalesced in to handlePageFlip).\n\nTest: Existing tests pass. simpleperf\nBug: 186200583\nChange-Id: I24be38594f13e774d20a2a32ad12676a4e3c3052\n"
    },
    {
      "commit": "bf14dbb65b55986525ec3703849a8338494bf65f",
      "tree": "78aa6383e175f9b87ec05d3028f611d27c665362",
      "parents": [
        "0aa188a360048c8e4c35a878d9416207c67bab26"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 11 13:26:56 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Jun 21 21:48:54 2021 -0700"
      },
      "message": "Factor inputinfo changed out of doTransaction\n\nTest: Existing tests pass. simpleperf\nBug: 186200583\nChange-Id: Ic426d55f8e61481033159cd11609efe92f8330b3\n"
    },
    {
      "commit": "e450fb5c322249a2b421f99161e5476015b20b0c",
      "tree": "47ba1520320c87c44273e3d618102bf9d6119c50",
      "parents": [
        "26953ee25d470a7f54d3b789ab57a1f304327a6a"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 11 13:21:09 2021 -0700"
      },
      "committer": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 18 23:14:46 2021 +0000"
      },
      "message": "Factor our mChildrenChanged from doTransaction\n\nWe are trying to eliminate the whole doTransaction traversal. Following\nqueued-transaction changes we can update various values on flinger\ndirectly rather than in-directing through the main-thread.\n\nTest: Existing tests pass. simpleperf\nBug: 186200583\nChange-Id: I0536f889602ce0801e9f79881bbe1adb7b163d46\n"
    },
    {
      "commit": "6a160319a4f4923bb35d6c3b586d1d7a22ec6fa6",
      "tree": "bb04ee382a98cee2db92ffc67aadd1937901d7ef",
      "parents": [
        "a785b9a9c362954c3d136cba1f30ff4bd9edf49c"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon May 17 12:08:20 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 18 11:40:34 2021 -0700"
      },
      "message": "Start removing Current state\n\nNow that we only write to current state from the main thread\nwe can actually just write directly in to drawing state and\navoid copying current to drawing state on each frame. simpleperf\non bouncing ball indicates this was saving around 8% CPU or so\nper frame. As a next target we will eliminate the remaining work\nin doTransaction and eliminate the doTransaction pass.\n\nTest: Existing tests pass. simpleperf\nBug: 186200583\nChange-Id: I59b75747d7371b3ffe870129c8be100c7daa6c4e\n"
    },
    {
      "commit": "3cf2e023bbd39b86a0f70d1c07fbb3a5a4d1d651",
      "tree": "a56d25840df5c96437585ed719f2dd3d417b6541",
      "parents": [
        "adbd486a0cadd819a8a9b36327fbce913b6509e4",
        "3c28654ae28b2121dcab9e29e67a1a755af46df2"
      ],
      "author": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Thu Jun 17 20:45:26 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 17 20:45:26 2021 +0000"
      },
      "message": "Merge \"Fix blur region alpha not fading during animations\" into sc-dev"
    },
    {
      "commit": "3c28654ae28b2121dcab9e29e67a1a755af46df2",
      "tree": "bb925e4dc1e45f63c9bff62c35bc4a5431226573",
      "parents": [
        "603a15d295579ea583fbad2cb9c15cf41dd598dc"
      ],
      "author": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Thu Jun 17 15:21:28 2021 +0200"
      },
      "committer": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Thu Jun 17 15:25:45 2021 +0200"
      },
      "message": "Fix blur region alpha not fading during animations\n\nBug: 190606509\nTest: m \u0026\u0026 flash \u0026\u0026 test on a window that fades\nChange-Id: I9482e2b3188c1e831a60d4e2920b0798edb11015\n"
    },
    {
      "commit": "38d2500594652eabe7ee989d40b7190a26c577cc",
      "tree": "6819769370bc9866374ef81f18b12f91cc026fa8",
      "parents": [
        "13a864c4702e4303b6ccb26ae0cbe573bf62e2da"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Fri Jun 11 14:30:09 2021 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Tue Jun 15 11:53:29 2021 -0700"
      },
      "message": "Layer: Don\u0027t need atomic for transaction flags\n\nFollowing queued transaction changes we don\u0027t need an atomic here\nsince setPosition etc all execute on the main thread.\n\nTest: Existing tests pass. simpleperf\nBug: 186200583\nChange-Id: I965d3883d30ce1eb3c452742535281f3e2719424\n"
    },
    {
      "commit": "d6680c79442e8c4387bb684aa9b2c2f5031e4e63",
      "tree": "f83f34aa81f5e11f9f51136e495533501e4900b2",
      "parents": [
        "f75789e7c67e17a9ad89fb76a4018a30ad8f132c",
        "a9d0a53e7f5764639b1c7aad677f5fcc9bce0f38"
      ],
      "author": {
        "name": "Bernardo Rufino",
        "email": "brufino@google.com",
        "time": "Tue Jun 15 14:45:39 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 15 14:45:39 2021 +0000"
      },
      "message": "Merge \"Inherit touch occlusion mode from parent w/ input info\" into sc-dev"
    }
  ],
  "next": "a9d0a53e7f5764639b1c7aad677f5fcc9bce0f38"
}
