)]}'
{
  "log": [
    {
      "commit": "f7f5aac06830d17a2c1337e0095fb9ddaf8a0314",
      "tree": "7089a90a6c0bbd1cedd997a8f99e28a63bbf862c",
      "parents": [
        "5098a11f7ebffcb98179192ff4159a2a9d7fb368",
        "14d5b8632c365428cb5f69f119365dff86ecc77f"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Apr 29 15:16:21 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 29 15:16:21 2022 +0000"
      },
      "message": "Merge \"Propagate HDR information to screenshot animation.\" into tm-dev"
    },
    {
      "commit": "5098a11f7ebffcb98179192ff4159a2a9d7fb368",
      "tree": "1f83421781674bf8af525021f007e61ff7d04316",
      "parents": [
        "35f6eafffe1577b25f759e5aa815832b18847d24",
        "f99d6e7b3e9676d08b62fdd1ba966ccfe6c8d72d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 29 14:12:55 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 29 14:12:55 2022 +0000"
      },
      "message": "Merge \"Reland \"Disable mouse acceleration and scaling when Pointer Capture is enabled\"\" into tm-dev"
    },
    {
      "commit": "35f6eafffe1577b25f759e5aa815832b18847d24",
      "tree": "8aef319f20c78aa8d6db1296bff31f2ccfabfd1a",
      "parents": [
        "0ba469a719fdd9db5da6ec57d0ad6be6b1649ebd",
        "95f686177953b5558b3154269b6407b7325604dc"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Apr 29 01:32:39 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 29 01:32:39 2022 +0000"
      },
      "message": "Merge \"Set initial meta state to AMETA_NONE\" into tm-dev"
    },
    {
      "commit": "0ba469a719fdd9db5da6ec57d0ad6be6b1649ebd",
      "tree": "2aff6834aaf2aa51dd2cdb91ef2c7c7bc7ac06e3",
      "parents": [
        "faa3b8795a127c5ca6a5a3d9add2a13751c4d6ed",
        "6c903caaacc17cafced3caaf18e7325467eeabfd"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Fri Apr 29 01:05:59 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 29 01:05:59 2022 +0000"
      },
      "message": "Merge \"Fix rotation flicker issue when screenshot rotates with HDR content.\" into tm-dev"
    },
    {
      "commit": "14d5b8632c365428cb5f69f119365dff86ecc77f",
      "tree": "1d6a9ad0533f1ddaf18fbbf20ade5d35bc2a7a33",
      "parents": [
        "f18ac6cac6c38bfaf02068fe167d3936c70469bf"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Apr 27 21:20:04 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Apr 28 22:37:25 2022 +0000"
      },
      "message": "Propagate HDR information to screenshot animation.\n\nThe screenshot animation must know whether the screenshot contains HDR\nlayers so that it can correctly inform SurfaceFlinger whether its layer\ncan be dimmed.\n\nThis is due to the interplay of the following:\n1. Devices are now able to configure DisplayManager to send\n   significantly lower SDR white points relative to display brightness\n   to SurfaceFlinger when HDR is simultaneously on-screen.\n2. AIDL composer is required to support per-layer dimming, so that SDR\n   layers may be dimmed to preserve the relative luminance of HDR video\n   content.\n3. Because the screenshot does not contain an HDR transfer function,\n   SurfaceFlinger will treat the layer as SDR, and attempt to dim it.\n4. Screen rotations containing HDR layers must request SurfaceFlinger to\n   present the rotated screenshot at display brightness, to override\n   (3) above. Otherwise, HDR content captured in the screenshot will\n   suddenly dim during the rotation animation.\n5. Also due to (3), DisplayManager no longer thinks that there is HDR\n   content on screen, so a prior patch treated layers that requested to\n   to be dimmed to be reported as HDR\n   (I1d1b0dcaf230300ca34b84ea407d0817feb2c664). Otherwise, the display\n   brightness will decrease during the animation and ramp back up\n   afterwards.\n6. But because of (5), screenshots that only contained SDR layers were\n   incorrectly treated as HDR, which caused the display brightness to\n   ramp up during the animation.\n\nThis patch fixes (6) by allowing for the screenshot animation to learn\nwhether the screenshot contains HDR layers, and request dimming\ncapabilities accordingly.\n\nBug: 230068567\nTest: screen rotation\nChange-Id: I6bbb2433f976e368bfe2c04e084e110cfb551c15\n"
    },
    {
      "commit": "6c903caaacc17cafced3caaf18e7325467eeabfd",
      "tree": "8002bf1fbbd126e18b23d12fac52af8860b74c9d",
      "parents": [
        "8e5ba105c7d1e4606f79d5ca941be1dfe57261a6"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Mon Apr 25 11:24:20 2022 -0700"
      },
      "committer": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Thu Apr 28 14:35:34 2022 -0700"
      },
      "message": "Fix rotation flicker issue when screenshot rotates with HDR content.\n\n- instead of using max luminance, assign whitePointNits according to if\n  the layer is an HDR one.\n\nBug: 229694638\nTest: play HDR video on YouTube and rotates\nChange-Id: I7c6e6a1112bcc2c5a13f07172492a02552ea9a53\n"
    },
    {
      "commit": "b089aa579f5fcb80e1e3681a863c129a908fafc1",
      "tree": "2720efa5eabf59eedfa849bc624a8e4357459c5f",
      "parents": [
        "6caac6124fba5df984bdd626b4471be18d172b31",
        "6852bff70857128f10e8eab6e17aa5b089ebb94e"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Apr 28 20:42:14 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 20:42:14 2022 +0000"
      },
      "message": "Merge \"Remove root layer when clearing mLayersPendingRemoval\" into tm-dev"
    },
    {
      "commit": "6caac6124fba5df984bdd626b4471be18d172b31",
      "tree": "026bdceb36d5eadff0a4048a27e0f2f18a7698e3",
      "parents": [
        "85ba66b763017e465aa27e9712f85137285459f5",
        "dda07d9be6dd032cd1bba422d94fa1fc6af69a4e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 28 20:37:47 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 20:37:47 2022 +0000"
      },
      "message": "Merge \"Allow SurfaceFlinger to treat 170M as sRGB.\" into tm-dev"
    },
    {
      "commit": "02ecde03619acd9d3d5d50ed0c23851734896934",
      "tree": "983a98b6642c90567d57c6fec89aa3bb2004146b",
      "parents": [
        "5d7e9601786b48e3b944c59493a8d3a982907479",
        "d4206714c9db0fe58b536de877755839643ed09e"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Apr 28 13:05:33 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 13:05:33 2022 +0000"
      },
      "message": "Merge \"Address ghost spots that show up after touchscreen is re-enabled\" into tm-dev"
    },
    {
      "commit": "cd6ebf350b640b8bae4eb4dfadca695ea1153ad7",
      "tree": "db850647286ca7caa138118b9a3195eb1d8f2e95",
      "parents": [
        "7a559b5d16c21899e6d0b027b144f27b3424b2e9",
        "2c043bedc96c31b6c01060e073b8c1aaf8cd02e6"
      ],
      "author": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Thu Apr 28 00:06:37 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 28 00:06:37 2022 +0000"
      },
      "message": "Merge \"Use the primaryDisplayRotationFlags for the source crop calculation\" into tm-dev"
    },
    {
      "commit": "dda07d9be6dd032cd1bba422d94fa1fc6af69a4e",
      "tree": "44f51d4b09c3fe77140a64955d2799899e0a431b",
      "parents": [
        "f18ac6cac6c38bfaf02068fe167d3936c70469bf"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Apr 25 22:39:25 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Apr 27 21:36:04 2022 +0000"
      },
      "message": "Allow SurfaceFlinger to treat 170M as sRGB.\n\nIntroduce a debug sysprop, defaulted to false, to allow for rewriting\nthe transfer function to sRGB when set to true.\n\nThis is due to several considerations:\n\n1. SurfaceFlinger has not color managed SMPTE 170M properly ever since\n   color management was introduced in Android O, and was only fixed in\n   Android 13. This means that some camera -\u003e encoding -\u003e storage -\u003e\n   playback flows may be incorrectly calibrated on some devices since\n   SMPTE 170M was reinterpreted as sRGB for a long time.\n2. BT. 1886 recommends a reference EOTF of gamma 2.4 with tuneable\n   parameters to approximate a CRT on a non-CRT display. Because the\n   framework doesn\u0027t support BT. 1886 and it\u0027s too late to add support,\n   casting as sRGB is probably okay for now and matches old behavior.\n3. Typical Rec. 709 content is graded assuming a dim surround, but phone\n   displays are used in a wide range of viewing environments, which\n   means that viewing Rec. 709 content in a bright environment may\n   appear to have lower contrast. Decoding as sRGB will push the dark\n   codes into lower luminance levels, which will improve contrast in\n   those scenarios. Note that it\u0027s better to adjust contrast based on\n   the ambient viewing environment, but again it\u0027s too late for Android\n   13 to improve the color pipeline in the GPU.\n\nBug: 229442032\nTest: Photos playback after recording a video\nChange-Id: I64fc8f2ea77f8e595333de36fb9da2979d8316ca\n"
    },
    {
      "commit": "d4206714c9db0fe58b536de877755839643ed09e",
      "tree": "2dec2fff2bfe1a3b117ecf15cc69d2eddf72a32f",
      "parents": [
        "8e5ba105c7d1e4606f79d5ca941be1dfe57261a6"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Apr 27 13:19:15 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Apr 27 17:39:33 2022 +0000"
      },
      "message": "Address ghost spots that show up after touchscreen is re-enabled\n\nWhen touches are cancelled as a result of a touchscreen being disabled,\nthe pointers that were down when the touchscreen was disabled show up as\ntouch spots briefly while a new pointer goes down after the touchscreen\nis enabled. Remove these ghost touches.\n\nBug: 216718625\nTest: manual, see bug\nChange-Id: I4fa381da9ca0e285dff4b405cad644fcea840d9e\nMerged-In: I4fa381da9ca0e285dff4b405cad644fcea840d9e\n(cherry picked from commit 9eb4e698f70a6b0a55008671adb57d6052e3ca1c)\n"
    },
    {
      "commit": "8e5ba105c7d1e4606f79d5ca941be1dfe57261a6",
      "tree": "465353dc8602f3ffb87d1b633c2e2d60202a4245",
      "parents": [
        "f18ac6cac6c38bfaf02068fe167d3936c70469bf",
        "7f19347476d9ad4b31992e6fcdfb430e93525086"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Tue Apr 26 19:04:45 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 26 19:04:45 2022 +0000"
      },
      "message": "Merge \"Check target duration sent instead of exact value\" into tm-dev"
    },
    {
      "commit": "95f686177953b5558b3154269b6407b7325604dc",
      "tree": "8057a69212761b202976129bf4fa964739bd43ca",
      "parents": [
        "f18ac6cac6c38bfaf02068fe167d3936c70469bf"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Thu Apr 07 14:08:22 2022 +0800"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Tue Apr 26 01:46:35 2022 +0000"
      },
      "message": "Set initial meta state to AMETA_NONE\n\nCurrently, the default meta state is AMETA_NUM_LOCK_ON, that may cause\nsome keyboard such as Apple Wireless Keyboard send the mismatched keys.\n\nIdeally, if the keyboard didn\u0027t contain the led key, it should not\nhandle such key to change any state, this CL temporarily set the\ninitialied state to none to prevent some unexpected behavior when\nuser connected a new keyboard.\n\nBug: 194465459\nTest: atest inputflinger_tests\nChange-Id: Iad9fc01d16444e7d40a704678d3d27cdd110765c\n"
    },
    {
      "commit": "f18ac6cac6c38bfaf02068fe167d3936c70469bf",
      "tree": "0fa79ef4c9910d19cf16698191781ac6b4deaf48",
      "parents": [
        "a7b691bfde0aa66e485ab6fbacb99ca862a65632",
        "30fd9b9919ae4fbf32d5820c615039dc1a2881d3"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Mon Apr 25 20:26:30 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 25 20:26:30 2022 +0000"
      },
      "message": "Merge \"Send transaction callbacks even when no BSL\" into tm-dev"
    },
    {
      "commit": "7f19347476d9ad4b31992e6fcdfb430e93525086",
      "tree": "9908597433f6afb4f9905d832ad0f8de92ea50fb",
      "parents": [
        "5514be66be912d83307405a3bb7f26e80eb84f9b"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Fri Apr 22 19:20:36 2022 +0000"
      },
      "committer": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Fri Apr 22 19:22:05 2022 +0000"
      },
      "message": "Check target duration sent instead of exact value\n\nFlinger commit start is undeterministic since test calling\ncommitAndComposite and thus making the test flaky.\n\nBug: b/204322192\nTest: atest libsurfaceflinger_unittest:libsurfaceflinger_unittest.SurfaceFlingerPowerHintTest\nChange-Id: I67cccbc87167d27a5fdead915a20aeed1f764e19\n"
    },
    {
      "commit": "30fd9b9919ae4fbf32d5820c615039dc1a2881d3",
      "tree": "7d571c61af07dfaf073635ad6d41b36b5b0473f5",
      "parents": [
        "c8c333259715252d81c3c4c28cdf64fd3c148b7b"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Fri Apr 22 12:41:17 2022 -0500"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Fri Apr 22 13:52:00 2022 -0500"
      },
      "message": "Send transaction callbacks even when no BSL\n\nThe current transaction callback logic only accounts for 2 cases:\n1. If there\u0027s a BSL in the transaction\n2. If there are no layers in the transaction\n\nHowever, this doesn\u0027t account for cases where there\u0027s other layer types\nin the transaction that are not BSL. In those cases, we fail to invoke\nthe transaction callbacks.\n\nTest: LayerCallbackTest\nFixes: 229578553\nChange-Id: I7483235617218a759bc9b1ea335e9fef80275728\n"
    },
    {
      "commit": "2c043bedc96c31b6c01060e073b8c1aaf8cd02e6",
      "tree": "31891a133cc70cc20cb766d8672e1773aa4c55a9",
      "parents": [
        "1527529f4eccca13d2e1f897abd881c6ffd94dfe"
      ],
      "author": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Tue Apr 19 20:11:10 2022 +0000"
      },
      "committer": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Thu Apr 21 16:11:12 2022 +0000"
      },
      "message": "Use the primaryDisplayRotationFlags for the source crop calculation\n\nSource frame and bufferCrop calculations use the\nprimaryDisplayRotationFlags using the projection space\norientation just for the source crop calculation causes the\nunwanted source crop in a situation where bufferCrop and\nsource frame are in different coordinate system. Using the\nsame primaryDisplayRotationFlags in Source crop calculation\nwill make all these calculations in line.\n\nTest: verified manually with provided test apk in the #comment1 on\nfoldable, tablet and a phone and verified go/wm-smoke\natest libsurfaceflinger_unittest\natest libcompositionengine_test\natest CompositionTest\natest OutputLayerTest\n\nBUG: 204187592\nChange-Id: I23c6dcfb39979fd67eb5e1d21c011476c630058b\n"
    },
    {
      "commit": "f99d6e7b3e9676d08b62fdd1ba966ccfe6c8d72d",
      "tree": "4cf6f0382bfd40396ad67e2f1d00af7ff0578f2c",
      "parents": [
        "f467f03245da927fb34cb9e4960e7d0161d84b44"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Apr 21 15:28:35 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Apr 21 15:28:35 2022 +0000"
      },
      "message": "Reland \"Disable mouse acceleration and scaling when Pointer Capture is enabled\"\n\nThis reverts commit f467f03245da927fb34cb9e4960e7d0161d84b44.\n\nReason for revert: Relanding together with a CTS test fix.\n\nChange-Id: I7e422e0b5eb61cb376c0b77312420bbf3d0d4850\n"
    },
    {
      "commit": "b337e18def299eb86623016a13e13ef36c6cb0ea",
      "tree": "3544fe310bd87466f59c57fa7f654275aa860501",
      "parents": [
        "1e3f35f55fc636cb3c998c463e278703ced96dbb",
        "ef0d08a24268ab125daab2ef3c88719c3f85d184"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Thu Apr 21 01:28:22 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 21 01:28:22 2022 +0000"
      },
      "message": "Merge \"Revert \"Avoid vsync enabled when in DOZE mode (AOD).\"\" into tm-dev"
    },
    {
      "commit": "85bd15dd5906b738355a88787c482d47c93bb25e",
      "tree": "016974cb7487adea734022d30c165e61581222f1",
      "parents": [
        "3356367c8fd4fae3fdcc3188d1aefb080be939e1",
        "65a2e6f9f0309161849b957c9ac15d3baf713d65"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Wed Apr 20 21:48:31 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 20 21:48:31 2022 +0000"
      },
      "message": "Merge \"Add debug log on Power HAL support and connection status\" into tm-dev"
    },
    {
      "commit": "3356367c8fd4fae3fdcc3188d1aefb080be939e1",
      "tree": "6e5cd93a018e81569da70dbac140d717c4010214",
      "parents": [
        "c8c333259715252d81c3c4c28cdf64fd3c148b7b",
        "0acc384bb994f7f8bbe9f4060d0b1b212744879f"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Apr 20 19:59:03 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 20 19:59:03 2022 +0000"
      },
      "message": "Merge changes from topics \"presubmit-am-55f310f6061a4fdfa7811f47f62b8b5c\", \"presubmit-am-f6a0ce426c734db58ba765fa00f5f38c\" into tm-dev\n\n* changes:\n  SF: Add dumpsys flags to dump displays\n  SF: Clean up display lookup\n"
    },
    {
      "commit": "ef0d08a24268ab125daab2ef3c88719c3f85d184",
      "tree": "37b8e265925cbcc214851d7b1eb013cb6304e9c3",
      "parents": [
        "8f96ec4b3074b6c1a4cb47bef4855f38896eb12c"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Wed Apr 20 17:40:37 2022 +0000"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Wed Apr 20 17:44:30 2022 +0000"
      },
      "message": "Revert \"Avoid vsync enabled when in DOZE mode (AOD).\"\n\nThis reverts commit 8f96ec4b3074b6c1a4cb47bef4855f38896eb12c.\n\nReason for revert: b/229336134#comment13\n\nChange-Id: Id2bcf9be0bbb19e0595a22441e3fb3e3fea0976d\n"
    },
    {
      "commit": "65a2e6f9f0309161849b957c9ac15d3baf713d65",
      "tree": "971619002e2aefd6df50c8396a50dbcd7cea1225",
      "parents": [
        "1527529f4eccca13d2e1f897abd881c6ffd94dfe"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Mon Apr 18 21:19:17 2022 +0000"
      },
      "committer": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Wed Apr 20 16:44:03 2022 +0000"
      },
      "message": "Add debug log on Power HAL support and connection status\n\nAllow enabling power hint through system property\n\nBug: 195990840\nTest: manual test\nChange-Id: I3694eda0ab1f1474a367d02b8d61ae602c5ba993\n"
    },
    {
      "commit": "0acc384bb994f7f8bbe9f4060d0b1b212744879f",
      "tree": "3d9a1ea9f0cae4810ae55c4f39e157c772eb1417",
      "parents": [
        "3c363247085f9ca75450a383b476312d96a490cc"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 07 11:23:42 2022 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Apr 20 08:43:52 2022 -0700"
      },
      "message": "SF: Add dumpsys flags to dump displays\n\nDump display configuration (--displays) and composition state (--comp-\ndisplays) separately.\n\nUse consistent formatting. Remove noise, e.g. repetitive display modes,\nphysical display state that is expectedly missing for virtual displays.\n\nBug: 182939859\nTest: dumpsys SurfaceFlinger --displays\nTest: dumpsys SurfaceFlinger --comp-displays\nChange-Id: I787eedb82d76c74363e653a648ae88699096cc47\n"
    },
    {
      "commit": "3c363247085f9ca75450a383b476312d96a490cc",
      "tree": "75553a7fa10140da3f85aca509856dd9a7778ab4",
      "parents": [
        "87d026acfc992c36b0f64a0061ba55add45f87df"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 07 10:44:12 2022 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Apr 20 08:43:47 2022 -0700"
      },
      "message": "SF: Clean up display lookup\n\nRemove redundant functions. Phase out the \"internal display\" misnomer,\nwhich is confusing for foldables.\n\nValidate the DisplayPrimaries API against the connection type, rather\nthan the active display.\n\nBug: 182939859\nBug: 74619554\nTest: Boot and fold/unfold\nChange-Id: Ibe69e3337806a3f269f355522bcf65eab974d7bb\n"
    },
    {
      "commit": "6852bff70857128f10e8eab6e17aa5b089ebb94e",
      "tree": "a4b429ff5223c6775b8c993e317b123972856966",
      "parents": [
        "9fdc02c7ef3a9905b75af795c6f89215662691d2"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Apr 19 17:35:11 2022 -0500"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Apr 19 17:41:17 2022 -0500"
      },
      "message": "Remove root layer when clearing mLayersPendingRemoval\n\nThe previous code removed the root layer from layersSortedByZ when the\nLayer handle was destroyed. However this causes issues if the Layer is\ncreated and then dropped quickly on the client side. What happened was\nthe following:\n\n1. Client creates a Layer\n2. SF creates the Layer, but doesn\u0027t add it to the hierarchy yet\n3. Client drops the Layer reference\n4. LayerCleaner dtor is called which calls SF#onHandleDestroyed. This\n   removed the Layer from layersSortedByZ and added it to mLayersPendingRemoval\n5. SF main thread runs and adds the Layer to the hierarchy. So for the\n   case of root, it adds it to layersSortedByZ\n6. mLayersPendingRemoval is traversed and cleared, but since layersSortedByZ still\n   has a reference to the Layer, it\u0027s never destroyed.\n\nWith this change, the Layer will be created, but then removed from layersSortedByZ\nwhen mLayersPendingRemoval is traversed. That way the Layer reference\ncan be dropped.\n\nTest: SurfaceFlingerStress#create_and_destroy\nFixes: 229754763\nChange-Id: I0537781d6e13fbdeb2502ed6a7e65dbcfd7b28ce\n"
    },
    {
      "commit": "6d27bbe3363e2df29b4e1443c5f3fb8069d34700",
      "tree": "93c46745a2c12a6d4c05b288dc1a0047b5ad99a1",
      "parents": [
        "00679b8ab403ce7d0433d778223d03f2d7418123",
        "f467f03245da927fb34cb9e4960e7d0161d84b44"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 19 14:27:08 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 14:27:08 2022 +0000"
      },
      "message": "Merge \"Revert \"Disable mouse acceleration and scaling when Pointer Capture is enabled\"\" into tm-dev"
    },
    {
      "commit": "f467f03245da927fb34cb9e4960e7d0161d84b44",
      "tree": "08f123ab102d2a8e684aacd382aacaf7fe2cc4ea",
      "parents": [
        "d838693827653e30e36e1a296bd65f93c000c339"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 19 10:37:19 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 19 10:37:19 2022 +0000"
      },
      "message": "Revert \"Disable mouse acceleration and scaling when Pointer Capture is enabled\"\n\nThis reverts commit d838693827653e30e36e1a296bd65f93c000c339.\n\nReason for revert: b/229621934\n\nChange-Id: Ia104c7cb09dabf8b28b96686adca4037dc58e82b\n"
    },
    {
      "commit": "00679b8ab403ce7d0433d778223d03f2d7418123",
      "tree": "622bd3cebfc381b01791d2bd962e8f013a09ced4",
      "parents": [
        "8ea206679e5ee63696e3b17f5da6938d03bf88a6",
        "2c0ea355bc201153779c2d106eebc58ac1eae8b5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 19 05:21:34 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 05:21:34 2022 +0000"
      },
      "message": "Merge \"Treat dimming-disabled layers as HDR\" into tm-dev"
    },
    {
      "commit": "e1d797219097be512bb4a9d844eb7beb2fff7926",
      "tree": "8eb4446e7e91512093114b4b7e94676fafa2c25d",
      "parents": [
        "87d026acfc992c36b0f64a0061ba55add45f87df",
        "fcedb9ca3fa14607451ca24f32539a36f2261912"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Apr 18 22:19:54 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 18 22:19:54 2022 +0000"
      },
      "message": "Merge \"Support RenderIntents in libtonemap.\" into tm-dev"
    },
    {
      "commit": "87d026acfc992c36b0f64a0061ba55add45f87df",
      "tree": "fa6bb7596b37b32c5fd3c18059d948039a472a6c",
      "parents": [
        "617bcfefc4178814233c2d84e11dd240f51e6455",
        "168f6ccfce328a1224297ba5b7af2779fcee0d9a"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Sat Apr 16 00:29:05 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 16 00:29:05 2022 +0000"
      },
      "message": "Merge \"Set better defaults for layer stack and oriented display space\" into tm-dev"
    },
    {
      "commit": "1527529f4eccca13d2e1f897abd881c6ffd94dfe",
      "tree": "cea976884b359ea0a37763e284b7a7ddb3e93bd1",
      "parents": [
        "585d10e60084a4eb75e99bb8e62ca14102a3b03b",
        "fb3cc1164eb3b487d7c10d4c5f626e8527a37053"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Apr 15 01:46:58 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 15 01:46:58 2022 +0000"
      },
      "message": "Merge \"Fix led meta state can\u0027t be cleared by another keyboard\" into tm-dev"
    },
    {
      "commit": "2c0ea355bc201153779c2d106eebc58ac1eae8b5",
      "tree": "7488818daaa60849fcb377574f66fb2f34050c96",
      "parents": [
        "fcedb9ca3fa14607451ca24f32539a36f2261912"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Apr 12 16:30:24 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Apr 14 22:59:39 2022 +0000"
      },
      "message": "Treat dimming-disabled layers as HDR\n\nScreen rotations currently capture an SDR screenshot, and rotate the\nscreenshot. If there is an HDR layer on screen, this causes the HDR\nlayer to be tone-mapped to SDR, and the screeenshot when fed back into\nSurfaceFlinger has a tag that prevents the screenshot from being dimmed\nso that the HDR layer can remain at the same brightness (modulo a\nbrightness change). But this means that the screenshot should be treated\nas an HDR layer, as there is a noticeable dip and re-ramp up in\nbrightness.\n\nBug: 228197661\nTest: builds, boots\nChange-Id: I1d1b0dcaf230300ca34b84ea407d0817feb2c664\n"
    },
    {
      "commit": "fcedb9ca3fa14607451ca24f32539a36f2261912",
      "tree": "8b09a3c0a491b2f53d8826a9380ef3383cd2a6c2",
      "parents": [
        "168f6ccfce328a1224297ba5b7af2779fcee0d9a"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Apr 11 20:02:17 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Apr 14 22:59:27 2022 +0000"
      },
      "message": "Support RenderIntents in libtonemap.\n\nAdd RenderIntent as a supported uniform which is needed as some devices\nmay perform contrast enhancements intended for SDR content which must be\ncompensated for pre-blend for HDR content.\n\nBug: 227779465\nTest: builds\nChange-Id: Id74277e727d73cb9e371c37a83bef805e66271f4\n"
    },
    {
      "commit": "168f6ccfce328a1224297ba5b7af2779fcee0d9a",
      "tree": "f95fc435b3ba94f38046b2b85e69f48a92b3171a",
      "parents": [
        "4d8a05d372f8cf40a294ed4e9718b54b51f15a34"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Apr 07 20:58:00 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Apr 14 22:47:22 2022 +0000"
      },
      "message": "Set better defaults for layer stack and oriented display space\n\nWhen the device is not logically rotated and there is a 90 degree or 270\ndegree physical installation, then the content rectangle and bounds of\nthe layer stack space and the oriented display space must be consistent with\nthe framebuffer space and un-oriented display space. That is, if the\nframebuffer space and un-oriented display space are in portrait, then the\nlayer stack space and the oriented display space should be in landscape\nwithout any cropping effects.\n\nPrior to this patch, devices with a rotated physical install orientation\nwould have its boot animation cropped due to the mismatch in the logical\ndisplay space and physical display space\n\nBug: 203165976\nTest: boot animation is not cropped\nChange-Id: I965b6c0578e982fe1b2a4dbdb18c24b5922388a9\n"
    },
    {
      "commit": "585d10e60084a4eb75e99bb8e62ca14102a3b03b",
      "tree": "7636d74e60fcb3f54c12edf1cdf424300bbea2f0",
      "parents": [
        "d0e15737aea70fa974c04d3a7985a3659b89cdf4",
        "eb627318ec0f49fffee1f0112a41bd3838ca561a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 14 21:35:38 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 14 21:35:38 2022 +0000"
      },
      "message": "Merge \"SF: Flatten display containers\" into tm-dev"
    },
    {
      "commit": "d0e15737aea70fa974c04d3a7985a3659b89cdf4",
      "tree": "cf82c232b52590062971e42f60f0ffa690975c46",
      "parents": [
        "4809267e7b873d1c12b45a975163a3d934d1a0f3",
        "586caa1e6d563da9ca39f5a4d31f11d0cfbb180a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 14 19:13:05 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 14 19:13:05 2022 +0000"
      },
      "message": "Merge \"Remove unused declaration.\" into tm-dev"
    },
    {
      "commit": "b3cf87bb0432c5abf1ce5b2dfa8a68f436d41cf8",
      "tree": "d7dc11fbe36e9dc178e013cb2f812c7b57b70ea9",
      "parents": [
        "e3a326a135241b6e418434b8d9c3d51477c89f8c",
        "d838693827653e30e36e1a296bd65f93c000c339"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 14 16:39:42 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 14 16:39:42 2022 +0000"
      },
      "message": "Merge \"Disable mouse acceleration and scaling when Pointer Capture is enabled\" into tm-dev"
    },
    {
      "commit": "eb627318ec0f49fffee1f0112a41bd3838ca561a",
      "tree": "e5ee7bc300d61c50dc79ef6321d6878f7a4b1acb",
      "parents": [
        "c52185039b5a48f1c4150183ab02fabcf2128b77"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 07 09:13:16 2022 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 14 08:11:31 2022 -0700"
      },
      "message": "SF: Flatten display containers\n\nStore displays and tokens in contiguous storage for cache-efficient\nlookup and iteration, which also ensures that internal displays are\ncomposited before external and virtual displays.\n\nBug: 182939859\nBug: 185536303\nTest: simpleperf\nTest: libsurfaceflinger_unittest\nChange-Id: I1ae65c3e80567b65736bd189c263be5be34862e3\n"
    },
    {
      "commit": "d838693827653e30e36e1a296bd65f93c000c339",
      "tree": "4cf6f0382bfd40396ad67e2f1d00af7ff0578f2c",
      "parents": [
        "c52185039b5a48f1c4150183ab02fabcf2128b77"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 31 18:36:52 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Apr 14 14:23:51 2022 +0000"
      },
      "message": "Disable mouse acceleration and scaling when Pointer Capture is enabled\n\nPointer Capture is usually used by games. Disabling pointer acceleration\nand speed scaling for mice when the feature is enabled would allow\ngames/libraries  to handle mouse events directly from the device, giving\nthem more flexibility to tune the behavior.\n\nThis makes Pointer Capture more similar between mice and touchpads,\nsince they both now report the same values that the raw input device\nreports. This should give the most flexibility for apps to handle the\nAPI at a low-level.\n\nBug: 225853027\nTest: atest inputflinger_tests\nChange-Id: I5eba5257ec3b47b0772a6a6435a64f5102c2c4b7\n"
    },
    {
      "commit": "586caa1e6d563da9ca39f5a4d31f11d0cfbb180a",
      "tree": "975f2218ccb30db2eb6f681087049782ceb749cd",
      "parents": [
        "56becd9a2e8abc5694809a7af6b69eeab018fb23"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Wed Apr 13 12:32:49 2022 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Wed Apr 13 12:32:49 2022 -0700"
      },
      "message": "Remove unused declaration.\n\nBug: none\nTest: atest DisplayModeSwitchingTest\nChange-Id: I8426d103ec6116a0a62b6e1e414a2e2dabf4f3c0\n"
    },
    {
      "commit": "fb3cc1164eb3b487d7c10d4c5f626e8527a37053",
      "tree": "dcfe0b3c45d247b6ff2728d746a241422ccb331a",
      "parents": [
        "35556594fe06f679cd1ade1350f8a65317bc70e8"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Wed Apr 13 07:39:50 2022 +0000"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Wed Apr 13 08:33:33 2022 +0000"
      },
      "message": "Fix led meta state can\u0027t be cleared by another keyboard\n\nCurrently, the led meta state of CapsLock, NumLock and ScrollLock would\nbe stored in to a global state. If we connected with multiple keyboards,\nand some keyboard changed the led state, others should clear their local\nled state frist then update it by the global state so we could clear the\nstate per device properly.\n\nBug: 194465459\nTest: atest inputflinger_tests\nChange-Id: I5965cf951a5ebcadc69541b9a036fb38fd428d30\n"
    },
    {
      "commit": "28b050811f3bf126fee3f8f1fc027c43b890d0a1",
      "tree": "89124b07d2cbd06794aeea73c4bb88f93696a78e",
      "parents": [
        "7f3ca03231530d1945c651ddad8ae6c0c5890be6"
      ],
      "author": {
        "name": "Arthur Ishiguro",
        "email": "arthuri@google.com",
        "time": "Tue Apr 12 16:26:20 2022 +0000"
      },
      "committer": {
        "name": "Arthur Ishiguro",
        "email": "arthuri@google.com",
        "time": "Tue Apr 12 22:52:28 2022 +0000"
      },
      "message": "Fix registerDirectChannel in HAL wrappers\n\nBug: 228645167\nTest: CTS+VTS\nChange-Id: I14348a7fe98a9681bc03109af8610c0aab679265\n"
    },
    {
      "commit": "917758ba8810c8b01d4b5f35787198f97e80bb97",
      "tree": "4fe2e3b1f8c5ffcec72a6bdf41fbec96da29b590",
      "parents": [
        "e3012a104735be5c83420e7b9bb835fa9bbceadf",
        "26b98f4271095999a721fd85f17044eb8441cc97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 12 14:48:02 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 12 14:48:02 2022 +0000"
      },
      "message": "Merge \"SurfaceFlinger: Dump on layer leaks\" into tm-dev"
    },
    {
      "commit": "e3012a104735be5c83420e7b9bb835fa9bbceadf",
      "tree": "3f47798c34eff65cc7356cb5499669e939ca61b2",
      "parents": [
        "c52185039b5a48f1c4150183ab02fabcf2128b77",
        "0aba49eebfb960af7eb5a1cde255bcb01f62d175"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Mon Apr 11 23:47:21 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 11 23:47:21 2022 +0000"
      },
      "message": "Merge \"Adjust actual work duration when target time is changed within allowed deviation limit\" into tm-dev"
    },
    {
      "commit": "26b98f4271095999a721fd85f17044eb8441cc97",
      "tree": "c97f9f6030d162f657420506d466393782bb1cfd",
      "parents": [
        "d781434637535fdb283427c3d9449279166b28a9"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Apr 11 15:54:31 2022 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Mon Apr 11 15:56:22 2022 -0700"
      },
      "message": "SurfaceFlinger: Dump on layer leaks\n\nEvery so often some process will leak layer references and\nSurfaceFlinger will eventually crash (or refusing to create\nnew layers because of the max layer count). We never have\nenough info to trace these down, and it becomes a horrible\ngame of chasing repro steps. While we currently have no\ncomplaints about anything like this in T, a recent\n12L bug serves as a timely reminder that we should get\nthis logging in BEFORE the next issue occurs, rather\nthan after.\n\nBug: 227286456\nTest: Existing tests pass\nChange-Id: I2c8b834c93a27204225b482fea1e54837204c9cf\n"
    },
    {
      "commit": "c52185039b5a48f1c4150183ab02fabcf2128b77",
      "tree": "08f123ab102d2a8e684aacd382aacaf7fe2cc4ea",
      "parents": [
        "30770400888046e22d3f6b2eaa4a9b42f40f077d",
        "7d04ca4c2571c100c0ff53466f555c9c35b8dfa9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 11 17:12:24 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 11 17:12:24 2022 +0000"
      },
      "message": "Merge \"GpuWork: Clarify documentation comment\" into tm-dev"
    },
    {
      "commit": "d781434637535fdb283427c3d9449279166b28a9",
      "tree": "86075387a9aead212a385710832f95a540b50988",
      "parents": [
        "97272abc8b8d6148403e1bfd403988cb1956b436",
        "4d8a05d372f8cf40a294ed4e9718b54b51f15a34"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Apr 11 16:28:57 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 11 16:28:57 2022 +0000"
      },
      "message": "Merge \"Plumb display brightness nits to composer hal.\" into tm-dev"
    },
    {
      "commit": "4d8a05d372f8cf40a294ed4e9718b54b51f15a34",
      "tree": "c8501211fbd619b33348990a506913a1b4d1b266",
      "parents": [
        "5a896f35e170172ca3596cd5644ad67674041493"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Mar 23 18:14:26 2022 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Apr 08 22:55:30 2022 +0000"
      },
      "message": "Plumb display brightness nits to composer hal.\n\nOEM feedback was that the display brightness in nits should be known to\nthe Hardware Composer for correct tone-mapping behavior by the DPU.\nInteperpolating the display brightness curve that\u0027s defined in display\nconfig files is possible, but it would require the vendor to re-implement\nDisplayManager logic for interpolating a spline curve.\n\nBug: 220396224\nTest: builds, boots\nChange-Id: I28d936c118bed1184d4f742478c8862f9e0aba95\n"
    },
    {
      "commit": "cc604d15d07ab92c8e5e36b71e3104a4d89f6ca5",
      "tree": "717a35aff59c4af1dedf2254967839a9a458d3d6",
      "parents": [
        "9fdc02c7ef3a9905b75af795c6f89215662691d2",
        "8f96ec4b3074b6c1a4cb47bef4855f38896eb12c"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Fri Apr 08 20:22:32 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 08 20:22:32 2022 +0000"
      },
      "message": "Merge \"Avoid vsync enabled when in DOZE mode (AOD).\" into tm-dev"
    },
    {
      "commit": "9fdc02c7ef3a9905b75af795c6f89215662691d2",
      "tree": "8d5c60c718512bcbe489a99e9db1af906f4469f8",
      "parents": [
        "1b23d921f4ca602bae4ec17d478cbb319ad49265",
        "4df80f58c42d56facdc79ffa5bcba041300784e9"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Fri Apr 08 17:54:30 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 08 17:54:30 2022 +0000"
      },
      "message": "Merge \"Revert \"Change input injection security model to require INJECT_...\"\" into tm-dev"
    },
    {
      "commit": "7d04ca4c2571c100c0ff53466f555c9c35b8dfa9",
      "tree": "0f59a4876a9449ed7ad4583c371f21defb24df4f",
      "parents": [
        "1b23d921f4ca602bae4ec17d478cbb319ad49265"
      ],
      "author": {
        "name": "Paul Thomson",
        "email": "paulthomson@google.com",
        "time": "Fri Apr 08 14:27:27 2022 +0100"
      },
      "committer": {
        "name": "Paul Thomson",
        "email": "paulthomson@google.com",
        "time": "Fri Apr 08 17:08:00 2022 +0100"
      },
      "message": "GpuWork: Clarify documentation comment\n\nParallel GPU work from different processes with the same UID should not\nbe double-counted.\n\nProtected work should not be reported.\n\nBug: b/228601407\nChange-Id: Id4cc5e93553eb60e46b4bde40b80fa1336f0762d\n"
    },
    {
      "commit": "1b23d921f4ca602bae4ec17d478cbb319ad49265",
      "tree": "8fb9ddd96864b12ff4eb4b173b4903f8fd243797",
      "parents": [
        "d16a2ea90b52d4be6de4a9928940bfe9b2caffd8",
        "4cf2d8c799289459a23ed42244fef6f27359cd03"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Apr 08 01:46:55 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 08 01:46:55 2022 +0000"
      },
      "message": "Merge \"Trace input only if the layer needs an input info\" into tm-dev"
    },
    {
      "commit": "d16a2ea90b52d4be6de4a9928940bfe9b2caffd8",
      "tree": "763bd56968fba6508727789b212a84b55a179315",
      "parents": [
        "822377104d9a5531c89abbd0d4ecfc22fb7cabc1",
        "7ae7afde9933c5c1a8f18ff06690555bd5d1660a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 07 22:44:06 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 07 22:44:06 2022 +0000"
      },
      "message": "Merge \"Handle multiple windows in transferTouch\" into tm-dev"
    },
    {
      "commit": "822377104d9a5531c89abbd0d4ecfc22fb7cabc1",
      "tree": "22c691b7c194a615e8a24f8cf4babe577c043d4d",
      "parents": [
        "656a4684ec4ca25319c5a359e5159426c70fe8bd",
        "839fe5b4980502638b69ef909114d84e5833d41f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 07 21:03:11 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 07 21:03:11 2022 +0000"
      },
      "message": "Merge \"Add unit test on sending power hints in SurfaceFlinger\" into tm-dev"
    },
    {
      "commit": "656a4684ec4ca25319c5a359e5159426c70fe8bd",
      "tree": "1641b86bd3035d5b473a81ebfe6d6db6a2b8cb4c",
      "parents": [
        "01709c205430b5c8b6f10d0f7eeca3c7f3a129ef",
        "3539d81eef474c66bbfe66a3cc96c8cb80a4e7dd"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Apr 07 18:34:29 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 07 18:34:29 2022 +0000"
      },
      "message": "Merge \"SF: Enable HWC composition strategy prediction\" into tm-dev"
    },
    {
      "commit": "0aba49eebfb960af7eb5a1cde255bcb01f62d175",
      "tree": "dfd1126c64ab064f9634caef2d4ca9cb9e484767",
      "parents": [
        "01709c205430b5c8b6f10d0f7eeca3c7f3a129ef"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Wed Apr 06 16:13:59 2022 +0000"
      },
      "committer": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Thu Apr 07 17:05:31 2022 +0000"
      },
      "message": "Adjust actual work duration when target time is changed within allowed deviation limit\n\nBump the target time deviation limit to 10%\n\nBug: 195990840\nTest: Test: atest libsurfaceflinger_unittest:libsurfaceflinger_unittest.AidlPowerHalWrapperTest\nChange-Id: Ifccdb377dce90ef0efa4b2d71c54841f31989182\n"
    },
    {
      "commit": "839fe5b4980502638b69ef909114d84e5833d41f",
      "tree": "6e55850a0bd2924253a901db459db3fb14abda15",
      "parents": [
        "01709c205430b5c8b6f10d0f7eeca3c7f3a129ef"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Mon Apr 04 17:39:38 2022 +0000"
      },
      "committer": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Thu Apr 07 15:20:08 2022 +0000"
      },
      "message": "Add unit test on sending power hints in SurfaceFlinger\n\nBug: b/204322192\nTest: atest libsurfaceflinger_unittest:libsurfaceflinger_unittest.SurfaceFlingerPowerHintTest#sendDurationsIncludingHwcWaitTime\nChange-Id: I0c9ba1abc169ba0b2136663e3937cd93191730ae\n"
    },
    {
      "commit": "4cf2d8c799289459a23ed42244fef6f27359cd03",
      "tree": "7025dfa5b9d0fb7696262cfbb09133c4d604498c",
      "parents": [
        "f8ba0b953b436ca8f60200dc84740501cd83ea0d"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Thu Apr 07 14:52:00 2022 +0000"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Thu Apr 07 14:52:00 2022 +0000"
      },
      "message": "Trace input only if the layer needs an input info\n\nIt should skip trace the input if the layer don\u0027t need an input info.\nOr the \u0027fillInputInfo\u0027 would automatically fill the info if the layer\nwould be checked in input.\n\nBug: 227316706\nTest: enabled winscope, enabled one hand mode.\nChange-Id: I64a3d6328e283d057c528ffda6af3b21cfaf44ee\n"
    },
    {
      "commit": "01709c205430b5c8b6f10d0f7eeca3c7f3a129ef",
      "tree": "fc30e2c470ff5f5b3bd5a71ac1649f2395bf5aae",
      "parents": [
        "f8ba0b953b436ca8f60200dc84740501cd83ea0d",
        "a3c4d372532ddc8b6b965e5d2cd672c4bb3c3a9e"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Apr 07 14:34:14 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 07 14:34:14 2022 +0000"
      },
      "message": "Merge \"Don\u0027t create CE Layer when EffectLayer has nothing to draw.\" into tm-dev"
    },
    {
      "commit": "f8ba0b953b436ca8f60200dc84740501cd83ea0d",
      "tree": "7898f7c9d8522ac2b03ae209709716957d0e2d16",
      "parents": [
        "5a896f35e170172ca3596cd5644ad67674041493",
        "1f6fc70ab0c6efdaa1c60dd2ced32fb6833c92e2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 07 04:30:44 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 07 04:30:44 2022 +0000"
      },
      "message": "Merge \"SF: Fix feedback loop with refresh rate overlay\" into tm-dev"
    },
    {
      "commit": "8f96ec4b3074b6c1a4cb47bef4855f38896eb12c",
      "tree": "769de1aeb6550623cda8d155c984757f359fd39c",
      "parents": [
        "56becd9a2e8abc5694809a7af6b69eeab018fb23"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Mar 28 09:53:35 2022 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Wed Apr 06 15:58:25 2022 -0700"
      },
      "message": "Avoid vsync enabled when in DOZE mode (AOD).\n\nBug: 219109873\nTest: perfetto trace\nChange-Id: Id3373dc9bb0cf4c0375c79a32ca9802fd77e06c2\n"
    },
    {
      "commit": "7ae7afde9933c5c1a8f18ff06690555bd5d1660a",
      "tree": "e05c44191df93be57a47c69624448221d5dcc02b",
      "parents": [
        "963291017c870adf628bff8bafd98d3c4c47fc9e"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 31 15:26:13 2022 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Apr 06 22:28:16 2022 +0000"
      },
      "message": "Handle multiple windows in transferTouch\n\nAfter the recent SPY window refactor, multiple windows could be getting\ntouch gesture at the same time.\nWhen the \u0027transferTouch\u0027 API is invoked, inputdispatcher needs to find the best\nwindow which to take touch from.\n\nThe logic used to be \u0027take the display which has exactly 1 touched\nwindow, and then take that window\u0027. This breaks when spy windows are in\nuse, because now both the \u0027regular\u0027 and the spy window would be getting\nthe same touch.\n\nIn this CL, we refine the logic for which window should be losing touch.\nWe would take the first foreground window that is being touched, on the\nspecific display.\n\nWe will also now explicitly ban split touch transfers. If touch is split\nacross multiple windows (excluding spy and wallpaper windows),\ntransferTouch will fail.\n\nBug: 220077253\nTest: atest inputflinger_tests\nChange-Id: I20a24b063dc0e0103a1692f85f99849544e7ec60\n"
    },
    {
      "commit": "5a896f35e170172ca3596cd5644ad67674041493",
      "tree": "5f1d546559b8d91b84bb07d4fce8d3dc3d30689c",
      "parents": [
        "a9b2fcd9db5f9a705c9bbbc1bac08f347aecba9f",
        "9cf89269c108114a6c61602512c84e7472fb1965"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Wed Apr 06 18:42:52 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 18:42:52 2022 +0000"
      },
      "message": "Merge \"SF: Add composition strategy prediction stats\" into tm-dev"
    },
    {
      "commit": "4df80f58c42d56facdc79ffa5bcba041300784e9",
      "tree": "47698a6383ec58801de1fc2d21e9d9bcb2b209b2",
      "parents": [
        "985a1b2d7974265ef7ec57fd2a3f96089abf2d2e"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 05 18:33:16 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 05 18:33:16 2022 +0000"
      },
      "message": "Revert \"Change input injection security model to require INJECT_...\"\n\nRevert submission 17125748-require-inject-events-permission\n\nReason for revert: b/228203157, b/228194124\nReverted Changes:\nIb0d66eff3:Change input injection security model to require I...\nIef1a2f10c:Update WindowInputTests after changing injection p...\nIe2d8d0c3d:Change input injection security model to require I...\n\nChange-Id: Iab079575c41821f5330002e23dc13884676a5249\n"
    },
    {
      "commit": "a3c4d372532ddc8b6b965e5d2cd672c4bb3c3a9e",
      "tree": "5bb03c760dce3804c15e3dfdd44bb3bfca01e2a5",
      "parents": [
        "70379c81822eefb7cb7f7fc7e42f1ee976b90f33"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Apr 05 13:22:04 2022 -0500"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Apr 05 13:22:04 2022 -0500"
      },
      "message": "Don\u0027t create CE Layer when EffectLayer has nothing to draw.\n\nIf the EffectLayer has nothing to draw, it\u0027s essentially a container\nlayer. In that case, there\u0027s no need to create a CE Layer since nothing\nwill draw on screen.\n\nThis fixes the case where a VD is created for screenrecording. The first\nfew frames can be black because there\u0027s an effect layer in the hierarchy\nwith nothing to draw before the mirroring starts. When that happens,\nthe recording shows black frames. There\u0027s no need to render the\nEffectLayer since it doesn\u0027t actually have content\n\nFixes: 222749939\nTest: Screenrecord no black frames at the start.\nChange-Id: Iec720810eaad923a4045b8f1b73b088ada86cfd1\n"
    },
    {
      "commit": "e758e365f6845c872f4b4f5a3d347dfb22e1da02",
      "tree": "caf35f51e53efcdea3818bf05fbae6bc87d64525",
      "parents": [
        "3598d9e61a57d40371d68ca9898e93c3e7bdd447",
        "a314038bf9b507517e75aeb346841e391927bc4e"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Tue Apr 05 17:06:38 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 05 17:06:38 2022 +0000"
      },
      "message": "Merge \"SF: Predict HWC composition strategy\" into tm-dev"
    },
    {
      "commit": "820a542d3b2d1b5f40c18e519a70783c75ea92d0",
      "tree": "5dec417a1acfe90c1f4c03e6795e3a347e5774bb",
      "parents": [
        "33bef8d9af044ee47bec7b2fc9a696f8686a4f73",
        "985a1b2d7974265ef7ec57fd2a3f96089abf2d2e"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 05 11:04:43 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 05 11:04:43 2022 +0000"
      },
      "message": "Merge \"Change input injection security model to require INJECT_EVENTS permission\" into tm-dev"
    },
    {
      "commit": "468a0d49e310b396a03b5d8a4c89a08412a76f7e",
      "tree": "e7e7e7d6649ceba30a8ff6616b7a2fd5ba54ade0",
      "parents": [
        "474079d8c865100d0d2e79fde99f5e0189f0b430",
        "b60b1dcf19b19bd07ea972e8d7f0335a83042274"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 04 23:49:11 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 04 23:49:11 2022 +0000"
      },
      "message": "Merge \"Add tests for WATCH_OUTSIDE_TOUCH and touches outside windows\" into tm-dev"
    },
    {
      "commit": "3539d81eef474c66bbfe66a3cc96c8cb80a4e7dd",
      "tree": "4148ebe9dd6bf6e2924ebccb384545ce11c02c40",
      "parents": [
        "9cf89269c108114a6c61602512c84e7472fb1965"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Feb 26 09:20:17 2022 -0800"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Apr 04 17:44:36 2022 -0500"
      },
      "message": "SF: Enable HWC composition strategy prediction\n\nTest: perfetto traces\nBug: 220031739\nChange-Id: I6b5b8ed744bf9c64e859ef06d8e58a745e324064\n"
    },
    {
      "commit": "9cf89269c108114a6c61602512c84e7472fb1965",
      "tree": "dda0ddd1e0a1986b731bdf248a953838690866ec",
      "parents": [
        "a314038bf9b507517e75aeb346841e391927bc4e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Feb 26 09:17:49 2022 -0800"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Apr 04 17:44:36 2022 -0500"
      },
      "message": "SF: Add composition strategy prediction stats\n\nTrack number of frames we attempted to predict\nthe composition strategy and the number of\nframes it was successful. This should only be used\nas a convenient way to debug locally. Composition\nstrategy prediction hit and misses are also tracked\nvia trace tags and can be extracted for metrics.\n\nEnable stats: adb shell su root dumpsys SurfaceFlinger --timestats -enable\nDump stats: adb shell su root dumpsys SurfaceFlinger --timestats -dump -maxlayers 0\nClear stats: adb shell su root dumpsys SurfaceFlinger --timestats -clear\n\nTest: adb shell\nBug: 220031739\nChange-Id: Ifc35efa7ce110e82041f529b58acebfa1c325f36\n"
    },
    {
      "commit": "a314038bf9b507517e75aeb346841e391927bc4e",
      "tree": "b6ff6d1d63010cc5bdfe12c9b01d5243d1790878",
      "parents": [
        "70379c81822eefb7cb7f7fc7e42f1ee976b90f33"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Feb 24 14:07:11 2022 -0800"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Apr 04 17:44:35 2022 -0500"
      },
      "message": "SF: Predict HWC composition strategy\n\nAsynchronously run ValidateDisplay to determine client composition\nstrategy. If we can predict that the composition strategy will not\nchange from frame to frame (for example by looking at whether\nthe geometry of the layers is changing), the hwc call is run\nasynchronously with the gpu composition. If the result of the call is\nincorrectly predicted, the gpu composition is rerun.\n\nValidateDisplay can take multiple milliseconds to complete and by\nmaking it non-blocking in cases where we can predict the strategy\nchosen by the hardware, we can jump start the client composition\nand shave valuable milliseconds from the frame time.\n\nThis feature is disabled by default.\n\nTest: perfetto traces\nBug: 220031739\nChange-Id: Ia5f04f447455bba0bbebbe7642d8ade8313f381a\n"
    },
    {
      "commit": "474079d8c865100d0d2e79fde99f5e0189f0b430",
      "tree": "485ea04840847bb66653080ee7d1a3c76285a0f3",
      "parents": [
        "20b8100d776aa9ca6ef69d36a5b0c70715626c87",
        "b5223cf1a732aefc5d3fc07b99b996fd49d3c065"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Apr 04 20:04:33 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 04 20:04:33 2022 +0000"
      },
      "message": "Merge \"ResyncCallback in getLatestVsyncEventData.\" into tm-dev"
    },
    {
      "commit": "f15a14d14c13cee04813107e25703e3e4edb7de0",
      "tree": "bd21a036a11439ae92200cc16e9e9cf554f114ef",
      "parents": [
        "5b3c56fa6ac16e78e6c47f6d496abe406de8ab20",
        "0fd1af9e0c0dbaea55827c9e808754e138e3a79a"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Mon Apr 04 18:00:24 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 04 18:00:24 2022 +0000"
      },
      "message": "Merge \"Migrate display related methods to AIDL part 3\" into tm-dev"
    },
    {
      "commit": "985a1b2d7974265ef7ec57fd2a3f96089abf2d2e",
      "tree": "9d3ddb02a571d8b466b924a7f6dba32de6f901f6",
      "parents": [
        "f7c6df18ec8dcdae0d07fe5be32347ee83cdb966"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 08 21:05:57 2022 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Mon Apr 04 17:18:05 2022 +0000"
      },
      "message": "Change input injection security model to require INJECT_EVENTS permission\n\nPreviously, any app could inject input events into the system via the\nIInputManager#injectInputEvent API. The injection was only allowed if\nthe input event targeted a window owned by the same UID as that of the\nprocess calling the API. This had drawbacks metioned in the bug.\n\nHere, we change the input injection security model so that the signature\npermission INJECT_EVENTS is required to inject events. This permission\nis given to the system and the shell, so input injection can still be\ndone through the \u0027adb shell input\u0027 command. We also allow injection from\ninstrumeted processes where the instrumentation source has the\npermission. For exmaple, running a test from the shell allows for the\ntest to inject events.\n\nWe also add support for a targeted injection mode, where the input\ninjection succeeds only if the target window for the event is owned by\nthe provided UID. This allows us to support injection from the\nInstrumentation class, which only allows for injection into windows\nowned by the same UID. In contrast to this, injection from the\nUiAutomation class will target all windows, including system and spy\nwindows.\n\nBug: 207667844\nBug: 194952792\nTest: atest inputflinger_tests\nTest: atest WindowInputTests\nTest: manual with test app: app cannot inject navigation gestures\nChange-Id: Ie2d8d0c3d784d389335401e148bf394d817bfd60\n"
    },
    {
      "commit": "f0e58ecc7ef13d936e1e181338137c8c6077a130",
      "tree": "96725355955912d1c43889f8c53bd5d6b67cd3fe",
      "parents": [
        "f7c6df18ec8dcdae0d07fe5be32347ee83cdb966",
        "694aeffba34baf6651833c56e18a4c5c6c8a25c0"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Mon Apr 04 16:57:01 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 04 16:57:01 2022 +0000"
      },
      "message": "Merge \"Migrate display related methods to AIDL part 2\" into tm-dev"
    },
    {
      "commit": "f7c6df18ec8dcdae0d07fe5be32347ee83cdb966",
      "tree": "47698a6383ec58801de1fc2d21e9d9bcb2b209b2",
      "parents": [
        "70379c81822eefb7cb7f7fc7e42f1ee976b90f33",
        "48710e42b7871247e8781f082ec8aa1adbc4ab1a"
      ],
      "author": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Mon Apr 04 16:03:22 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 04 16:03:22 2022 +0000"
      },
      "message": "Merge \"Add last interacted window check in setInTouchMode\" into tm-dev"
    },
    {
      "commit": "1f6fc70ab0c6efdaa1c60dd2ced32fb6833c92e2",
      "tree": "e6e3debb59a8695336d180d30a0f3908cd5dfda9",
      "parents": [
        "3f6ac9e07fe52766d3091bbe4facbeea4fd10d1d"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Mar 21 08:34:50 2022 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Apr 04 07:14:06 2022 -0700"
      },
      "message": "SF: Fix feedback loop with refresh rate overlay\n\nRefreshRateOverlay was refactored to use transactions instead of APIs\ninternal to SF. A side effect is that the overlay layer feeds back into\nthe frame rate detection and idle heuristics, which causes oscillation\nthat trends to the high refresh rate.\n\nThe transaction to setFrameRate failed to apply, as the NoVote argument\nwas invalid. Make it valid, such that LayerHistory::summarize skips the\noverlay layer.\n\nDo not reset the idle timer for solely NO_VOTE transactions.\n\nBug: 221081400\nTest: flame is not stuck at 90 Hz when overlay is enabled.\nTest: Same with sf.debug.show_refresh_rate_overlay_spinner\nTest: SetFrameRateTest\nChange-Id: I6322c1c487672b602a0f974e8ecf445633dcc3a1\n"
    },
    {
      "commit": "94109c06c9ab75905db3361d6fa3276f230427e4",
      "tree": "3550081bda940f68e5118db8e1d40cd9d76be900",
      "parents": [
        "922e1b9b983a82da37d8b7893b353560d62cdea2",
        "85065699cc68b7555dedae8a9bdbc68092c9d231"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Apr 02 07:47:52 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 02 07:47:52 2022 +0000"
      },
      "message": "Merge \"Plumb through dimming stage into RenderEngine.\" into tm-dev"
    },
    {
      "commit": "0fd1af9e0c0dbaea55827c9e808754e138e3a79a",
      "tree": "98499e04510e4eb177146e9484cb57d22a0a55a8",
      "parents": [
        "694aeffba34baf6651833c56e18a4c5c6c8a25c0"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Tue Feb 15 10:43:00 2022 -0800"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Apr 01 12:31:05 2022 -0700"
      },
      "message": "Migrate display related methods to AIDL part 3\n\nThis migrates more display related methods from ISurfaceComposer.h to the new AIDL interface.\n(1) migrate getDisplaySttas() and getDisplayState() methods\n(2) add new parcelables, android.gui.DisplayState, anddroid.gui.DisplayStatInfo and other utilities.\n(3) all parceables are added into libgui, instead of libui, so libui is isolated from binder serialization code,which is cleaner and avoids libbinder linking errors.\n\nBug: 220043617\nBug: 219574942\nTest: atest SurfaceFlinger_test libsurfaceflinger_unittest libgui_test\nMerged-In: Iacdc42dde1608f883c5578aa3d9f9f8ae9f23038\nChange-Id: Iacdc42dde1608f883c5578aa3d9f9f8ae9f23038\n"
    },
    {
      "commit": "694aeffba34baf6651833c56e18a4c5c6c8a25c0",
      "tree": "d26551e6761a03b47e579d852c3b788ad884bc4b",
      "parents": [
        "b5cb7c155ff3ac1f8fc6d946fc1faf01ce8d8ed5"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Tue Feb 15 10:43:00 2022 -0800"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Apr 01 12:27:31 2022 -0700"
      },
      "message": "Migrate display related methods to AIDL part 2\n\nThis migrates more display related methods with simple arguments from ISurfaceComposer.h to the new AIDL interface.\n\nBug: 219574942\nTest: atest SurfaceFlinger_test libsurfaceflinger_unittest libgui_test\nMerged-In: I57f428f6934e784cb234704ad89ef22218e441b4\nChange-Id: I57f428f6934e784cb234704ad89ef22218e441b4\n"
    },
    {
      "commit": "b5cb7c155ff3ac1f8fc6d946fc1faf01ce8d8ed5",
      "tree": "2308cfcb7cbc9d93f2758fd98accb1d0d9436f00",
      "parents": [
        "3f6ac9e07fe52766d3091bbe4facbeea4fd10d1d"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Mon Feb 14 14:26:04 2022 -0800"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Apr 01 12:12:05 2022 -0700"
      },
      "message": "Migrate display related methods to AIDL\n\nThis migrates display related methods from ISurfaceComposer.h to the AIDL interface.\n\nBug: 219574942\nTest: manual\nMerged-In: I11f011ce61bdd6dfbd8e0f1a1af8925820e3de58\nChange-Id: I11f011ce61bdd6dfbd8e0f1a1af8925820e3de58\n(cherry picked from commit 07e723660ca6265844be1ebd8c4696977151eeba)\n"
    },
    {
      "commit": "48710e42b7871247e8781f082ec8aa1adbc4ab1a",
      "tree": "60069ff83e6af1f2864aafd51b3c14edea756728",
      "parents": [
        "1f692ead0f1a1d8eea36298b2e94c9439da8064b"
      ],
      "author": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Thu Mar 24 14:19:30 2022 -0700"
      },
      "committer": {
        "name": "Antonio Kantek",
        "email": "kanant@google.com",
        "time": "Fri Apr 01 09:23:07 2022 -0700"
      },
      "message": "Add last interacted window check in setInTouchMode\n\nAllow touch mode switch if caller owns the focused window.\nIf no window is currently focused, then touch will be still allowed if\ncaller owned one of the previously interacted window.\n\nBug: 218541064\nTest: atest inputflinger_tests\nTest: atest InputDispatcherTouchModeChangedTests\nChange-Id: I5cfa879a6e1358efe3781061c5712707da813967\n"
    },
    {
      "commit": "3f6ac9e07fe52766d3091bbe4facbeea4fd10d1d",
      "tree": "49fbea8ad1727ed1a07bd5aa890c2f77eae44f72",
      "parents": [
        "ffe62451d81e8ab1170b55f725529839e89853f6",
        "8c4356c0ac57003787c20c3e4afda9dbf4f8a324"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Apr 01 15:32:42 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 01 15:32:42 2022 +0000"
      },
      "message": "Merge changes I14688f7b,I2c5de9d3 into tm-dev\n\n* changes:\n  SF: Clean up RefreshRateOverlay\n  SF: Fix a mislabeled slice in traces\n"
    },
    {
      "commit": "ffe62451d81e8ab1170b55f725529839e89853f6",
      "tree": "e0f5301da3890295032ee0e3e214e6e102adf08d",
      "parents": [
        "963291017c870adf628bff8bafd98d3c4c47fc9e",
        "2f01d772a56167b21b23c8dd4bfaa6cb5f667443"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Apr 01 12:26:51 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 01 12:26:51 2022 +0000"
      },
      "message": "Merge \"FTL: Pull Flags into namespace\" into tm-dev"
    },
    {
      "commit": "d7590c4ad67981c141a7801ac0535100b97cfaf9",
      "tree": "7ea9104b1abc3daae229047a761f4fec8552ea84",
      "parents": [
        "840bc7c8dc65a258dd295a5c3c5bc388f5175327",
        "81d95e6534106159210a768268fd77f21139e7a9"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Thu Mar 31 23:19:05 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 31 23:19:05 2022 +0000"
      },
      "message": "Merge \"[SurfaceFlinger] Disable HDR dimming when screen rotates.\" into tm-dev"
    },
    {
      "commit": "2f01d772a56167b21b23c8dd4bfaa6cb5f667443",
      "tree": "c07e5a5bab48f726a48fa779589b25eb8559e889",
      "parents": [
        "c8df26e4e2e010f192d9111b543f9b27c4bab6d4"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Mar 23 16:01:29 2022 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Mar 31 10:34:04 2022 -0700"
      },
      "message": "FTL: Pull Flags into namespace\n\nBug: 185536303\nTest: Build\nChange-Id: Ia9aafc78565414815dfc14732ce85b06fa96e17b\n"
    },
    {
      "commit": "840bc7c8dc65a258dd295a5c3c5bc388f5175327",
      "tree": "65d1164421ad7eab7916a7a4545f63bdb5ef10d2",
      "parents": [
        "c8df26e4e2e010f192d9111b543f9b27c4bab6d4",
        "8c84b80755907fdda69b89f36dd1c5c18bdd973f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 31 17:18:16 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 31 17:18:16 2022 +0000"
      },
      "message": "Merge \"Add benchmark for onWindowInfosChanged\" into tm-dev"
    },
    {
      "commit": "8c4356c0ac57003787c20c3e4afda9dbf4f8a324",
      "tree": "7c003ac798ed418328405d7576128213e32950f8",
      "parents": [
        "4d5052d7080749fe6e90a7643f95b69c5b79feed"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Mar 21 08:19:54 2022 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Mar 31 09:51:15 2022 -0700"
      },
      "message": "SF: Clean up RefreshRateOverlay\n\nFlatten buffer cache, remove unused members, and fix conversion\nwarnings.\n\nSkip animation transactions unless spinner is enabled.\n\nBug: 185535769\nBug: 129481165\nTest: Apply follow-up fix and toggle overlay.\nChange-Id: I14688f7b5d882f595322dfadd5cabbd5a8564301\n"
    },
    {
      "commit": "4d5052d7080749fe6e90a7643f95b69c5b79feed",
      "tree": "f8e11f04d1e865a6c07c4ece543168a1cca11a24",
      "parents": [
        "c8df26e4e2e010f192d9111b543f9b27c4bab6d4"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Mar 23 10:35:47 2022 -0700"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Mar 31 09:51:12 2022 -0700"
      },
      "message": "SF: Fix a mislabeled slice in traces\n\nBug: 185535769\nTest: No slices named \"operator()\"\nChange-Id: I2c5de9d391fbb8656ff7585bdcff23125388c4ba\n"
    },
    {
      "commit": "93ccdae23a797e920df7375be22d7e77e551bed1",
      "tree": "18c94cde5c6d85f28dbf7f503e801584d31b101c",
      "parents": [
        "f64f13e0a1c31248e968affd03e3f4a1eea520c0",
        "814ace3f256109b59ee9dc1d881887c4cb8b17ae"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 31 13:52:37 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 31 13:52:37 2022 +0000"
      },
      "message": "Merge changes from topic \"presubmit-am-c81762ef3b084d75afdf183d012bec54\" into tm-dev\n\n* changes:\n  Add PreferStylusOverTouchBlocker and handle multiple devices\n  Remove PreferStylusOverTouchBlocker\n  Block touches when stylus is down\n"
    },
    {
      "commit": "f64f13e0a1c31248e968affd03e3f4a1eea520c0",
      "tree": "55da8a257faedb6431cf6c067d33191393636a45",
      "parents": [
        "786237d5abc9aaf87ac15eb8a9fd3b5a52e44564",
        "1fb18917380f77e4e8832a0aa496701a507bae69"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 31 11:43:02 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 31 11:43:02 2022 +0000"
      },
      "message": "Merge \"Log event information when event is dropped\" into tm-dev"
    },
    {
      "commit": "90251c7554cd6c5bfea87bc357b4e7ee3deb1f2e",
      "tree": "0ee982d8271f41ec48996b8a09830f854530ad6c",
      "parents": [
        "caa918f4e37784403b58ccfaf5e7caf4c5cdd8ce",
        "f7eeb100a972b19d940e1110c59a590d07bf8f76"
      ],
      "author": {
        "name": "Huan Song",
        "email": "huans@google.com",
        "time": "Thu Mar 31 03:00:29 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 31 03:00:29 2022 +0000"
      },
      "message": "Merge \"Respect dpi from Emulator\" into tm-dev"
    },
    {
      "commit": "a633a86a665bf27da4be651fcacfcf2a1c57bdcc",
      "tree": "55d4a58687e68b70ceb1fa55660bbe41f119001e",
      "parents": [
        "bc9e42db9a4b74185390fd9a0aa6882fb55899df",
        "e12b4fa9f648372b5e68a6641edc7e8e41c26c87"
      ],
      "author": {
        "name": "Xiang Wang",
        "email": "xwxw@google.com",
        "time": "Wed Mar 30 23:36:57 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 30 23:36:57 2022 +0000"
      },
      "message": "Merge \"Add unit test for AidlPowerHalWrapper\" into tm-dev"
    },
    {
      "commit": "f7eeb100a972b19d940e1110c59a590d07bf8f76",
      "tree": "cdfe5c810987fcc0fa114326b3e532232f484e17",
      "parents": [
        "bc9e42db9a4b74185390fd9a0aa6882fb55899df"
      ],
      "author": {
        "name": "Huan Song",
        "email": "huans@google.com",
        "time": "Mon Mar 28 11:02:38 2022 -0700"
      },
      "committer": {
        "name": "Huan Song",
        "email": "huans@google.com",
        "time": "Wed Mar 30 23:00:21 2022 +0000"
      },
      "message": "Respect dpi from Emulator\n\nBug: 196986384\n\nTest: run resizable and phone emulator.\n      dumpsys SurfaceFlinger|grep -i dpi.\n      dumpsys display|grep -i dpi.\n      check launcher and apps display correctly\n\nChange-Id: If9f3c05b62fb937ac55e0d1d16e47569d2b15e86\n"
    },
    {
      "commit": "bc9e42db9a4b74185390fd9a0aa6882fb55899df",
      "tree": "a99d09d18269583763f6a9bd77821db73e9f877d",
      "parents": [
        "a3eab26a641c071b714a6cf578be7c7ae5b8c8d3",
        "65fb441ef062f8a20b3a85eab70de7c1accd7e60"
      ],
      "author": {
        "name": "Eva Chen",
        "email": "evaschen@google.com",
        "time": "Wed Mar 30 22:46:44 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 30 22:46:44 2022 +0000"
      },
      "message": "Merge \"Add SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED to eventSizeBySensorType.\" into tm-dev"
    },
    {
      "commit": "814ace3f256109b59ee9dc1d881887c4cb8b17ae",
      "tree": "7f9d95a973aced16b8c6069338572328e59132f5",
      "parents": [
        "e844e01f78f98d54676d07f3a44f46ae410b9b7b"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 04 15:12:16 2022 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 30 22:01:41 2022 +0000"
      },
      "message": "Add PreferStylusOverTouchBlocker and handle multiple devices\n\nWe removed PreferStylusOverTouchBlocker previously in order to avoid a\ncrash. In this CL, we are adding it back in, and handling the case of\ninput device having \"SOURCE_STYLUS\", but reporting \"finger\" tool type.\n\nIf there\u0027s a stylus event with one of the pointers labeled as \u0027finger\u0027,\nlet\u0027s assume that the device supports simultaneous touch and stylus. For\nthis situation, simply disable PreferStylusOverTouchBlocker going\nforward for these devices, and pass through any events coming from there.\n\nCurrently, this happens on emulator. In their touch driver, they\nconfigure stylus properties as well as touch properties, but most of the\nevents that they send are TOOL_TYPE_FINGER. Previously, this triggered a\ncrash in PreferStylusOverTouchBlocker.\n\nBug: 222531989\nTest: atest inputflinger_tests\nChange-Id: Ifbb08858a4dfebc95c30ca19d6e68533855db7e4\n(cherry picked from commit a6a660fc0aa74ea4f5930b74523cf1893b2f9282)\n"
    },
    {
      "commit": "e844e01f78f98d54676d07f3a44f46ae410b9b7b",
      "tree": "0294b4c3ef854b1075e584d464645edf66c3593b",
      "parents": [
        "f6db4c395d2fc0821a6a42aaeb88154eb7183aae"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 08 11:06:34 2022 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 30 22:01:03 2022 +0000"
      },
      "message": "Remove PreferStylusOverTouchBlocker\n\nTo prevent crash on emulator, let\u0027s disable\nPreferStylusOverTouchBlocker. A proper solution might require a re-work\nof how it operates.\n\nTest: atest inputflinger_tests\nBug: 222531989\nChange-Id: I5481e6baf284be8f254b6caec45be0478f1fe4a7\n(cherry picked from commit 2756839ae9e898d31b138be0f4e7151b76288abb)\n"
    },
    {
      "commit": "1fb18917380f77e4e8832a0aa496701a507bae69",
      "tree": "a5c789d554f7254c488a6583a1b91a70ec651927",
      "parents": [
        "a3eab26a641c071b714a6cf578be7c7ae5b8c8d3"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Tue Mar 08 10:31:39 2022 -0800"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Wed Mar 30 21:58:01 2022 +0000"
      },
      "message": "Log event information when event is dropped\n\nTo help debug cases where the windows and displays are misconfigured,\nlet\u0027s check where the touch is trying to go when the events are dropped.\n\nBug: 220241282\nTest: atest inputflinger_tests\nChange-Id: I0f678a91954a4ba2a5c6e9aca8d9200e0f368271\n(cherry picked from commit 84296558f573761ecad9c858d27917f4624e7663)\n"
    }
  ],
  "next": "e12b4fa9f648372b5e68a6641edc7e8e41c26c87"
}
