)]}'
{
  "log": [
    {
      "commit": "4fe573983f3f0d4975fb7cbe66f9f24c5c6f91d7",
      "tree": "d2acab7ae6cd77ecce252ab45c1382480c3c6ddf",
      "parents": [
        "bb26732f6fe79100bcf648461d9104a97967666f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Oct 25 13:44:30 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Oct 28 15:53:38 2022 +0000"
      },
      "message": "Do not send nextWakeupTime to findTouchedWindowTargetsLocked\n\nThis function does not need this variable, so let\u0027s not send it, to\nprevent confusion.\n\nBug: 211379801\nTest: build only\nChange-Id: I487cac5de0cca72d5c55ed0943bd630661b7b5ce\n"
    },
    {
      "commit": "bb26732f6fe79100bcf648461d9104a97967666f",
      "tree": "5a00b88738b136a424ca95134c4c44548be16ac0",
      "parents": [
        "e9af9d01692fcbc4f00f5d4b02fa3e44cde2c7a0",
        "b54ffb2a4b2504a39f333b683f83262a70206953"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Oct 28 15:00:01 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 28 15:00:01 2022 +0000"
      },
      "message": "Merge changes from topics \"input-device-bluetooth-address\", \"notify-stylus-presence\"\n\n* changes:\n  InputReader: Get Bluetooth address from InputDeviceIdentifier\n  Determine the bluetooth address of an input device from its uniqueId\n  Notify the policy when a stylus gesture starts\n"
    },
    {
      "commit": "b54ffb2a4b2504a39f333b683f83262a70206953",
      "tree": "7984e52f5c8a9e31ff05397df9bc124e06f3e6bc",
      "parents": [
        "07525ef5964f8a0a5b4d9949ab5f7fd17f0e2393"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Oct 27 18:03:34 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Oct 27 18:03:34 2022 +0000"
      },
      "message": "InputReader: Get Bluetooth address from InputDeviceIdentifier\n\nThe InputDevice class in Reader stores the InputDeviceIdentifier. When\nthe policy wants to get the Bluetooth address of an InputDevice, fetch\nit from there.\n\nBug: 243005009\nTest: atest inputflinger_tests\nChange-Id: I5d881a11cb1bc318258faf1f498db1ca29ae8537\n"
    },
    {
      "commit": "07525ef5964f8a0a5b4d9949ab5f7fd17f0e2393",
      "tree": "935256047a5a56e2944856612353430f2d8a616f",
      "parents": [
        "da20b174810825da0a1bf2e84942cb73f38f4dd4"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Oct 03 21:51:26 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Oct 27 14:44:45 2022 +0000"
      },
      "message": "Determine the bluetooth address of an input device from its uniqueId\n\nSince the Android Bluetooth stack sets a Bluetooth HID device\u0027s unique\nID as the Bluetooth address, attempt to parse the address from an input\ndevice\u0027s uniqueId when connected over the Bluetooth bus.\n\nDD: go/inputdevice-battery-notifications\n\nBug: 243005009\nTest: manual, check dumpsys output\nChange-Id: I710868f2b202e6cebf8b6a3853a6a5c79f3bc671\n"
    },
    {
      "commit": "da20b174810825da0a1bf2e84942cb73f38f4dd4",
      "tree": "e4fedba14be6437b1ebcb2a49b0bad11023c7901",
      "parents": [
        "2607219c7538d7ab4b8fa42ae17c8bb660c1a98d"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Sep 26 17:01:18 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Oct 27 14:44:39 2022 +0000"
      },
      "message": "Notify the policy when a stylus gesture starts\n\nThis will serve as a hint to the policy that a stylus is currently being\nused.\n\nBug: 243005009\nTest: atest inputflinger_tests\nChange-Id: I2cc187af226fc3a1d4fda36becc280ea7934673a\n"
    },
    {
      "commit": "b6421e194e71f87c2c14bd9f7a3779a92655ef3a",
      "tree": "43fdc5b960863a4f5a4ec17d915c756561bd91a2",
      "parents": [
        "6278ca243f9a154e86714e79198ffc51ea4266fe",
        "cce7e112242e0400b38c23031056fc278f3f6326"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Oct 27 14:27:17 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 14:27:17 2022 +0000"
      },
      "message": "Merge \"Separate logic for publishing motion events\""
    },
    {
      "commit": "cce7e112242e0400b38c23031056fc278f3f6326",
      "tree": "fea71212e12945e806fd0ac6c2ab1efeed610a60",
      "parents": [
        "34014048584e8720e2bf26903c20430eb5fb0c02"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Oct 25 13:31:17 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Oct 27 00:57:47 2022 +0000"
      },
      "message": "Separate logic for publishing motion events\n\nBefore a motion event is published, there\u0027s some more processing\nhappening, such as determining which coords should be used.\nLet\u0027s move that into a separate function to make it more tractable.\n\nBug: 211379801\nTest: atest inputflinger_tests\nChange-Id: If373305b546c461e22e4b496d66418f771e9e741\n"
    },
    {
      "commit": "6278ca243f9a154e86714e79198ffc51ea4266fe",
      "tree": "21ef0f74aade7f5ad5785cd95515739d1ad78dec",
      "parents": [
        "34014048584e8720e2bf26903c20430eb5fb0c02"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Oct 25 11:19:19 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Oct 27 00:57:12 2022 +0000"
      },
      "message": "Return touched windows from findTouchedWindowTargetsLocked\n\nThis is mostly a cosmetic change to modify the function to return things\nthat it promises to return in its name.\n\nIn the future, we will refactor this further to make it const and\npossibly to remove goto.\n\nAlso, do a similar refactor for the focused events.\n\nBug: 211379801\nTest: atest inputflinger_tests\nChange-Id: Ib379628c59a6cc724e1c49e39068483c563ef56c\n"
    },
    {
      "commit": "2607219c7538d7ab4b8fa42ae17c8bb660c1a98d",
      "tree": "30dcf1c37f7967ff8f180fc68469ae361c6b0867",
      "parents": [
        "2be70def81a0a0a15aedc51ee01e1e25019e0649",
        "07e2a48bf1640b68751e782d2ac79db444622c67"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 26 18:41:17 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 26 18:41:17 2022 +0000"
      },
      "message": "Merge \"SF: Carve out LayerHandle\""
    },
    {
      "commit": "2be70def81a0a0a15aedc51ee01e1e25019e0649",
      "tree": "626326914c71f9f9af12a6d1470fdf6f55210576",
      "parents": [
        "2cb50128084aa9c30f9957796a571f01cf4319e2",
        "f75cddb31ac415b13f33d4d6805a2b95b194e062"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Oct 26 16:06:04 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 26 16:06:04 2022 +0000"
      },
      "message": "Merge \"Mark addWindowTargetLocked as const\""
    },
    {
      "commit": "afc9086a1ea785bf21cad09aee5e6966c2cd44f4",
      "tree": "a15e297f907e83e34395c66e3bf42a1efa3b7700",
      "parents": [
        "1dbec27036554ddade9f816585e66172b8ca23b1",
        "530d6bdde7c6dd6c18a7f8fd8b8406dc2adf1c86"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Oct 25 21:39:48 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 25 21:39:48 2022 +0000"
      },
      "message": "Merge \"SF: Clean up API for refresh rate selection\""
    },
    {
      "commit": "f75cddb31ac415b13f33d4d6805a2b95b194e062",
      "tree": "af4c7315a7b5408209a463d997bc7ed1bacbb35a",
      "parents": [
        "8bc3a1723d62cf8c7315957db3e4e1f646f8a2d3"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Oct 25 10:42:16 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Oct 25 20:19:23 2022 +0000"
      },
      "message": "Mark addWindowTargetLocked as const\n\nWhile figuring out how to refactor \u0027findTouchedWindowTargetsLocked\u0027,\nit\u0027s helpful to understand where the state is being modified in that\nfunction.\nLet\u0027s mark addWindowTargetLocked as const to help with the analysis.\n\nBug: 211379801\nTest: build\nChange-Id: Ifd0a67bc915996e5401f3d624958660a8680ad19\n"
    },
    {
      "commit": "07e2a48bf1640b68751e782d2ac79db444622c67",
      "tree": "44a92865dff96a7fba4e44effa54ee2766f1d193",
      "parents": [
        "e23e6bb2ad90eee19af11489052200e300afd9a5"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 19:18:16 2022 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 25 17:46:55 2022 +0000"
      },
      "message": "SF: Carve out LayerHandle\n\nMove LayerHandle outside of layer so it can\nbe used with the new LayerLifecycleManager.\n\nMake Handle fields like layer private and provide\naccess functions so callers have to safely cast\nfrom a binder instead of directly casting it.\n\nAdd layerid to LayerHandle since we want to\nexpose the layer class in fewer places.\n\nFinally fold LayerCleaner class into LayerHandler.\n\nBug: 238781169\nTest: presubmit\n\nChange-Id: I86e08050cfcc89d68e6ed8fa0e8ff30063cf3603\n"
    },
    {
      "commit": "73908d154d3b35f1f990dd3eca73be1b106cd194",
      "tree": "7ac4cc013767f3f70d71ba839af82f9a12b9f619",
      "parents": [
        "6eafa9dd67010f05288c6e40881939f4cf01dcd5"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 24 21:46:42 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 25 09:09:31 2022 -0700"
      },
      "message": "SF: Update transform hint from current state\n\nTransform hint is updated before current state is\ncommitted to drawing state. Fix this by looking\nat current state when getting the layer\u0027s layerStack.\n\nTest: open app on non active display\nFixes: 255246561\nChange-Id: Ib002e4ed4cae1b5258bea761fda605b25138b77d\n"
    },
    {
      "commit": "6eafa9dd67010f05288c6e40881939f4cf01dcd5",
      "tree": "bf366d77fcde6177bf1cbdcf795189d2c52744ca",
      "parents": [
        "c39278609ed0ff5ea81643753dcf634dad5c4a02",
        "bea6ce5a7fceb854f80e40b113c2a7559860639e"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Tue Oct 25 13:13:09 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 25 13:13:09 2022 +0000"
      },
      "message": "Merge \"Split up TouchInputMapper::preparePointerGestures\""
    },
    {
      "commit": "7a18134fc4276e283de1fde2445163f90148ff66",
      "tree": "bb83ba5cb332b2eeb41ed13a54831e9866f2201a",
      "parents": [
        "5333d3bb9c7d19407394ae0a65aba057dc4e60e2",
        "8319e365848ca49f6c1026c0aca1d35e8c005610"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 24 23:34:23 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 24 23:34:23 2022 +0000"
      },
      "message": "Merge \"SF: Pass the correct layer creation args when mirroring\""
    },
    {
      "commit": "8319e365848ca49f6c1026c0aca1d35e8c005610",
      "tree": "ddd1e0f10d5d9267a04d547494647ce2f40f87ab",
      "parents": [
        "e23e6bb2ad90eee19af11489052200e300afd9a5"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 24 18:59:20 2022 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 24 18:59:55 2022 +0000"
      },
      "message": "SF: Pass the correct layer creation args when mirroring\n\nTest: atest MirrorLayerTest#InitialMirrorState\nBug: 238781169\nFixes: 255343651\nChange-Id: Ib560eb2c4b1be450f6b32c15ea6a0b83e32d264d\n"
    },
    {
      "commit": "530d6bdde7c6dd6c18a7f8fd8b8406dc2adf1c86",
      "tree": "6dfc95279e25372be2e049719779092d3832095c",
      "parents": [
        "a81a627c0ac244586c72170b8825b0735874bf65"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Oct 10 16:55:54 2022 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Oct 24 13:20:19 2022 -0400"
      },
      "message": "SF: Clean up API for refresh rate selection\n\nDefine types for each step: ScoredRefreshRate, RefreshRateRanking,\nRankedRefreshRates, DisplayModeChoice, and DisplayModeRequest. The\nlast will replace DisplayDevice::ActiveModeInfo in a follow-up CL.\n\nAdd Scheduler::mLeaderDisplayId (always the primary display for now)\nand provisionally use its DisplayModeChoice until Scheduler::Policy\nis tracked per display.\n\nRewrite multi-display tests, which relied on each DisplayMode having\nthe same PhysicalDisplayId, and did not actually verify mode/display\nassociation (`expectedDisplays` was unused). Test RefreshRateRanking\nordering by descending score.\n\nBug: 241285191\nTest: libsurfaceflinger_unittest\nChange-Id: I1d24d6a1fa9285aa7fc4bf2dd6654fa660d27b08\n"
    },
    {
      "commit": "bea6ce5a7fceb854f80e40b113c2a7559860639e",
      "tree": "8974798262857d2e5f620ea4988e95783aa7143b",
      "parents": [
        "7b022c606948d80b29b84c666c639963530847c4"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Fri Oct 14 15:17:30 2022 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Mon Oct 24 15:40:55 2022 +0000"
      },
      "message": "Split up TouchInputMapper::preparePointerGestures\n\nThis monster 700-line method was quite difficult to understand. It still\nis, but hopefully splitting it up into a few more methods helps.\n\nAlso, activeTouchId was basically just being used as a shorter name for\nmPointerGesture.activeTouchId (with both being assigned to at once),\nleaving space for a bug to come in if an assignment was made to one but\nnot the other. Making it a const reference removes that possibility, and\nmakes it a bit clearer what\u0027s going on.\n\nThis CL should not result in any behaviour changes.\n\nBug: none\nTest: atest inputflinger_tests\nTest: compare touchpad gesture behaviour before and after\nChange-Id: Ia85bf5dd80d87bd8fb83332f50dc25ad8769c32e\n"
    },
    {
      "commit": "f8882305ece841bf96a13694aaeb4ed339ed91ab",
      "tree": "25c33d34d2e87f1702207c8bd796369fc8a62ab2",
      "parents": [
        "e23e6bb2ad90eee19af11489052200e300afd9a5",
        "6ebd069ce62654062b17e996e887d55c2828d12f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Sat Oct 22 00:18:58 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 22 00:18:58 2022 +0000"
      },
      "message": "Merge \"Mark findTouchedWindowAtLocked const\""
    },
    {
      "commit": "e23e6bb2ad90eee19af11489052200e300afd9a5",
      "tree": "465d100e9142bf88d4198e47f85b027bfb0bc79e",
      "parents": [
        "32183f86059af77f5a7c454e888225d5489615d7",
        "cb8be5077baca59c45b3a0975ace5944b251937a"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Oct 21 22:49:11 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 21 22:49:11 2022 +0000"
      },
      "message": "Merge \"SF: Carve out LayerCreationArgs\""
    },
    {
      "commit": "32183f86059af77f5a7c454e888225d5489615d7",
      "tree": "437b5ee972d83a2ffe0b4326b9ee1f54e8017b14",
      "parents": [
        "64117cefd6b03ac8bbb0a30a8dbe6f9f6aa4e900",
        "1ab71435fec5f76eb1c1d73f2361b87ec21810f3"
      ],
      "author": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Fri Oct 21 21:49:16 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 21 21:49:16 2022 +0000"
      },
      "message": "Merge \"Delete obsolete TODO in setInTouchMode\""
    },
    {
      "commit": "65b0857740ac207079b551a96fb293ee2b243e3a",
      "tree": "c2e39ad5c06882542bce1eb2f1d4212c8b9d3137",
      "parents": [
        "321f53fb6cf2ad0a5d10bb4045cb12cc8b101dea",
        "258446dd988ecc074bf2c748551fe67f21c1eaac"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Oct 21 17:45:43 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 21 17:45:43 2022 +0000"
      },
      "message": "Merge \"SF: Remove unnecessary updateSnapshot call\""
    },
    {
      "commit": "321f53fb6cf2ad0a5d10bb4045cb12cc8b101dea",
      "tree": "45e0ad23408274653a7df0bb59192eef5c86f814",
      "parents": [
        "d4b2737644d7807b5d98126a1675db9fdbd86fb2",
        "f1e5df1d266f70a508c7b520fd52feced8fbcf61"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Oct 21 14:50:37 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 21 14:50:37 2022 +0000"
      },
      "message": "Merge \"SF: Trigger ANR when buffer cache is full\""
    },
    {
      "commit": "6ebd069ce62654062b17e996e887d55c2828d12f",
      "tree": "e11f05b24412a4c55c34635ed1a8381d79b2b1c4",
      "parents": [
        "d4b2737644d7807b5d98126a1675db9fdbd86fb2"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Oct 20 15:05:45 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Oct 21 02:10:20 2022 +0000"
      },
      "message": "Mark findTouchedWindowAtLocked const\n\nThis function doesn\u0027t change the dispatcher, so we can mark it const.\nLet\u0027s also print out the value of action when the debug config for\ninbound events is enabled.\n\nBug: 211379801\nTest: adb logcat\nChange-Id: I80b5c48308c49e22e093e1427b2be693200f799c\n"
    },
    {
      "commit": "1ab71435fec5f76eb1c1d73f2361b87ec21810f3",
      "tree": "dfe1957dad29024092ef79148c92d511341d9b0d",
      "parents": [
        "370158f958d5810dd1d8870cd561aea27c1b1517"
      ],
      "author": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Thu Oct 20 22:42:09 2022 +0000"
      },
      "committer": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Thu Oct 20 22:42:45 2022 +0000"
      },
      "message": "Delete obsolete TODO in setInTouchMode\n\nBug: 198499018\nTest: m (built)\nChange-Id: If024ce661ee2a3d12d71261ad68406328322ec92\n"
    },
    {
      "commit": "370158f958d5810dd1d8870cd561aea27c1b1517",
      "tree": "bb49bca2dd895736fdb1b5b3ec430b415f02b607",
      "parents": [
        "379d8304bd370ceb2c5e21f0c4f9c634179499f3",
        "60fb5c10058d9a4cb0d9a8733522af38be03f90a"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 20 22:35:38 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 20 22:35:38 2022 +0000"
      },
      "message": "Merge \"SF: Only update layer snapshots if there is something to draw\""
    },
    {
      "commit": "258446dd988ecc074bf2c748551fe67f21c1eaac",
      "tree": "6d22972d59c33457d0ce7e7e647712bedd092603",
      "parents": [
        "b7458aeec6d575bd06e33a83ab26ebd41c3eaa63"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Thu Oct 20 22:33:32 2022 +0000"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Thu Oct 20 22:33:32 2022 +0000"
      },
      "message": "SF: Remove unnecessary updateSnapshot call\n\nBug: 238781169\nTest: presubmits\nChange-Id: Ib72ca5f4d77283f70f644a30d9c419b4bae56079\n"
    },
    {
      "commit": "379d8304bd370ceb2c5e21f0c4f9c634179499f3",
      "tree": "9d4976e7afd09ce242250ba9ec3a201a669d5efe",
      "parents": [
        "6c574d434ae631c15f76b1bc3caa848917c3fd04",
        "71fcf918ac5b8b3f870451e547aca25982d7cfe8"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 20 21:44:55 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 20 21:44:55 2022 +0000"
      },
      "message": "Merge \"SF: Avoid updating clients with stale or incorrect transform hints\""
    },
    {
      "commit": "f1e5df1d266f70a508c7b520fd52feced8fbcf61",
      "tree": "93b2588fa1ecf9d95ea6192ee0a51cdf20822dc6",
      "parents": [
        "b7458aeec6d575bd06e33a83ab26ebd41c3eaa63"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Mon Oct 17 21:37:42 2022 +0000"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Thu Oct 20 20:07:45 2022 +0000"
      },
      "message": "SF: Trigger ANR when buffer cache is full\n\n* Updates the transaction queue stall listener to take a string that\n  contains the reason for hanging.\n* Updates ClientCache::add to indicate whether or not a failure is due\n  to the cache being full\n* Calls the transaction queue stall listener when the ClientCache is\n  full\n\nBug: 244218818\nTest: presubmits\nChange-Id: I5fdc9aef0f0a1601ace1c42cfac5024c3de8d299\n"
    },
    {
      "commit": "cb8be5077baca59c45b3a0975ace5944b251937a",
      "tree": "bf61f3c267fa30fde06764daed87ea59284634b6",
      "parents": [
        "a61e4fbf1b2276ae43d23d8889f214f40ca13e20"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 12 19:03:23 2022 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 20 18:47:10 2022 +0000"
      },
      "message": "SF: Carve out LayerCreationArgs\n\nMove most layer creation logic outside of Layer.\n\nSpecify layer sequence id via creation args\nand move ownerUid/ownerPid into the layer\ncreation args so we can share logic between\nthe existing layer class and the new server\nlayer state.\n\nAdd layer parent and mirror from handles\nto be used with the new LayerLifecycleManager.\n\nBug: 238781169\nTest: presubmit\n\nChange-Id: I7cf344181b29f405c070cda2ad45f06233fd1e8c\n"
    },
    {
      "commit": "71fcf918ac5b8b3f870451e547aca25982d7cfe8",
      "tree": "010b88653310a7288a5b874f17e3216ed407fecc",
      "parents": [
        "666a7bf602218e8c33b72ab7c318350c43515c2f"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 09:14:20 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 20 17:45:16 2022 +0000"
      },
      "message": "SF: Avoid updating clients with stale or incorrect transform hints\n\nWhen the layer is removed from a display or the display the layer is on\nis turned off, the client will continue to receive transform hint\nupdates via the transaction complete callback using the default/active\ndisplays install orientation. Once the layer is back on the display and\nit does not submit a new frame, a buffer with a suboptimal transform\nmay remain on display.\n\nFix this by not reporting stale/incorrect values via the callback. Once\nthe layer is reparent back to the display and the display state is not\nOFF, it will continue to get hints via the callback.\n\nFor special cases where we want the app to draw its first frame before\nthe display is available, we rely on WMS and DMS to provide the right\ninformation so the client can calculate the hint.\n\nBug: 251360251\nTest: move app between displays, rotate, check final buffer transforms\n\nChange-Id: I0a9abac7e9cf4ade1c49ec400e73b634c8269b4b\n"
    },
    {
      "commit": "b7458aeec6d575bd06e33a83ab26ebd41c3eaa63",
      "tree": "e6a3f0ccc52dee14774b583563d7c157a0021a36",
      "parents": [
        "5cb1b5e360d762433cb2317a36e81ddd76c24f60",
        "afd527ab1d841df22073f3b8c77ac3349c0e49e1"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 20 17:38:46 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 20 17:38:46 2022 +0000"
      },
      "message": "Merge \"SF: Update transform hint when reparenting layers\""
    },
    {
      "commit": "6ae1224ac66d5db1c4250183e0a60df64e494a71",
      "tree": "1687a87b4dc7de333826590cded6f70e1d12f1e8",
      "parents": [
        "43d28cbcd62ff0019130a2c9076a07450e1c0b10",
        "5d60bbec116473860102c4f6602f254ddc7d147d"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 20 03:31:41 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 20 03:31:41 2022 +0000"
      },
      "message": "Merge \"LayerTraceGenerator: fix log spam from stubbed sf\""
    },
    {
      "commit": "43d28cbcd62ff0019130a2c9076a07450e1c0b10",
      "tree": "4987d4b8a69b5277e66de71fd99ac014d53d9921",
      "parents": [
        "ea28fbe0035b892e52e646c33d4396dad33201ca",
        "22491b8da91f46db499208f80b5eea5423db330c"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 20 03:31:29 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 20 03:31:29 2022 +0000"
      },
      "message": "Merge \"SF: Fix onSurfaceFrameCreated for layers without buffers\""
    },
    {
      "commit": "60fb5c10058d9a4cb0d9a8733522af38be03f90a",
      "tree": "f1551ff134d46e26fc0167abd387efbb96ddb608",
      "parents": [
        "ea28fbe0035b892e52e646c33d4396dad33201ca"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 19 16:20:47 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 19 16:20:47 2022 -0700"
      },
      "message": "SF: Only update layer snapshots if there is something to draw\n\nAvoid doing unnecessary work when preparing composition state.\nFixing a regression from the recent frontend refactors.\n\nBug: 246680021, 245680157, 238781169\nTest: simpleperf with bouncy ball\nChange-Id: I3f0bf29bf10ae3ec2d84b851f409ced023410e45\n"
    },
    {
      "commit": "22491b8da91f46db499208f80b5eea5423db330c",
      "tree": "5188232b5d3b132478198c7e3179cd7b7b3255ff",
      "parents": [
        "666a7bf602218e8c33b72ab7c318350c43515c2f"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 14:59:14 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 19 15:57:23 2022 -0700"
      },
      "message": "SF: Fix onSurfaceFrameCreated for layers without buffers\n\nPreviously we did not create surfaceframes for layers\nwithout buffers. This behavior regressed with flattening\nof the layer types and causes some jank classifications\nto be eviceted from mPendingJankClassifications list\nwhich has a max value of 25.\n\nFix this by checking if the layer has a buffer and also\nwhile we are here, increase the max to 50 in anticipation\nof multiple displays and multiple layers.\n\nTest: presubmit, logcat for no logspam\nBug: 253555650\nChange-Id: I0be3d7706305e059074b9efc14428316bdb41e6d\n"
    },
    {
      "commit": "5d60bbec116473860102c4f6602f254ddc7d147d",
      "tree": "e4de3b596cf4a38ad8b87216c9de1086bdf076b5",
      "parents": [
        "ea28fbe0035b892e52e646c33d4396dad33201ca"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 16:59:10 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 19 22:41:51 2022 +0000"
      },
      "message": "LayerTraceGenerator: fix log spam from stubbed sf\n\nTest: sh ${ANDROID_BUILD_TOP}/frameworks/native/services/surfaceflinger/Tracing/tools/run.sh and check logcat\nBug: 253555650\nChange-Id: I5ca75c1762a5b6b4946b0bd6dac9bfe1c042a18d\n"
    },
    {
      "commit": "ea28fbe0035b892e52e646c33d4396dad33201ca",
      "tree": "9305324638e302c9113095277c3ffba864106666",
      "parents": [
        "f758f7a49ba3aa29f9d5fcb11aae9f6f0811646a",
        "c8c9bc3c84c630fd08dfbd2058da67e16bf41b36"
      ],
      "author": {
        "name": "Haamed Gheibi",
        "email": "haamed@google.com",
        "time": "Wed Oct 19 22:18:05 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Oct 19 22:18:05 2022 +0000"
      },
      "message": "Merge \"sf: Allow SystemServer to set the display brightness\" am: 9861ecb7c8 am: 22cf144ad3 am: c8c9bc3c84\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2259832\n\nChange-Id: Ief248ec12594a888f4e5062cc66aa272754fc4b7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c8c9bc3c84c630fd08dfbd2058da67e16bf41b36",
      "tree": "906cf44a9bd8cb775f64367bed55dc243bff17cb",
      "parents": [
        "b3d421769d3d663703cc1251f845e3949e678211",
        "22cf144ad3717e18ee668a0d2b5ab44ea32332e6"
      ],
      "author": {
        "name": "Haamed Gheibi",
        "email": "haamed@google.com",
        "time": "Wed Oct 19 21:45:09 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Oct 19 21:45:09 2022 +0000"
      },
      "message": "Merge \"sf: Allow SystemServer to set the display brightness\" am: 9861ecb7c8 am: 22cf144ad3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2259832\n\nChange-Id: Ibfb327bbbfec0c32c836ca73c695bc8559417fab\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "22cf144ad3717e18ee668a0d2b5ab44ea32332e6",
      "tree": "9064cff3baa19e7447156746967eb56e158e8ae9",
      "parents": [
        "e7a7f8a467e641c5bcdffc310770d321bf9bdd31",
        "9861ecb7c8e68aa2227447a183bc18436f94482d"
      ],
      "author": {
        "name": "Haamed Gheibi",
        "email": "haamed@google.com",
        "time": "Wed Oct 19 21:16:16 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Oct 19 21:16:16 2022 +0000"
      },
      "message": "Merge \"sf: Allow SystemServer to set the display brightness\" am: 9861ecb7c8\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2259832\n\nChange-Id: I5add818598a66f0969731099af1fa43484d068c4\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f758f7a49ba3aa29f9d5fcb11aae9f6f0811646a",
      "tree": "feac4b98b63af66ebddf292facc90a6072979a62",
      "parents": [
        "ce9c7ef445307cf783ad7671e1f5b5d869a49cc5",
        "a61e4fbf1b2276ae43d23d8889f214f40ca13e20"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 19 19:20:40 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 19 19:20:40 2022 +0000"
      },
      "message": "Merge \"SF: Move TransactionHandler to frontend\""
    },
    {
      "commit": "632cbc838ba783c82c0625cf2089ec3d04d743f8",
      "tree": "e84bf685c6e592b43f47b06cb5e98f1cad6c384a",
      "parents": [
        "741c9e0115bc0831881050e1c41ff8fb63fee15e",
        "5b79930750cdfd7c9aa09f95fdfe3fa9ecc34768"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Oct 19 16:18:24 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 19 16:18:24 2022 +0000"
      },
      "message": "Merge \"Make inputflinger_tests compile for musl\""
    },
    {
      "commit": "5b79930750cdfd7c9aa09f95fdfe3fa9ecc34768",
      "tree": "b9404b0cc41ab67d3b9ecb49b95ce9852a334664",
      "parents": [
        "22c43f5828ea5b995f699f13246ed323539e9575"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 18 21:52:41 2022 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Oct 18 21:52:41 2022 -0700"
      },
      "message": "Make inputflinger_tests compile for musl\n\ninputflinger_tests compile for the host now, so they need to be\ncompatible with musl libc.\n\nUse LLONG_MIN and LLONG_MAX instead of the nonstandard LONG_LONG_MIN\nand LONG_LONG_MAX.\n\nUse input_event_sec and input_event_usec to intialize time fields in\nstruct input_event, they are not always stored in a struct timespec.\n\nInclude linux/ioctl.h to define _IOC_SIZE.\n\nCast tv_sec and tv_usec to long long, as the type can be any integer\ntype.\n\nCast EPOLLIN to compare with epoll_event.events, it is not unsigned\nin musl.\n\nInclude transitive dependencies of static libraries that are not\nneeded by the linker when CFI is enabled, but are detected as\nerrors when CFI is not enabled.\n\nBug: 190084016\nTest: m USE_HOST_MUSL\u003dtrue inputflinger_tests\nChange-Id: I625bb612d5a8816ec5d1ade6d3a887981a549569\n"
    },
    {
      "commit": "a61e4fbf1b2276ae43d23d8889f214f40ca13e20",
      "tree": "c8ac62fe629739be2c934b995c7a1c26f4a6c250",
      "parents": [
        "22c43f5828ea5b995f699f13246ed323539e9575"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 18:29:37 2022 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 19:53:51 2022 +0000"
      },
      "message": "SF: Move TransactionHandler to frontend\n\nMakes it easier to carve out a library in\nthe future.\n\nTest: presubmit\nBug: 238781169\nChange-Id: Iaaa576b47b226114eba48606bffa9ed0dc77c71a\n"
    },
    {
      "commit": "9e9281efceaf69de40dc44c1aa755c3fbd00f80e",
      "tree": "dec59b749b6bc245826694013a4b3e023dd78065",
      "parents": [
        "866e5471742add0442ca03c269b4c269b2c4ab92"
      ],
      "author": {
        "name": "Rheygine Medel",
        "email": "quic_rmedel@quicinc.com",
        "time": "Thu Sep 22 10:13:56 2022 -0700"
      },
      "committer": {
        "name": "Haamed Gheibi",
        "email": "haamed@google.com",
        "time": "Tue Oct 18 10:37:31 2022 -0700"
      },
      "message": "sf: Allow SystemServer to set the display brightness\n\nAs part of the boot up sequence, SystemServer initializes the\nDisplayManagerService to manage the global lifecycle of all displays.\nCurrently, the DisplayManagerService is not permitted to adjust the\ndisplay brightness settings and this is causing boot up failures.\n\nThis change allows SystemServer or AID to set the display brightness\nto avoid such issues.\n\nBug: 248249039\nChange-Id: Ia57c5fc8f3875da4f5ab31ab68d24571a5599fe4\n"
    },
    {
      "commit": "afd527ab1d841df22073f3b8c77ac3349c0e49e1",
      "tree": "121bffd0f2c5e4a3fbad4bea546a64dc8f8349e1",
      "parents": [
        "22c43f5828ea5b995f699f13246ed323539e9575"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 08:56:10 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Oct 18 16:26:49 2022 +0000"
      },
      "message": "SF: Update transform hint when reparenting layers\n\nA layer might be reparented to another display. When that\nhappens, update the transform hint for the layer.\n\nAlso, use the correct display when creating a layer.\n\nBug: 251360251\nTest: move app between displays, rotate, check final buffer transforms\nChange-Id: I742c15319d09804a5d7a4c1aac383893d7a67d53\n"
    },
    {
      "commit": "377c014691fa4386c99805c3522568211e40756d",
      "tree": "0bcfa67fdf8a52d1d7338ed29e74d1054a0935d1",
      "parents": [
        "22c43f5828ea5b995f699f13246ed323539e9575"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Thu Oct 13 17:33:38 2022 +0000"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Tue Oct 18 14:25:13 2022 +0000"
      },
      "message": "SF: Add LayerSnapshotGuard to manage layer snapshot\n\nBug: 238781169\nTest: presubmits\n\nChange-Id: Ie221f9a4601512f4b256b0aa8c6b14fd20901cef\n"
    },
    {
      "commit": "22c43f5828ea5b995f699f13246ed323539e9575",
      "tree": "350845753980d203e25da9ab354dd37fe37d3419",
      "parents": [
        "13316b34d58852697ae7f5da1a231db0f2a87e57",
        "e14c6b35f3af8817381760875139ce0548d9b5d6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 18 07:57:39 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 18 07:57:39 2022 +0000"
      },
      "message": "Merge \"SF: Split FE and CE\""
    },
    {
      "commit": "a4d8aaacbfd2f44b6d8a3041d247b2dc50dd0bd2",
      "tree": "32848be7269213c44d5b6a8fa5211e433637f918",
      "parents": [
        "3a785048711ccd973dfc700394ccdbc98a71f31f",
        "31977184520e99110e1deadceb6197636f76450a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 17 19:01:42 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 17 19:01:42 2022 +0000"
      },
      "message": "Merge \"Run some inputflinger_tests on host\""
    },
    {
      "commit": "31977184520e99110e1deadceb6197636f76450a",
      "tree": "647bdda2d1f182ae7ee7e7fb8390e168d77a8ece",
      "parents": [
        "c08105877d67f18d6592ffacaf2402f0d07953b4"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Sep 30 08:51:23 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Oct 14 16:47:36 2022 -0700"
      },
      "message": "Run some inputflinger_tests on host\n\nSometimes, it\u0027s convenient to execute the input tests without having a\nconnected device. This is especially useful when doing cherry-picks of\npatch on a cloud device.\n\nAllow input code to build for host, and enable the tests for running on\nhost.\n\nBug: 249591924\nTest: atest --host --no-bazel-mode -c -m inputflinger_tests\nChange-Id: Ib9be6a5fb6c35ffc450e41cb2a5688bfb2c8d01a\n"
    },
    {
      "commit": "7b022c606948d80b29b84c666c639963530847c4",
      "tree": "08ff0debb4b030575fa876473334c3da883dfebe",
      "parents": [
        "9be5e063c5d4df062c07d6702e27bfb9c94c37be",
        "39b7ca2933ffde9094aed908a507158d20be3d7a"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Fri Oct 14 08:25:07 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 14 08:25:07 2022 +0000"
      },
      "message": "Merge \"Report motion offsets for touchpad swipes\""
    },
    {
      "commit": "9be5e063c5d4df062c07d6702e27bfb9c94c37be",
      "tree": "315953d5892d7fa101c45434d1012b38e01fadcc",
      "parents": [
        "c08105877d67f18d6592ffacaf2402f0d07953b4",
        "306633e5896bcb3170c1a84471f34d1aa9c035e9"
      ],
      "author": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Fri Oct 14 06:53:59 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 14 06:53:59 2022 +0000"
      },
      "message": "Merge \"Add bugreport pre-dump functionality\""
    },
    {
      "commit": "c08105877d67f18d6592ffacaf2402f0d07953b4",
      "tree": "0b94c1ade54340d85dbb29797e7f1fd5f003e1c5",
      "parents": [
        "b7d92d9f73ed78732a73927cbbad2b6a96d29bf4",
        "0cbd08bfe4bda34fabd60cefd503efaf6c4eb2b3"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Thu Oct 13 21:29:46 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 13 21:29:46 2022 +0000"
      },
      "message": "Merge \"SurfaceFlinger HWC overlay API\""
    },
    {
      "commit": "e14c6b35f3af8817381760875139ce0548d9b5d6",
      "tree": "6ac6b706b3dd1f3cc81d1daa1b03395c21194d81",
      "parents": [
        "eb38d4613545b89858df521af7d3a78a8a27abbc"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Aug 06 04:20:15 2022 +0000"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Thu Oct 13 21:11:27 2022 +0000"
      },
      "message": "SF: Split FE and CE\n\nMake LayerFE a standalone class with no links back to Layer. Pass\nLayerSnapshot from Layer into LayerFE before CompositionEngine::present\nand back after.\n\nBug: 238781169\nTest: go/wm-smoke\nTest: presubmit\n\nChange-Id: I5395fb717a931f88e2bf26395acd21e8b308961e\n"
    },
    {
      "commit": "b7d92d9f73ed78732a73927cbbad2b6a96d29bf4",
      "tree": "bffe8a3dc0cc07c31a389ad313f2cd9e4b5d9d09",
      "parents": [
        "465d99f75d61c8991d6bae5bb6d7355afaffbe3a",
        "c3894a4df8d8362fe5b1ccb9ee0ddb6ead046003"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Oct 13 19:55:35 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 13 19:55:35 2022 +0000"
      },
      "message": "Merge \"Extend PowerHalWrapper to support HIDL 1.2 and 1.3\""
    },
    {
      "commit": "465d99f75d61c8991d6bae5bb6d7355afaffbe3a",
      "tree": "abdcf5eb6854a6187b43ce1ec516813fbb33081f",
      "parents": [
        "ec87f5329060de1e580f5dfccb9c7a8be5c63759",
        "016025220cccd0ee963829340346b2f989722cab"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Oct 13 19:53:39 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 13 19:53:39 2022 +0000"
      },
      "message": "Merge changes I355dea76,I63d21c22\n\n* changes:\n  SF: Simplify per-display refresh rate selection\n  SF: Deduplicate FakeDisplayInjector\n"
    },
    {
      "commit": "016025220cccd0ee963829340346b2f989722cab",
      "tree": "368d40019ec2ddb542a9ac4035a3388263a6eb79",
      "parents": [
        "327d609d643eed24c8d0c527f121099ed44b8b1f"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Oct 07 19:02:28 2022 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Oct 13 12:50:33 2022 -0400"
      },
      "message": "SF: Simplify per-display refresh rate selection\n\nRemove verbose, single-use helper functions/types to centralize the\nselection logic and merge two passes. Avoid allocation and hashing.\n\nFix the algorithm to not choose a refresh rate based on total score\nunless it is common to all displays, and not be thrown off by equal\nscores.\n\nBug: 241285191\nTest: libsurfaceflinger_unittest\nChange-Id: I355dea767c6b564a04a51476f0cc235a1fceb879\n"
    },
    {
      "commit": "39b7ca2933ffde9094aed908a507158d20be3d7a",
      "tree": "a0e3ebef1f565839d919186480e0b4a833990a64",
      "parents": [
        "f1f601e01d6af47d658b7ba30fbe8f4b8f84b283"
      ],
      "author": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Wed Oct 05 15:55:48 2022 +0000"
      },
      "committer": {
        "name": "Harry Cutts",
        "email": "hcutts@google.com",
        "time": "Thu Oct 13 10:39:16 2022 +0000"
      },
      "message": "Report motion offsets for touchpad swipes\n\nAdds two new axes, AXIS_GESTURE_X_OFFSET and AXIS_GESTURE_Y_OFFSET,\nwhich report the movement of swipe gestures on the touchpad as a\nfraction of the touchpad\u0027s size.\n\nBug: 246758376\nTest: check axis values come through in a test app\nChange-Id: I313410053a8db13273bd05a33d3a6a1f75081dae\n"
    },
    {
      "commit": "c3894a4df8d8362fe5b1ccb9ee0ddb6ead046003",
      "tree": "147006b58f8e2411d9251eac97201901a41bfd39",
      "parents": [
        "cf1fb689002563d03d3f72e434caa357f3a6dfff"
      ],
      "author": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Sep 01 21:17:15 2022 +0000"
      },
      "committer": {
        "name": "Matt Buckley",
        "email": "mattbuckley@google.com",
        "time": "Thu Oct 13 00:18:19 2022 +0000"
      },
      "message": "Extend PowerHalWrapper to support HIDL 1.2 and 1.3\n\n * Added support for 1.2 and 1.3 HIDL calls to the PowerHalWrapper\n * Expanded the wrapper and loader tests to cover these new versions\n * Lightly tweaked the existing tests to make them more comprehensive\n\nBug: b/244631171\nTest: atest libpowermanager_test\n\nChange-Id: I5890106817b7cf243cdd21b3acf22ff7fcd8174e\n"
    },
    {
      "commit": "327d609d643eed24c8d0c527f121099ed44b8b1f",
      "tree": "22e7e345230f05e8d69bd59fdbf14688eec5bb55",
      "parents": [
        "87717eafed72e18f4b608d49129078f8c5a2eb96"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Oct 11 18:05:08 2022 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Oct 12 11:48:45 2022 -0400"
      },
      "message": "SF: Deduplicate FakeDisplayInjector\n\nAlso, parametrize to inject secondary internal display.\n\nBug: 241285876\nTest: libsurfaceflinger_unittest\nChange-Id: I63d21c2216a3ab864b040bdb2c9e8fba0768b66a\n"
    },
    {
      "commit": "eb38d4613545b89858df521af7d3a78a8a27abbc",
      "tree": "875c1dbf88ffff9ed7cd2a961a9bd9526375198f",
      "parents": [
        "87717eafed72e18f4b608d49129078f8c5a2eb96",
        "167c270ea82781d0a003c05292ff623fcb5f8243"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Oct 12 14:36:45 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 12 14:36:45 2022 +0000"
      },
      "message": "Merge changes from topic \"inputdevice-supportsusi\"\n\n* changes:\n  Determine whether an input device supports USI using IDC files\n  TouchInputMapper: Cancel ongoing gesture when resetting\n  TouchInputMapper: Use early return in populateDeviceInfo\n"
    },
    {
      "commit": "e70fb0319ec7b50b9fbedb35c3d7416d4e211da6",
      "tree": "36ac3de780f386c1527b30e503c1d7fa97d244af",
      "parents": [
        "bad35774d636387dde6f6518a79a73490fc17a84",
        "640b7290a5704a8d26875968c0050e8978b63638"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 11 22:28:47 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 11 22:28:47 2022 +0000"
      },
      "message": "Merge \"SF: Trace buffer cache errors\""
    },
    {
      "commit": "bad35774d636387dde6f6518a79a73490fc17a84",
      "tree": "f48f1188b474ab91e1568f396411db5165e57df7",
      "parents": [
        "4fc6c27fe49e8358deb8b3b5c886e5fec6fe0fca",
        "7c487288d388141ecefd14ae2e41e0ffe8e683b5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 11 22:17:26 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 11 22:17:26 2022 +0000"
      },
      "message": "Merge \"Add the filter to select the refresh rate\""
    },
    {
      "commit": "b05ee3a0ddf4d5ad0bd6133d972c85e996624d24",
      "tree": "c0dcb9aef83e5dbbc99526f4a7fb3855232ebed2",
      "parents": [
        "a76c09adfb229dbe626e25b9eae98acec0ce7f01",
        "95df6a1ceb72675c6cbf03a1a4e86aeda4a4b59c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 11 21:04:07 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 11 21:04:07 2022 +0000"
      },
      "message": "Merge \"SF: Remove DisplayModeSelectionParams\""
    },
    {
      "commit": "7c487288d388141ecefd14ae2e41e0ffe8e683b5",
      "tree": "73e4cfb6872bed3cf7ae0ca3e701b0d74e169f77",
      "parents": [
        "d55a464db01e53fd9e049e0ebc3b0d1690298e71"
      ],
      "author": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Mon Oct 10 16:17:51 2022 -0700"
      },
      "committer": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Tue Oct 11 12:52:24 2022 -0700"
      },
      "message": "Add the filter to select the refresh rate\n\nThis select the refresh rate with max score\nand is present on all the displays.\n\nTest: unit test\nBUG: 240743471\nChange-Id: I66d5b7b258d418daf9734386cd42b3e91482212c\n"
    },
    {
      "commit": "640b7290a5704a8d26875968c0050e8978b63638",
      "tree": "63cbb877ba9acea58eefabe4f4ae3369ce472449",
      "parents": [
        "83876a7381c9d9b375632da308f7a9d6a804c957"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Tue Oct 11 19:25:06 2022 +0000"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Tue Oct 11 19:25:06 2022 +0000"
      },
      "message": "SF: Trace buffer cache errors\n\nBug: 244218818\nTest: presubmits\nChange-Id: I68e46d1952fe064f6f21958108cfc75e96976b3a\n"
    },
    {
      "commit": "4b10fc87bf090508561e7860094abe848432e7c0",
      "tree": "0316fcf95345ed603d0200bb3c6281a2ea6b681f",
      "parents": [
        "f1f601e01d6af47d658b7ba30fbe8f4b8f84b283",
        "bbceb46b722db9d1ececb909c845e45302721f89"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 11 17:43:17 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 11 17:43:17 2022 +0000"
      },
      "message": "Merge \"SurfaceComposerClient: Clean up layer state\""
    },
    {
      "commit": "0b576743a62eb19292ab609adc29bc68eba52cc3",
      "tree": "10581eddea8047c96fc8d5cf56c0ca3b28b2d1e6",
      "parents": [
        "32963aca6590443ab4c49a9dbc7fced6819964af",
        "707578b87ba6b4c70a7f1e27142133df87864bdc"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Oct 11 17:39:19 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 11 17:39:19 2022 +0000"
      },
      "message": "Merge \"Merge tm-qpr-dev-plus-aosp-without-vendor@9129937\" into stage-aosp-master"
    },
    {
      "commit": "95df6a1ceb72675c6cbf03a1a4e86aeda4a4b59c",
      "tree": "ac53ff5e30022b0d3c968cce21a6d4e1a9bdc9a4",
      "parents": [
        "a39238eec91605186771bc2181d242570b32dc11"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Oct 07 18:11:07 2022 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Oct 11 13:23:59 2022 -0400"
      },
      "message": "SF: Remove DisplayModeSelectionParams\n\nExtract makeGlobalSignals instead. Inline getRankedDisplayModes.\n\nBug: 241285191\nTest: libsurfaceflinger_unittest\nChange-Id: Ic48ac3ad1bd9df6820c9c9e5f6384b8d15b38809\n"
    },
    {
      "commit": "f1f601e01d6af47d658b7ba30fbe8f4b8f84b283",
      "tree": "82d159018f03cfb759f68d74939816555d82bfe3",
      "parents": [
        "ae3bc147c91fe1375921264fbcee80ce6a252095",
        "fcb1686a3f396ebb45789b8231e1ed8669af681b"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Oct 11 04:01:38 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 11 04:01:38 2022 +0000"
      },
      "message": "Merge \"SF: make FrameTimeline more robust for fence errors\""
    },
    {
      "commit": "6cd4a64d1ac58c0ed28dbb598db6a2b0cb6a79c4",
      "tree": "8dbd474bf4774371648bc100d2d9384962b0ce63",
      "parents": [
        "666a7bf602218e8c33b72ab7c318350c43515c2f",
        "0b186a3b4368f199b10062e6984f1281b05c80d3"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Oct 11 00:42:35 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Oct 11 00:42:35 2022 +0000"
      },
      "message": "Merge \"Fix dumpDebugInfo blocked and phone hanging\" am: 7cde9f29b4 am: 95873b656c am: 0b186a3b43\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2229637\n\nChange-Id: I185a2c187b44bb6cd5629320ec10a995ec0d11b2\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "666a7bf602218e8c33b72ab7c318350c43515c2f",
      "tree": "976adc48b5fdc2eb84097bf4270086e6fcac19a7",
      "parents": [
        "1b07e1c6510b2ec61e5714174e8025a4a40c8de9",
        "d71299ebf092a0ace157915d865ca2e2ef025357"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Tue Oct 11 00:13:04 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 11 00:13:04 2022 +0000"
      },
      "message": "Merge \"Remove vsync injection methods\""
    },
    {
      "commit": "0b186a3b4368f199b10062e6984f1281b05c80d3",
      "tree": "239bd2f27fc2bdd4aa0dcc59b2c4993a304dc974",
      "parents": [
        "458e30147c704de4fc7362bdf1d24a731d7766b2",
        "95873b656cd90d4baeadb3fa5aae947ffefb752f"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Oct 11 00:09:17 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Oct 11 00:09:17 2022 +0000"
      },
      "message": "Merge \"Fix dumpDebugInfo blocked and phone hanging\" am: 7cde9f29b4 am: 95873b656c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2229637\n\nChange-Id: I5952442ef456e75c1ef8058ec6db337eaf67cbf9\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "fcb1686a3f396ebb45789b8231e1ed8669af681b",
      "tree": "73953361f237f26f4da87455da9c5cd65329129b",
      "parents": [
        "19a25ec03e4764f263af1f4bff3dbb63e17d1fc8"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Oct 10 14:35:21 2022 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Oct 10 15:23:55 2022 -0700"
      },
      "message": "SF: make FrameTimeline more robust for fence errors\n\n- Emit a valid timestamp to Perfetto when fence signal time is invalid\n- Mark pending fences as invalid if a newer fence has signaled\n\nTest: SF unit tests\nBug: 243939707\nChange-Id: Ieac7eb53fe3e36178d860cc0683bfd8fad7560cd\n"
    },
    {
      "commit": "d71299ebf092a0ace157915d865ca2e2ef025357",
      "tree": "ea0168fba066cc103b3a40eb3da9d24d5ce2a270",
      "parents": [
        "12417baa665898b114a346f11c81cd526baa505a"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Aug 19 17:37:01 2022 -0700"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Mon Oct 10 14:56:19 2022 -0700"
      },
      "message": "Remove vsync injection methods\n\nThese methods are no longer used.\n\nBug: 169865816\nBug: 241285477\nTest: atest libgui_test libsurfaceflinger_unittest SurfaceFlinger_test\n\nChange-Id: I773570802134e68289db483cf3c22f3125ace472\n"
    },
    {
      "commit": "bbceb46b722db9d1ececb909c845e45302721f89",
      "tree": "8a8685b42b9e1cd4535a717256fe848d7abfbbff",
      "parents": [
        "933a6bfdb7d5d77cfda1e4646cf9a3a985d4e562"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 10 04:52:13 2022 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 10 20:51:24 2022 +0000"
      },
      "message": "SurfaceComposerClient: Clean up layer state\n\n- align layer alpha/color with SF layer drawing state\n- remove unused flags and fields\n\nBug: 238781169\nTest: presubmit\n\nChange-Id: I4be9c56b3006b7d7a0ca19160511ebb9e3551a8c\n"
    },
    {
      "commit": "933a6bfdb7d5d77cfda1e4646cf9a3a985d4e562",
      "tree": "2165e618b1aa455be1534a4a1d7e046a746c30a2",
      "parents": [
        "12417baa665898b114a346f11c81cd526baa505a",
        "b8fd3ef57dd02e0f9c171c3ba9775ca781cd5527"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 10 19:20:42 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 10 19:20:42 2022 +0000"
      },
      "message": "Merge \"Delete struct PointerData to fix ODR violation\""
    },
    {
      "commit": "167c270ea82781d0a003c05292ff623fcb5f8243",
      "tree": "56ae55e642e0f39224a8b5bba37c62d591387a8d",
      "parents": [
        "f5b4d7a828fe02044a92da0f2f512ee2763d6539"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Sep 14 00:37:24 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Oct 10 19:09:07 2022 +0000"
      },
      "message": "Determine whether an input device supports USI using IDC files\n\nIt is necessary to identify a USI device so that additional logic can be\napplied to the battery information that is exposed via USI.\n\nBug: 243005009\nTest: manual, check dumpsys output\nChange-Id: I697008e6600ef16b7ecde85c99732759747b8a9b\n"
    },
    {
      "commit": "f5b4d7a828fe02044a92da0f2f512ee2763d6539",
      "tree": "58f6f2b8b780fdf6d73392ae4dc7d61caac60d69",
      "parents": [
        "edb0ba739a01d5f9c07e5a6bb88cd0b985f9986f"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Oct 03 15:45:50 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Oct 10 19:09:05 2022 +0000"
      },
      "message": "TouchInputMapper: Cancel ongoing gesture when resetting\n\nSince reset is called when a device is being enabled or disabled, if it\ndoesn\u0027t cancel ongoing gestures, there is a possiblity of seeing an\ninconsistent gesture stream.\n\nAlso, make sure we send FLAG_CANCELED when sending ACTION_CANCEL from\nTouchInputMapper.\n\nBug: 245989146\nTest: atest inputflinger_tests\nChange-Id: I9921eee9acf365b28d97f3fbe9b4d6cd15fe7087\n"
    },
    {
      "commit": "edb0ba739a01d5f9c07e5a6bb88cd0b985f9986f",
      "tree": "ac6425baaf6069bcfda76c1b01dad43149e50c8a",
      "parents": [
        "12417baa665898b114a346f11c81cd526baa505a"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Oct 04 15:44:11 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Oct 10 18:44:26 2022 +0000"
      },
      "message": "TouchInputMapper: Use early return in populateDeviceInfo\n\nUsing the early return reduces the indentation level and is more\nreadable.\n\nBug: 245989146\nTest: atest inputflinger_tests\nChange-Id: I5ebaac48e8ec390824f2c8889c301f291c5d17ab\n"
    },
    {
      "commit": "12417baa665898b114a346f11c81cd526baa505a",
      "tree": "76a692a516522963fbbd6151100a9e1ba3f44567",
      "parents": [
        "83876a7381c9d9b375632da308f7a9d6a804c957",
        "eee671eb373e06c9ddd9920921fa0c4b60cfff0a"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Mon Oct 10 16:10:51 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 10 16:10:51 2022 +0000"
      },
      "message": "Merge \"Add MAXIMUM_VALID_AMOTION_EVENT_AXIS_VALUE\""
    },
    {
      "commit": "b8fd3ef57dd02e0f9c171c3ba9775ca781cd5527",
      "tree": "30d5741a96e119cffd69d2830afbb6b2ec5bee37",
      "parents": [
        "5a1e9348471743066a54053b1a7c927ee83af5fc"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Oct 10 08:03:54 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon Oct 10 08:16:26 2022 -0700"
      },
      "message": "Delete struct PointerData to fix ODR violation\n\nThis data structure is defined with the same name in\nPreferStylusOverTouch_test and in UnwantedInteractionBlocker_test. This\ncreates a \"one-definition-rule\" violation.\nThis violation is not getting caught by the compiler today.\n\nAs a result, this causes the read to go out of bounds when the wrong\ndata structure is used. The issue can be reproduced by running the tests\non host.\n\nTo fix it, simply remove this struct and fallback to the Point struct\nfrom libui.\n\nBug: 217165277 249591924 251318977\nTest: atest --host --no-bazel-mode inputflinger_tests\nChange-Id: I79e0647df63bbf69dd3074f1bd2931b298f4cd48\n"
    },
    {
      "commit": "83876a7381c9d9b375632da308f7a9d6a804c957",
      "tree": "b1082099370e49fab60d2cffc8acb3c307357da8",
      "parents": [
        "bdc7074d161a9ad9bc3ea6422abcc02f83a7265e",
        "a361de6e3b7bac5a47f6098d49c5a1acb5baf476"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Mon Oct 10 13:26:27 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 10 13:26:27 2022 +0000"
      },
      "message": "Merge \"Add layer name to layer_state_t and SurfaceControl\""
    },
    {
      "commit": "065cab687d19d3943523d37cd7b9d8129f269481",
      "tree": "54f4b512d8d8ab1c2bf9b340f8f7c4a700624314",
      "parents": [
        "eed866becb018118d45802ed36de2cf72b0da67a",
        "ab8ffef9fe8845e72d19bd728da5266398cba002"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Sat Oct 08 00:41:45 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Oct 08 00:41:45 2022 +0000"
      },
      "message": "Merge \"Remove SurfaceInterceptor and surfacereplayer\""
    },
    {
      "commit": "a361de6e3b7bac5a47f6098d49c5a1acb5baf476",
      "tree": "08a81a299df00b54e737f668d992b257621a048c",
      "parents": [
        "1d2b5a4f82eb00d3f980fe5eb6ac14c48f059a60"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Thu Oct 06 20:34:10 2022 +0000"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Oct 07 23:00:08 2022 +0000"
      },
      "message": "Add layer name to layer_state_t and SurfaceControl\n\nThis information will be used in subsequent CLs to trace layer cache events.\n\nBug: 244218818\nTest: presubmits\nChange-Id: I98bcd97310e3a2f061994481911073e8a1545cab\n"
    },
    {
      "commit": "ab8ffef9fe8845e72d19bd728da5266398cba002",
      "tree": "87dbbc2aca791c7bf881111d5f96359528e61952",
      "parents": [
        "d55a464db01e53fd9e049e0ebc3b0d1690298e71"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Thu Aug 18 13:02:26 2022 -0700"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Oct 07 15:06:47 2022 -0700"
      },
      "message": "Remove SurfaceInterceptor and surfacereplayer\n\nBoth are no longer used and thus obsolete.\n\nIgnore-AOSP-First: depends on other changes on master\nBug: 241285477\nTest: atest libgui_test libsurfaceflinger_unittest SurfaceFlinger_test\nChange-Id: I1858826b9eca27b355edb4236510e3aad1ddb399\n"
    },
    {
      "commit": "eee671eb373e06c9ddd9920921fa0c4b60cfff0a",
      "tree": "9b4692db7d5e808d099edeb8da414d50dc2e231d",
      "parents": [
        "d110ab8ea07c197cb849e52130ebde18ce392f1a"
      ],
      "author": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Thu Oct 06 15:13:34 2022 -0700"
      },
      "committer": {
        "name": "Yeabkal Wubshit",
        "email": "yeabkal@google.com",
        "time": "Fri Oct 07 19:48:06 2022 +0000"
      },
      "message": "Add MAXIMUM_VALID_AMOTION_EVENT_AXIS_VALUE\n\nThis helps to standardize checks for the max possible motion event axis\nvalue.\n\nBug: 32830165\nTest: static assert added\nChange-Id: I664ee86b065745720a1af4d07c577eb088525d3d\n"
    },
    {
      "commit": "860c2bf73275343cac599cb1a44e6f67c6e65047",
      "tree": "c699aceaebf4854d421af704c09656ed1fdf08b2",
      "parents": [
        "d55a464db01e53fd9e049e0ebc3b0d1690298e71",
        "37d4692067e7da5b8fede2ddeab23780b60819e0"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Oct 07 19:04:52 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 07 19:04:52 2022 +0000"
      },
      "message": "Merge \"SF: avoid changing refresh rate for ExplicitExact\""
    },
    {
      "commit": "58847c5612f9b07d783d45ec815b40a00507be5a",
      "tree": "4ffe3ab0a7408aa95b3d9dcd8bb27232e0dbba14",
      "parents": [
        "8eb983cefaa6981865017dc6c9a6879e2145b1f5"
      ],
      "author": {
        "name": "yihsing.shen",
        "email": "yihsing.shen@mediatek.com",
        "time": "Fri Sep 23 15:39:30 2022 +0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Oct 07 17:11:58 2022 +0000"
      },
      "message": "Fix dumpDebugInfo blocked and phone hanging\n\nHWC would be blocked in writing to pipe seldom due to pipe is full unless SurfaceFlinger read data from pipe. To prevent that, we use\nother thread to read data from pipe while HWC is writing.\n\nBug: 248668158\nTest: dumpsys pass\nChange-Id: Iae03fd36da657bfe8a6959b84479a1be9f182db9\n"
    },
    {
      "commit": "e8296bdc18521152c7c8f661f08f6aca3fd3ad03",
      "tree": "8594be4dacec34cf409812dfc7dd40e2de592bcd",
      "parents": [
        "e0358af0eb56fe7c240444b62ea0186071a079c3",
        "6c7fd13ce96e00ce5e860a005ce046dec7e1ecee"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Oct 07 14:09:25 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Oct 07 14:09:25 2022 +0000"
      },
      "message": "Preserve multi-touch slot state when resetting input mappers am: 6c7fd13ce9\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/20083038\n\nChange-Id: Ib5b1867903955458c8d9ff7fa5ec5911ae521172\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b8dda5c2a4dd09b90550c85b3e2b264d168e4e75",
      "tree": "c4af92c971693c70763075fa79614b22f2583247",
      "parents": [
        "290e61ee6d0a96b8bd3cf8a051885f48462a7251",
        "69b58e83f320fc39955d2e1a64bb6ad98059ae3d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 07 03:58:43 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 07 03:58:43 2022 +0000"
      },
      "message": "Merge \"[MD] Single refresh rate selection\""
    },
    {
      "commit": "290e61ee6d0a96b8bd3cf8a051885f48462a7251",
      "tree": "20f90283b8b532d73834cddfdb3c28d4b9fc6c2f",
      "parents": [
        "19883534586d29a306302a41306405d5efdc4b2e",
        "31b5ac21e84a0fde6483dc8487af664582dcc5ee"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Oct 07 03:57:34 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 07 03:57:34 2022 +0000"
      },
      "message": "Merge \"Remove internal display related methods\""
    },
    {
      "commit": "69b58e83f320fc39955d2e1a64bb6ad98059ae3d",
      "tree": "76c5c93e5ac3037439cdb39e18da33cb9a884ad2",
      "parents": [
        "19883534586d29a306302a41306405d5efdc4b2e"
      ],
      "author": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Mon Sep 26 16:48:36 2022 -0700"
      },
      "committer": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Fri Oct 07 01:24:41 2022 +0000"
      },
      "message": "[MD] Single refresh rate selection\n\nSelects the single refresh rate for all the\ndisplays.\n\nBUG: 240743471\n\nTest: atest libsurfaceflinger_unittest\nChange-Id: Ifa1bf23bc991fe60e67dba1cb31077e42fd5396e\n"
    },
    {
      "commit": "f2b0478f761cbc38abce2a8584c97c1a3c16b1be",
      "tree": "c813b76f2ba3aba9336a5536d29ce76c0c47c2ef",
      "parents": [
        "5a1e9348471743066a54053b1a7c927ee83af5fc",
        "59f6d2df6cbc895651eb2628c9f98505ed9de8bf"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 06 17:05:44 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 06 17:05:44 2022 +0000"
      },
      "message": "Merge \"SF: Add TransactionHandler\""
    },
    {
      "commit": "5a1e9348471743066a54053b1a7c927ee83af5fc",
      "tree": "254797ef31463d0dee3f7591709f0d0a67001777",
      "parents": [
        "b63e95b08836fd8b37997644e6b189d4c7489fb1"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Oct 05 15:10:05 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Oct 06 13:43:56 2022 +0000"
      },
      "message": "Delete InputFlingerService_test\n\nThis test currently has 2 test cases:\n1) sends an inputchannel via binder and then asks for it back. This is\n   just implementation of the service, so it\u0027s just testing the\n   implementation.\n2) checks that an fd that\u0027s sent over binder remains non-blocking. A\n   similar test was already committed into binderLibTest as\n   aosp/2239719. This is general binder behaviour, and it\u0027s better if it\n   lives next to the binder stuff. We don\u0027t need this test in input.\nTherefore, delete this test. It\u0027s causing some crashes on hwasan devices\nwhen libinput is linked statically, and the setup is too complicated to\nget correctly (and the setup is already done for us in binderLibTest).\n\nBug: 217165277\nTest: atest --host --no-bazel-mode inputflinger_tests libinput_tests\nChange-Id: Iff9970465018e2a9ba73377c3332e014c870e160\n"
    },
    {
      "commit": "59f6d2df6cbc895651eb2628c9f98505ed9de8bf",
      "tree": "4ccb96004846f9fb507f0e413db68e4eafdffde0",
      "parents": [
        "1523dad8dc7c2cd9a110e0839ada541f49920a75"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Oct 05 16:59:56 2022 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Oct 06 03:28:52 2022 +0000"
      },
      "message": "SF: Add TransactionHandler\n\n- migrate transaction queueing and flushing into\n  a new class and remove dependencies from\n  other components.\n- Add a filter interface for other components to\n  participate in transactionready logic.\n\nTest: presubmit\nBug: 238781169\nChange-Id: Ia4da386cd72058126f6f765adafb9cb4d15b1d2b\n"
    },
    {
      "commit": "37d4692067e7da5b8fede2ddeab23780b60819e0",
      "tree": "86eeb9ef9a53948626b82c4bbd62c8c7fdf3963a",
      "parents": [
        "19a25ec03e4764f263af1f4bff3dbb63e17d1fc8"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Oct 05 13:08:51 2022 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Oct 05 23:26:24 2022 +0000"
      },
      "message": "SF: avoid changing refresh rate for ExplicitExact\n\nWhen a layer with ExplicitExact vote is present and the corresponding\nrefresh rate is not available, the refresh rate should remain the same.\n\nBug: 246230302\nTest: SF unit tests\nChange-Id: I3e1712d6494fc9fc46b8d26fdae310231f57e7b1\n"
    },
    {
      "commit": "d8dd1482f80c5afaee0f357f1701ee4c5479bc48",
      "tree": "318c0740255de15af06e32c1fc7c0af47f83d27f",
      "parents": [
        "10f71e70fd7c821751ca44c775abfcb2465adce2",
        "2935db7177bf6ddee879883da5b0a07846f44391"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Oct 05 22:13:19 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 05 22:13:19 2022 +0000"
      },
      "message": "Merge \"Return events from mappers and InputDevice\""
    },
    {
      "commit": "10f71e70fd7c821751ca44c775abfcb2465adce2",
      "tree": "5cca12fbedff6b49154d4f13ccadbbd8311406ac",
      "parents": [
        "b7ebd507c984904793a503a195bcafba2be7865d",
        "e591b55b7028d3f092e0377f96ea68c990d62903"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 21:58:19 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 05 21:58:19 2022 +0000"
      },
      "message": "Merge changes If83c9084,Iee87316e\n\n* changes:\n  SF: Identify the active display with its ID\n  SF: Refactor setter for DM and override policy\n"
    }
  ],
  "next": "2935db7177bf6ddee879883da5b0a07846f44391"
}
