)]}'
{
  "log": [
    {
      "commit": "b552167471c48a22eec834b6c0ad0d5d623ab4e5",
      "tree": "fb35edad13fdd263f4db6e786cfb6ad73b48000b",
      "parents": [
        "9d52f998792fae5c7f061c093e197f14c6361758",
        "8db101095526c49a58fd54bfb9d3501ea5351027"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Mar 23 17:11:28 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 23 17:11:28 2021 +0000"
      },
      "message": "Merge \"SurfaceFlinger: remove SurfaceControl level vsyncId setting\" into sc-dev"
    },
    {
      "commit": "ec424a61d907521eddaa3b3d1efe5ddd7b28db8b",
      "tree": "997ff62bd24dc26d35a0f1aeecf2c2f76bbea8b4",
      "parents": [
        "c6980309378f2bfdcbb84d4792e20bd0a7f8ac22",
        "4e2b2d4bdb61bf06becece57453d36d947071a21"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 23 08:52:22 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 23 08:52:22 2021 +0000"
      },
      "message": "Merge \"Accept float values in Vibrator setAmplitude\" into sc-dev"
    },
    {
      "commit": "bdaf6fe2116447c7ed4b3cf0a4c7b3e282274e5f",
      "tree": "e11bb613db6d9bdeed43daa5828d1ebf97e4f0f5",
      "parents": [
        "e1bbbe7ab284442c1186efb234c29153dc6b7836",
        "b04658bdf402b3a1dabd9f5722ec85b30bc35bbf"
      ],
      "author": {
        "name": "Anh Pham",
        "email": "anhph@google.com",
        "time": "Tue Mar 23 07:00:45 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 23 07:00:45 2021 +0000"
      },
      "message": "Merge changes from topic \"remove_resampling\" into sc-dev\n\n* changes:\n  Clear calling ID before using SensorPrivacyManager\n  Revert \"Resample sensor events for non-direct connections.\"\n"
    },
    {
      "commit": "fa8dc0f665e708ffcaedaa2837ecc677cf4c6459",
      "tree": "baba89a93f7a70e59cd9d9a60541c1608afde680",
      "parents": [
        "b05e90288e6e0179bd06c33bd9cadc349eb2879b",
        "debd1cbcd488becc629293cfcc4fc5b2ee4ef8b2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 22 19:39:46 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 22 19:39:46 2021 +0000"
      },
      "message": "Merge \"Remove legacy disable triple buffering config\" into sc-dev"
    },
    {
      "commit": "b04658bdf402b3a1dabd9f5722ec85b30bc35bbf",
      "tree": "b4da4845cfed8f3b5c6aad8f53fa8b588ce23dea",
      "parents": [
        "df549ea500d842d3c35303183a69b6474a8d47b7"
      ],
      "author": {
        "name": "Anh Pham",
        "email": "anhph@google.com",
        "time": "Mon Mar 22 18:17:17 2021 +0100"
      },
      "committer": {
        "name": "Anh Pham",
        "email": "anhph@google.com",
        "time": "Mon Mar 22 18:58:22 2021 +0100"
      },
      "message": "Clear calling ID before using SensorPrivacyManager\n\nThis is needed because some methods of SensorPrivacyManager have been\ngated by a system permission. As a result, we have to clear binder\ncaller identity before calling these methods so that they are executed\nwith the same level of privilege as the SensorService. Otherwise, if an\napp A makes a request to the SensorService to set up a sensor data\nconnection and the SensorService needs to call SensorPrivacyService\ne.g., to register for a mic toggle state listener, the SensorPrivacyService\nwill think that it\u0027s app A that is calling, hence failing the permission\ncheck.\n\nTest: atest CtsSensorTestCases CtsSensorRatePermissionTestCases\nBug: 136069189\nBug: 179649922\nChange-Id: Ib665230fe4b6dd7c598289b8af62171222855e03\n"
    },
    {
      "commit": "df549ea500d842d3c35303183a69b6474a8d47b7",
      "tree": "2d7112c0bf16458690f6c1b9c1769cca1b3f01b0",
      "parents": [
        "0fd5362adf6cc74f8d9c4fcca20fcb11f28a3c23"
      ],
      "author": {
        "name": "Anh Pham",
        "email": "anhph@google.com",
        "time": "Mon Mar 22 11:50:48 2021 +0100"
      },
      "committer": {
        "name": "Anh Pham",
        "email": "anhph@google.com",
        "time": "Mon Mar 22 18:49:10 2021 +0100"
      },
      "message": "Revert \"Resample sensor events for non-direct connections.\"\n\nThis reverts commit 532e655e42fe641688a9bfa42c427505ae303255.\nSee discussion at b/179649922.\n\nTest: atest CtsSensorTestCases CtsSensorRatePermissionTestCases\nBug: 136069189\nBug: 179649922\nChange-Id: I4f6957428b4ac438a1cc9d7ba3f333f7f43d2f16\n"
    },
    {
      "commit": "0a608f9233083dee9fbfb9774b6070b8e2d9ce6c",
      "tree": "abed2af5ef8dec80da736fc37fb19ff863efd6e3",
      "parents": [
        "a216ecb3437ca410906e3c741a0873e1f5419a7e",
        "f9bd241320d521d8fc7dad00262efc1479a57514"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 20 01:52:34 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 20 01:52:34 2021 +0000"
      },
      "message": "Merge \"SF: disable frame rate override by default\" into sc-dev"
    },
    {
      "commit": "b40ac209ae704c2e3d8958983bd5dafcd30b4b5b",
      "tree": "74d5f1058f7e12bd38a94c87f3f0cdb76178eb31",
      "parents": [
        "81a9915ec7dffe4e553c1a9ccf7a58d994ba3cc5",
        "b7f1556da4ab044563abbc9e126a6abcf4435747"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 19 21:24:41 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 21:24:41 2021 +0000"
      },
      "message": "Merge \"SF: pass the predicted present time to LayerHistory\" into sc-dev"
    },
    {
      "commit": "f9bd241320d521d8fc7dad00262efc1479a57514",
      "tree": "041110eb1410b946d992fc6482c76ef835f25441",
      "parents": [
        "81a9915ec7dffe4e553c1a9ccf7a58d994ba3cc5"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 19 12:50:14 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 19 19:54:49 2021 +0000"
      },
      "message": "SF: disable frame rate override by default\n\nBug: 176940105\nTest: atest FrameRateOverrideHostTest\nChange-Id: I576821aafb161fe41abbc778c0635eae77e5f37c\n"
    },
    {
      "commit": "81a9915ec7dffe4e553c1a9ccf7a58d994ba3cc5",
      "tree": "9e962309f49c7aa88458b86a2e75b6195612aa65",
      "parents": [
        "492ff41f26fda887c1facbfe6d28d10f0782d800",
        "8cbd3075e57963c7bfc2e863cca3d7d2176e3e73"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 19 17:39:20 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 17:39:20 2021 +0000"
      },
      "message": "Merge changes from topic \"eEarlyWakeup_remove\" into sc-dev\n\n* changes:\n  SF: rename ExplicitEarlyWakeup -\u003e EarlyWakeup\n  SurfaceFlinger: remove ISurfaceComposer::eEarlyWakeup\n"
    },
    {
      "commit": "112b272ba44409e27d38ea3b3830314f39be4118",
      "tree": "ab99e5eb8243b1c0e0c0ba255fffeaf8740fa168",
      "parents": [
        "d5ecb64ef43ea1e6fb85c1abe2bd9d679bc3df9b",
        "bb100afd74c97633c0e57861bb6d2c7c6bf2bbde"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 19 15:39:19 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 15:39:19 2021 +0000"
      },
      "message": "Merge \"SF: add vsync id to onMessageReceived trace\" into sc-dev"
    },
    {
      "commit": "d5ecb64ef43ea1e6fb85c1abe2bd9d679bc3df9b",
      "tree": "3d4bf090a51e7cf1af9b6348cc92599a97229bb8",
      "parents": [
        "718f955e7f0536e6c7f996e578bdaa164ec8157c",
        "f452d0b9bbfa019422801b7ae132bb31fccd181e"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Mar 19 06:16:21 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 06:16:21 2021 +0000"
      },
      "message": "Merge \"Move drag event to InputDispatcher (5/n)\" into sc-dev"
    },
    {
      "commit": "8db101095526c49a58fd54bfb9d3501ea5351027",
      "tree": "16d44170fbaf3a25181ecbb74cb632654845df3a",
      "parents": [
        "10bc3ecd4717936f37e7f6e714edcfc0300d0801"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 17:19:23 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 18 17:53:29 2021 -0700"
      },
      "message": "SurfaceFlinger: remove SurfaceControl level vsyncId setting\n\nFrameTimelineInfo can be set on the entire transaction, or for an\nindividual SurfaceControl. Later in the code the FrameTimelineInfo\nis unified based on the most recent vsyncId. For this reason we are\nremoving the setting of a FrameTimelineInfo on a SurfaceControl and\ninstead we use the transaction\u0027s one.\n\nTest: adb shell /data/nativetest64/SurfaceFlinger_test/SurfaceFlinger_test\nBug: 181978893\nBug: 169901895\nChange-Id: Id4a8e46d57fbda66f6d478be82313482053dce20\n"
    },
    {
      "commit": "10bc3ecd4717936f37e7f6e714edcfc0300d0801",
      "tree": "89076ddba35b253f5a007918582a1dcd58df43ac",
      "parents": [
        "5ce44f92a84fce45a20f7c28669f569ad15e9a2f",
        "96b964514f9da988948f7272bba9860d77f430cb"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Mar 18 23:24:59 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 18 23:24:59 2021 +0000"
      },
      "message": "Merge \"Add caching override info into dumpsys\" into sc-dev"
    },
    {
      "commit": "bb100afd74c97633c0e57861bb6d2c7c6bf2bbde",
      "tree": "e90842e86a6d6cea1d14b66693b640359c194515",
      "parents": [
        "4f4734e11c4872107c074976facafc644be78e22"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 18 11:48:43 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 18 11:49:56 2021 -0700"
      },
      "message": "SF: add vsync id to onMessageReceived trace\n\nTest: capture a systrace\nBug: 170914689\nChange-Id: I4e59478caedb9f47e276c59fbab3e7cede9c7369\n"
    },
    {
      "commit": "debd1cbcd488becc629293cfcc4fc5b2ee4ef8b2",
      "tree": "2d67513c486a69c7525de3080534d81543e98db6",
      "parents": [
        "2bbc3a88bd653c050ea270b6456747b40a44c5b3"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Mar 16 10:06:01 2021 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Mar 18 18:33:22 2021 +0000"
      },
      "message": "Remove legacy disable triple buffering config\n\nThe config changes the dequeue limit of BQ (setMaxDequeuedBufferCount) from 2 to 1,  decreasing the default size of the queue from (3 to 2).\nSome of the motivations behind this change include:\n- not applicable in most scenarios since producers in the system override this\n- breaks async mode, not well tested in other scenarios\n- simplifying some of the implementation and removes a configuration/flag.\n\nClients can still manually call setMaxDequeuedBufferCount if they wish.\n\nTest: presubmit\nFixes: 182314340\nChange-Id: Iea88e8a795b91ff325610cfb1eefbcfe6e434841\n"
    },
    {
      "commit": "1506b181085e1f2156283d0e7b62fe94a918427f",
      "tree": "e712ebf2d2f90c5c76600b29f9637ddb1955573d",
      "parents": [
        "3fabf687ee63461d1aad186ae540156aa7765b25"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Feb 22 14:35:15 2021 -0800"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Mar 17 15:58:29 2021 +0000"
      },
      "message": "Introduce release buffer callback for BufferStateLayer\n\nCurrently BLAST clients use the TransactionCompleted callbacks to\ndetermine when to release buffers. The TransactionCompleted callback\nis overloaded. For transactions without buffers, the callback is\ncalled when the transaction is applied on the server. If the\nTransaction contains one or more buffers, the callback is called when\nall the buffers are latched and ready to be presented. If we have\nmultiple buffers on multiple transactions, where one or more buffers\nmaybe dropped, the pending callbacks are called together. This may\ndelay signaling the client when a buffer can be released.\n\nTo fix this, we introduce a new buffer release callback that is\ncalled as soon as a buffer is dropped by the server or when a new\nbuffer has been latched and the buffer will no longer be presented.\nThis new callback provides a graphic bufferid to identify the buffer\nthat can be released and a release fence to wait on.\n\nBlastBufferQueue has been switched to use this new callback. Other\nBLAST users continue to use the existing callback.\n\nTest: go/wm-smoke\nTest: atest ReleaseBufferCallbackTest\nBug: 178385281\n\nChange-Id: Idd88e4994e543443198a5a8cfa0e3f5f67d5d482\n"
    },
    {
      "commit": "3fabf687ee63461d1aad186ae540156aa7765b25",
      "tree": "b79e99d05e49fe196e2ce631331a9388e884ce8e",
      "parents": [
        "b6d93924dcf5777376454212c2d5964e7fb89e98",
        "22be6961e9d4579e926124c5b972c62a45da2451"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 17 02:01:53 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 02:01:53 2021 +0000"
      },
      "message": "Merge \"Expand setBrightness to take BrightnessInfo object\" into sc-dev"
    },
    {
      "commit": "277ee042b538b24aaab298a68cca9d395cd3dfc0",
      "tree": "bf22772018f3e066a041447f05a29870660d0a6d",
      "parents": [
        "29ee953d708df3c1c4b01ff9dcdafea85ccfbbe7",
        "d3fef469955c015e6f54816bde81eae831c7c048"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Wed Mar 17 01:07:03 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 01:07:03 2021 +0000"
      },
      "message": "Merge \"Add InputDevice stats atom logging\" into sc-dev"
    },
    {
      "commit": "96b964514f9da988948f7272bba9860d77f430cb",
      "tree": "bfea4d34a6eee3a25efeb64bdc7137db3f58ca72",
      "parents": [
        "7905c2cb347b2ef2b54fb731be9bfe9fd2d0aaa9"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Mar 16 17:03:43 2021 -0700"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Mar 16 17:03:43 2021 -0700"
      },
      "message": "Add caching override info into dumpsys\n\nBug: 182929956\nTest: dumpsys SurfaceFlinger\nChange-Id: I78fcccd3edf512277856ffeaed1b9ca2baba911b\n"
    },
    {
      "commit": "7905c2cb347b2ef2b54fb731be9bfe9fd2d0aaa9",
      "tree": "77d0783c432cfaa20e1de230db084485f54fe212",
      "parents": [
        "2cdc76b85c680226245aef589865637f49da02a1",
        "9c8fce0bc41a9267e6646a4701068d58eac27bf4"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Mar 16 22:38:24 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 16 22:38:24 2021 +0000"
      },
      "message": "Merge \"Add output dataspace to CachedSet rendering\" into sc-dev"
    },
    {
      "commit": "2bbc3a88bd653c050ea270b6456747b40a44c5b3",
      "tree": "bb35b9c3c8b44daf3929d5f61f00263579242344",
      "parents": [
        "c6465a548630238bdf71a1aa3ebdb4ede7e016d6",
        "25714500c80a7c4efa5cd82ccd914a57bc5d51e6"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Tue Mar 16 13:52:44 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 16 13:52:44 2021 +0000"
      },
      "message": "Merge \"Rename crop_legacy to just crop\" into sc-dev"
    },
    {
      "commit": "c6465a548630238bdf71a1aa3ebdb4ede7e016d6",
      "tree": "499331b96a356fdb3f9db0f1b4989f8969832898",
      "parents": [
        "ead2fee4d9f20d9175c57170181bbd0b9571f60e",
        "0c268c7a42a9aea410e6831e6e3dd3bd6b0c5b92"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Tue Mar 16 13:00:49 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 16 13:00:49 2021 +0000"
      },
      "message": "Merge \"SF: Don\u0027t override active mode with desired mode\" into sc-dev"
    },
    {
      "commit": "f452d0b9bbfa019422801b7ae132bb31fccd181e",
      "tree": "dc7605795559f7f9de59180cc78d7a930406670b",
      "parents": [
        "ead2fee4d9f20d9175c57170181bbd0b9571f60e"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Jan 06 00:19:52 2021 +0800"
      },
      "committer": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Tue Mar 16 18:00:26 2021 +0800"
      },
      "message": "Move drag event to InputDispatcher (5/n)\n\nThis CL add \u0027notifyDropWindow\u0027 to tell the policy about the dropping\nwindow has been detected. That could help the drag controller to handle\nthe drop event and dispatch the clip data to the corresponding client.\n\nBug: 158242495\nTest: atest inputflinger_tests\nChange-Id: If7bce072dff5bdacb7eb765f94eb73ed63a58170\n"
    },
    {
      "commit": "9c8fce0bc41a9267e6646a4701068d58eac27bf4",
      "tree": "394081a9fc2e9e8f71e8f1b58b3f7ae3f332fb0e",
      "parents": [
        "ead2fee4d9f20d9175c57170181bbd0b9571f60e"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 12 18:30:42 2021 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Mar 15 20:49:18 2021 -0700"
      },
      "message": "Add output dataspace to CachedSet rendering\n\nThis ensures that:\n* The proper color conversion is applied to the rendered output.\n* Color information is correctly provided when passing the cached buffer\nover to HWC\n\nAlso rename dataspace to outputDataspace whenever the dataspace is used\nfor output, so that it\u0027s less confusing than just \"dataspace\"\n\nBug: 181192086\nBug: 181192080\nTest: libcompositionengine_test\nChange-Id: I024ab471a9139209d2a51add145e6b14d9ed3745\n"
    },
    {
      "commit": "ead2fee4d9f20d9175c57170181bbd0b9571f60e",
      "tree": "394b97acd037fcbf8dfda46dec6e668decce498c",
      "parents": [
        "732ff4429c35c14d5cf7b32261f6354b877d8f9f",
        "f2b3cde725ebd552f4ee36cb025696deb31c7bcf"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Mar 16 02:40:36 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 16 02:40:36 2021 +0000"
      },
      "message": "Merge \"Add additional predictor unit tests\" into sc-dev"
    },
    {
      "commit": "732ff4429c35c14d5cf7b32261f6354b877d8f9f",
      "tree": "c34d109a40d0bb27093826c1386b3ad0b4fc70b3",
      "parents": [
        "99ebe3f9f63602d22d6f1028b2996bac6665dd07",
        "49da70dca9f9278cf6b8a2247d7b17630d2b0e52"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Mar 16 02:40:23 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 16 02:40:23 2021 +0000"
      },
      "message": "Merge \"Don\u0027t leak flattened buffers from cached sets.\" into sc-dev"
    },
    {
      "commit": "b7f1556da4ab044563abbc9e126a6abcf4435747",
      "tree": "1275b14310abb1f867f384ae1744864459e27439",
      "parents": [
        "99ebe3f9f63602d22d6f1028b2996bac6665dd07"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 18:34:08 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Mar 16 01:35:35 2021 +0000"
      },
      "message": "SF: pass the predicted present time to LayerHistory\n\nIf the predicted present time, according to the frame timeline vsync id,\nis known, pass it to LayerHistory so we could heuristically detect\nthe frame rate of those layers. This is primarly used for TextureView\nbased media players.\n\nBug: 181849694\nTest: TBD\nChange-Id: I4e1d8a0d9c8279c64a514b1f24f4b802e0e9188d\n"
    },
    {
      "commit": "8cbd3075e57963c7bfc2e863cca3d7d2176e3e73",
      "tree": "29f2c19742ce4a9d6248b459dbb0a748f680e59f",
      "parents": [
        "67fba0fd7f7a83ceb8a98ea968050d18113026af"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 16:39:06 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 16:45:15 2021 -0700"
      },
      "message": "SF: rename ExplicitEarlyWakeup -\u003e EarlyWakeup\n\nBug: 159125966\nTest: build\nChange-Id: I3ab95491ac5fe64b0dc56290ad05bbaf7b8e5009\n"
    },
    {
      "commit": "67fba0fd7f7a83ceb8a98ea968050d18113026af",
      "tree": "d5d6ad6f9519185a048314678a9388665eaf7741",
      "parents": [
        "99ebe3f9f63602d22d6f1028b2996bac6665dd07"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 16:13:36 2021 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 16:45:11 2021 -0700"
      },
      "message": "SurfaceFlinger: remove ISurfaceComposer::eEarlyWakeup\n\nThis flag is deprecated.\n\nTest: build\nBug: 159125966\nChange-Id: I7422ba741a25c2247097cd4530dd84da50f02fe1\n"
    },
    {
      "commit": "99ebe3f9f63602d22d6f1028b2996bac6665dd07",
      "tree": "e0d21646f5505d4ad02ba3fd1c900049f7b088b2",
      "parents": [
        "858944dfda6958620d9979adc38a23a98ffa1061",
        "f6a684b8be0bc8fe6b0a4d87a454077abc643e26"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Mar 15 22:13:46 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 15 22:13:46 2021 +0000"
      },
      "message": "Merge \"Add tests for LayerStack::ApproximateMatch\" into sc-dev"
    },
    {
      "commit": "4e2b2d4bdb61bf06becece57453d36d947071a21",
      "tree": "d788f077b375c340b9fb46611479529533025b97",
      "parents": [
        "f5b97a8b0e0cb0e688905a5398f12949c836a190"
      ],
      "author": {
        "name": "Lais Andrade",
        "email": "lsandrade@google.com",
        "time": "Mon Feb 15 20:58:51 2021 +0000"
      },
      "committer": {
        "name": "Lais Andrade",
        "email": "lsandrade@google.com",
        "time": "Mon Mar 15 18:20:34 2021 +0000"
      },
      "message": "Accept float values in Vibrator setAmplitude\n\nThis is a first step towards unifying the waveform APIs to prepare for\nthe PWLE composition. The IVibrator.aidl already supports float\namplitude values, so this also exposes the complete supported amplitude\nrange.\n\nBug: 167947076\nTest: atest libvibratorservice_test\nChange-Id: Icd60cfa51807846de064052ab38a06ae21772755\n"
    },
    {
      "commit": "858944dfda6958620d9979adc38a23a98ffa1061",
      "tree": "3bff182bcaec74c40a6eb03f5b81819d2f6ebe84",
      "parents": [
        "b5ecae7bb0b9a260045752ecb16c011471b88988",
        "5690bdaa18610454b44da3ff3f31e6dc6d6ed849"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 18:11:22 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 15 18:11:22 2021 +0000"
      },
      "message": "Merge \"SF: check isVsyncValid based on the transaction submitter\" into sc-dev"
    },
    {
      "commit": "b5ecae7bb0b9a260045752ecb16c011471b88988",
      "tree": "e1e6e3e6bf2b593a49a1c4a3172f7f5af36b5eee",
      "parents": [
        "49c01d0ba280ec49cbccea8e1672aa975a3d307f",
        "c7900120feb6eb95991c66c63a21653f266ec337"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 18:11:13 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 15 18:11:13 2021 +0000"
      },
      "message": "Merge \"SF: avoid calling pendingBuffers.insert twice\" into sc-dev"
    },
    {
      "commit": "49c01d0ba280ec49cbccea8e1672aa975a3d307f",
      "tree": "d5868a91f007c0fa34e241866804a6b01455432d",
      "parents": [
        "fcddc8eaf7d0ac5328c278ea7a5faf3a39433287",
        "2f43b20dcfd50faec4dc6f55ed55471f4bc7db99"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 18:11:03 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 15 18:11:03 2021 +0000"
      },
      "message": "Merge \"SF: add traces to transactionIsReadyToBeApplied\" into sc-dev"
    },
    {
      "commit": "fcddc8eaf7d0ac5328c278ea7a5faf3a39433287",
      "tree": "14c42ae52839760508ab1516fafd3b3f908e028a",
      "parents": [
        "f5b97a8b0e0cb0e688905a5398f12949c836a190",
        "d1b485397f4cd538e6ec29cb449f90051a84eaec"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 18:10:46 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 15 18:10:46 2021 +0000"
      },
      "message": "Merge \"SurfaceFlinger: run refresh  directly after invalidate\" into sc-dev"
    },
    {
      "commit": "d1b485397f4cd538e6ec29cb449f90051a84eaec",
      "tree": "f575e879b18ecad1b12a131e72aba6c460124f64",
      "parents": [
        "9e49451732117c5a9fde142b4cb571f50eb79662"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Mar 10 16:05:16 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 15 18:10:28 2021 +0000"
      },
      "message": "SurfaceFlinger: run refresh  directly after invalidate\n\nRun the refresh immediately after invalidate as there is no point going\nthru the message queue again, and to ensure that we actually refresh\nthe screen instead of handling other messages that were queued us already\nn the MessageQueue.\n\nBug: 182214053\nTest: SF unit tests\nTest: Launch an app and observe syatraces\nChange-Id: Iff647415d46c4b155b20b60b9e7cc07253339100\n"
    },
    {
      "commit": "25714500c80a7c4efa5cd82ccd914a57bc5d51e6",
      "tree": "c3dd39356b17acb77c166c943478118033f3d30d",
      "parents": [
        "f5b97a8b0e0cb0e688905a5398f12949c836a190"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Thu Feb 11 10:01:08 2021 -0800"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Mar 15 10:49:31 2021 -0500"
      },
      "message": "Rename crop_legacy to just crop\n\ncrop_legacy and crop should do the same thing so there\u0027s no need for two\nseparate requests.\n\nTest: go/wm-smoke\nTest: SurfaceFlinger_test\nBug: 170765639\n\nChange-Id: I74a740d06d15f7cde9775557e65ad1e3a508bd61\n"
    },
    {
      "commit": "132bfbf52787161f465528c60c58ef595ffd8d15",
      "tree": "d0cf0a9c2ca170fd26e37b26b155147a73657ed5",
      "parents": [
        "88682d4f8aa73ff7b1baceee4b9e252f97f0eb1f",
        "f1b7c7be8130bd86c827a2acc05fa4aa58344e52"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Mon Mar 15 01:36:38 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 15 01:36:38 2021 +0000"
      },
      "message": "Merge \"Prevent waiting synchronous case if transaction applied first\" into sc-dev"
    },
    {
      "commit": "88682d4f8aa73ff7b1baceee4b9e252f97f0eb1f",
      "tree": "bbe6b9faee9197373774c41336c492298cc341cd",
      "parents": [
        "82af789b6900ebd212c58e5a07edba3e74ddc874",
        "eedd0fc7b1a1269fc4891ddb110c5197739cc3d0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 13 21:06:23 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 13 21:06:23 2021 +0000"
      },
      "message": "Merge \"Use Result\u003cInputPublisher::Finished\u003e instead of callback -- try 2\" into sc-dev"
    },
    {
      "commit": "82af789b6900ebd212c58e5a07edba3e74ddc874",
      "tree": "d0f0799b1d47dcbe734698cb901fec15330a29e0",
      "parents": [
        "90f6694bd34da4ca913c9f8aeae7ad90dd8412bc",
        "eb920d9a244971a0f8f5240f16218335a3abc30d"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Sat Mar 13 05:15:27 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 13 05:15:27 2021 +0000"
      },
      "message": "Merge \"Add unit tests for planner\u0027s LayerState\" into sc-dev"
    },
    {
      "commit": "93af2abe1e8a27803c88036d98d0f251cbab9a13",
      "tree": "8f75ccb2c92ea3aa320f22e28955d7d2373a11bb",
      "parents": [
        "c04b9206d9942fbff1642eea1599f68743dced6b",
        "ba9a6ce97aead81c2bddd7bd4b79e8205fbd39a1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 13 00:59:23 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 13 00:59:23 2021 +0000"
      },
      "message": "Merge \"Add support for querying resonant frequency and Q factor.\" into sc-dev"
    },
    {
      "commit": "5690bdaa18610454b44da3ff3f31e6dc6d6ed849",
      "tree": "7daddbaab53fc3af5e4866a71db7d9d0b92482d9",
      "parents": [
        "c7900120feb6eb95991c66c63a21653f266ec337"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 12 15:01:18 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 12 15:01:32 2021 -0800"
      },
      "message": "SF: check isVsyncValid based on the transaction submitter\n\nisVsyncValid is used to throttle applications to a lower frame rate than\nthe display refresh rate. With the current implementation of BlastSync\nwe may get a single transaction that contains layers from different\napplications, we may cause to throttle unindended applications\n(such as SystemUI). Instead, we are checking the transaction submitter\nfor whether we should throttle the transaction or not.\n\nBug: 182587984\nTest: atest FrameRateOverrideHostTest\nChange-Id: I7dd0c4c1ac945d6142afcdc8ba62c5a48a6dbb00\n"
    },
    {
      "commit": "c7900120feb6eb95991c66c63a21653f266ec337",
      "tree": "300f00cf524b4ac4a68586e5ac2e9ed7e1f82601",
      "parents": [
        "2f43b20dcfd50faec4dc6f55ed55471f4bc7db99"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 12 13:51:01 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 12 13:52:10 2021 -0800"
      },
      "message": "SF: avoid calling pendingBuffers.insert twice\n\nag/13806579 accidently added another call to pendingBuffers.insert which\nis incorrect.\n\nBug: 181978893\nTest: SF unit tests\nChange-Id: I3e7df528f8dcb1ccd8c5a83c51b23b8433a049d3\n"
    },
    {
      "commit": "2f43b20dcfd50faec4dc6f55ed55471f4bc7db99",
      "tree": "cac82e02e776a6302ed890aea429209ac3bc8920",
      "parents": [
        "30c6ac31bd18b9ea045cf39b125a5fb145300248"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 12 12:34:52 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 12 12:35:08 2021 -0800"
      },
      "message": "SF: add traces to transactionIsReadyToBeApplied\n\nAdd more trace points to understand why a transaction is not ready\nto be applied.\n\nBug: 182587984\nTest: systrace\nChange-Id: I78faf93cd0f360fb4939445a02f7cbc1843c307f\n"
    },
    {
      "commit": "eedd0fc7b1a1269fc4891ddb110c5197739cc3d0",
      "tree": "b2da1bb55347b43cb87cacc52ca69e7515ecc8dd",
      "parents": [
        "cc81b2f4c32846ecfacb9c56a61eb9af694f345f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 09:50:36 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 20:25:07 2021 +0000"
      },
      "message": "Use Result\u003cInputPublisher::Finished\u003e instead of callback -- try 2\n\nWhen the \u0027Finished\u0027 message is received inside InputDispatcher, we are\ncurrently providing a callback function that gets executed with the\nparameters that are matching the InputMessage fields.\n\nThis does not scale well for the case where there is more than 1 type of\nInputMessage received from the InputConsumer. We would have to provide 2\ncallbacks, which is not user-friendly.\n\nThe calling code inside InputDispatcher is already aware of the\nInputMessage struct, but InputMessage is intended to be a protocol of\ncommunication between input channels, and is not meant to be used\nelsewhere. To provide the output of \u0027finished\u0027 signal, we introduce a\nnew \u0027Finished\u0027 struct into InputPublisher. InputPublisher will now try\nto read a message, and will provide a response in that struct.\n\nThis approach will also now force the caller to check ok(), which will\nincrease correctness.\n\nBug: 167947340\nTest: atest inputflinger_tests\nTest: TBD\n\nRevert submission 13838212-revert-13780058-receiveFinishedSignal-UGCLLLUBPW\n\nReason for revert: Relanding with fix\nReverted Changes:\nIdb3a44b4a:Revert \"Update the usage of receiveFinishedSignal\"...\nI1e71010f5:Revert \"Use Result\u003cInputPublisher::Finished\u003e inste...\n\nChange-Id: I9c425bb7249d43648e558214e40fa35aeaa0bb11\n"
    },
    {
      "commit": "c04b9206d9942fbff1642eea1599f68743dced6b",
      "tree": "2c79f6f654da95c2374c7a86b183086e2ac62131",
      "parents": [
        "f73e801e72b6548e22dac668fe958dbe3445e781",
        "79bf8a9d9ca8ead36032cf7546b900d196f99c88"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Mar 12 20:21:32 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 20:21:32 2021 +0000"
      },
      "message": "Merge changes I0b1cb7ac,I1a5eb572 into sc-dev\n\n* changes:\n  SurfaceFlinger: Check both queues in transactionFlushNeeded\n  BufferStateLayer: shouldPresentNow is always true\n"
    },
    {
      "commit": "f2b3cde725ebd552f4ee36cb025696deb31c7bcf",
      "tree": "e161ed5d617ac23a13901fac5d743a2b39b9ab24",
      "parents": [
        "f6a684b8be0bc8fe6b0a4d87a454077abc643e26"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Mar 10 20:31:17 2021 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 12 12:08:45 2021 -0800"
      },
      "message": "Add additional predictor unit tests\n\n* Add tests for PredictedPlan\n* Add tests for the main Predictor class\n\nBug: 180669092\nTest: libcompositionengine_test\nChange-Id: I75d825ca7306f2ea12546091e947e15ccac63dfb\n"
    },
    {
      "commit": "f6a684b8be0bc8fe6b0a4d87a454077abc643e26",
      "tree": "42302104fc2d20481a38098d48d027f089c76a02",
      "parents": [
        "eb920d9a244971a0f8f5240f16218335a3abc30d"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Mar 09 13:00:18 2021 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 12 12:08:35 2021 -0800"
      },
      "message": "Add tests for LayerStack::ApproximateMatch\n\nAlso:\n* Fix a bug in approximate match calculation where the number of\ndiffering fields was always zero.\n* Add some documentation.\n\nBug: 180669092\nTest: libcompositionengine_test\n\nChange-Id: I89d6d3f3298615e6b964b053d12127143e2dc060\n"
    },
    {
      "commit": "49da70dca9f9278cf6b8a2247d7b17630d2b0e52",
      "tree": "5df268b25781e300807d87a84eb18e0676bf35bd",
      "parents": [
        "9b24e29ee6df2b9bc78644b0ef9a7fb1257ad7c4"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Mar 10 21:11:25 2021 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 12 12:05:01 2021 -0800"
      },
      "message": "Don\u0027t leak flattened buffers from cached sets.\n\nunbindExternalTextureBuffer needs to be called when a CachedSet is\ndestroyed. Otherwise GPU textures are leaked.\n\nThis is implemented as a Texture RAII instead of modifying CachedSet\u0027s\ndestructor directly, because that\u0027s closer to the long-term buffer\nlifecycle solution for RenderEngine.\n\nBug: 182415252\nTest: observe dumpsys SurfaceFlinger while playing youtube video\n\nChange-Id: Ib2d0a497621c121021189827cdc64b11ce9ef458\n"
    },
    {
      "commit": "f73e801e72b6548e22dac668fe958dbe3445e781",
      "tree": "e7d84007455db865baa1e7227ba03ad1559e4619",
      "parents": [
        "cc81b2f4c32846ecfacb9c56a61eb9af694f345f",
        "1130b3dcd6b00a6690633d7dfe56ab584fb7ddd8"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Mar 12 19:39:23 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 19:39:23 2021 +0000"
      },
      "message": "Merge \"SF: fix frameTimelineVsyncId \u003d 0\" into sc-dev"
    },
    {
      "commit": "22be6961e9d4579e926124c5b972c62a45da2451",
      "tree": "fca673d7ef87947c9ab33bd216160551022c7530",
      "parents": [
        "9281250cbb191a3862bad5b1b740f2e0031c887d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 10 12:59:54 2021 -0500"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 12 13:34:22 2021 -0500"
      },
      "message": "Expand setBrightness to take BrightnessInfo object\n\nPass SDR \u0026 HDR brightness independently along with\ncalibrated nits value\n\nBug: 182312559\nTest: builds \u0026 boots\n\nChange-Id: If6119c06a30c8f709e1f3982da035a9e088c4e87\n"
    },
    {
      "commit": "cc81b2f4c32846ecfacb9c56a61eb9af694f345f",
      "tree": "464a4fc23a8687d33a8ab34f8ed1b11d64547935",
      "parents": [
        "870da0041ca5ef9f2c4c54ff5282acf95373ed5e",
        "766c9c53dd3602beb938b76c4376ded2630f59bb"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Mar 12 17:55:39 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 17:55:39 2021 +0000"
      },
      "message": "Merge \"Simplify width, height, transform variable for BSL\" into sc-dev"
    },
    {
      "commit": "f1b7c7be8130bd86c827a2acc05fa4aa58344e52",
      "tree": "4b92c4af3af7d2489097babd3f8ad74515086d92",
      "parents": [
        "870da0041ca5ef9f2c4c54ff5282acf95373ed5e"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Mar 03 17:42:23 2021 +0800"
      },
      "committer": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Fri Mar 12 20:04:42 2021 +0800"
      },
      "message": "Prevent waiting synchronous case if transaction applied first\n\nCurrently, transaction would be queued and apply in the main thread,\nif a given transaction would wish to apply synchronously. We may wait\nit in binder thread until the transaction has been applied, but if\n\u0027applyTransactionState\u0027 comes first, it would cause redundant waiting.\n\nTo prevent this, we use the CountDownLatch in transaction to wait the\nsynchronous state, it will wait until transactions applied and committed.\n\nBug: 181480169\nTest: libsurfaceflinger_unittest SurfaceFlinger_test libgui_test\nChange-Id: I1fe56296810cdeadeae5b37ae9b4bd00d9e689c3\n"
    },
    {
      "commit": "870da0041ca5ef9f2c4c54ff5282acf95373ed5e",
      "tree": "2f4c09e119ef5db49a80448be6bdc1024317bae3",
      "parents": [
        "a1589108b6b469f49293ab3d96ee6ee5ae24b79f",
        "7cce0ad081d8997b97cf94ca99df8f06f330e906"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 12 06:52:36 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 06:52:36 2021 +0000"
      },
      "message": "Merge \"Revert \"Use Result\u003cInputPublisher::Finished\u003e instead of callback\"\" into sc-dev"
    },
    {
      "commit": "7cce0ad081d8997b97cf94ca99df8f06f330e906",
      "tree": "326c333299927d17ddd6086031429959f036be6c",
      "parents": [
        "4c92c5f630fc2f3a3ab15b1fd6e35e32e34534d8"
      ],
      "author": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Fri Mar 12 04:18:38 2021 +0000"
      },
      "committer": {
        "name": "Yohei Yukawa",
        "email": "yukawa@google.com",
        "time": "Fri Mar 12 04:18:38 2021 +0000"
      },
      "message": "Revert \"Use Result\u003cInputPublisher::Finished\u003e instead of callback\"\n\nRevert submission 13780058-receiveFinishedSignal\n\nReason for revert:\nCaused severe delay in back navigation on IME-focusable window.\n\nReverted Changes:\nI301c6e9c3:Use Result\u003cInputPublisher::Finished\u003e instead of ca...\nI43a0f2d31:Update the usage of receiveFinishedSignal\n\nBug: 167947340\nFix: 182514338\nTest: Manually verified as follows:\n 1. Set up the device as \"Set up offline\" mode.\n 2. adb shell am start -n com.google.android.dialer/.extensions.GoogleDialtactsActivity\n 3. On one terminal, run adb logcat -s InputMethodManager:*\n 4. On another terminal, run adb shell input keyevent 4\n 5. Make sure that the following message is not shown.\n  \"Timeout waiting for IME to handle input event after 2500 ms\"\n\nChange-Id: I1e71010f5f4ae268dfcbc3bde50881c2fa3d51d5\n"
    },
    {
      "commit": "eb920d9a244971a0f8f5240f16218335a3abc30d",
      "tree": "9d927b0b629ee36946cf70cf6fdd4ca2faa5d370",
      "parents": [
        "9b24e29ee6df2b9bc78644b0ef9a7fb1257ad7c4"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Mar 01 17:48:30 2021 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Mar 11 20:16:35 2021 -0800"
      },
      "message": "Add unit tests for planner\u0027s LayerState\n\nBug: 180639488\nTest: libcompositionengine_test\n\nChange-Id: I3660d58c0c8e17b5e9a6378e5c9a5ca5842f2cad\n"
    },
    {
      "commit": "a1589108b6b469f49293ab3d96ee6ee5ae24b79f",
      "tree": "96dfb6419fc68fcae697630f2065771b86ede67f",
      "parents": [
        "cb36a8764dcc8ebc26288243ce38c2008d1b65d9",
        "b89ccb0e3e412f65f512bb5f3ebcd93de696b8a9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 12 03:52:36 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 03:52:36 2021 +0000"
      },
      "message": "Merge \"Move drag event to InputDispatcher (3/n)\" into sc-dev"
    },
    {
      "commit": "79bf8a9d9ca8ead36032cf7546b900d196f99c88",
      "tree": "917b8bf0892138d1531b3cb372f45680aaf450b0",
      "parents": [
        "6a5dc1fa8128964a102ae3d7ec460127b0bcf8fc"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Mar 11 16:24:28 2021 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Mar 11 16:45:37 2021 -0800"
      },
      "message": "SurfaceFlinger: Check both queues in transactionFlushNeeded\n\ntransactionFlushNeeded is called from handleMessageTransaction to\ndeal with an edge case in timing. First note that we are not holding\nthe state lock in handleMessageTransaction, and so a binder thread\ncould be adding transactions to the queue. If a Binder thread\nadds a transaction to the queue in-between the calls to\nflushTransactionQueues and handleTransaction then its\naddition of the eTransactionFlushNeeded flag will be cleared out\nwhen handleTransaction consumes eTransactionMask. The code in\nthe transactionFlushNeeded conditional was added to handle this\ncondition, but transactionFlushNeeded was only checking the\npending transaction queue. If there were a a transaction added\nto the mTransactionQueue (binder thread-\u003emain thread communication\nqueue) during this interval, we wouldn\u0027t pick it up from\ntransactionFlushNeeded and we wouldn\u0027t reapply the flag. Recent\nchanges seem to have agitated this condition and we are receiving\na lot of dogfood bugs, so deploying this as a hopeful quick fix. A\nfollow-up CL will rework this brittle flag system with something\neasier do understand.\n\nBug: 180194022\nTest: Existing tests pass\nChange-Id: I0b1cb7acf7576e38ea076c7f3b921cbce25775bc\n"
    },
    {
      "commit": "6a5dc1fa8128964a102ae3d7ec460127b0bcf8fc",
      "tree": "9c56e663d8bb9390f0c7c52adccbaedaffeea54e",
      "parents": [
        "a170ec6a87f2720eb9846ea75cd9807db54b12ad"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Mar 11 12:36:40 2021 -0800"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Mar 11 16:45:03 2021 -0800"
      },
      "message": "BufferStateLayer: shouldPresentNow is always true\n\nThis method should actually be removed because we do the checking\nat the transaction queue level now, but we leave it for now for\nBufferQueueLayer. To show the method should always return true\nwe can examine each clause in the method:\n\t1. isVsyncValidForUid: We were supposed to check this at\n\ttransaction queue, if for some reason this returned false\n\tnow we just need to continue.\n\t2. getSideBandStream/AutoRefresh, covered by the call to\n\tlayer-\u003ehasReadyFrame which encloses the only call to\n\tlayer-\u003eshouldPresentNow\n\t3. hasFrameUpdate, also called by layer-\u003ehasReadyFrame\n\t4. isBufferDue, supposed to be handled by the transaction\n\tqueue, mismatch not allowed at this point.\nJust landing this to simplify debugging around this codepath.\n\nBug: 180194022\nTest: Existing tests pass\nChange-Id: I1a5eb572a3e651a2504039ef9cc8e3b51a46dd3c\n"
    },
    {
      "commit": "cb36a8764dcc8ebc26288243ce38c2008d1b65d9",
      "tree": "75c011d1d04dbf88599a8c8090c11e07d4e9579b",
      "parents": [
        "9b24e29ee6df2b9bc78644b0ef9a7fb1257ad7c4",
        "d11eb6bd1bec673653e591d10df0ec118554c387"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Fri Mar 12 00:11:42 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 00:11:42 2021 +0000"
      },
      "message": "Merge changes I6cd9c4cb,I6ceef468 into sc-dev\n\n* changes:\n  Dropping SurfaceFrames from Drawing State\n  Add isBuffer to SurfaceFrame\n"
    },
    {
      "commit": "9b24e29ee6df2b9bc78644b0ef9a7fb1257ad7c4",
      "tree": "ec69e715e422b4cac5092b26c69a595fb75c4746",
      "parents": [
        "cc8dc219c302eecd4cd65e321dce51ebf8a824f1",
        "b7db4106cdb132ac0e1b47fa003747a2908fec03"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 11 22:43:52 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 22:43:52 2021 +0000"
      },
      "message": "Merge \"Add unit tests for android::compositionengine::impl::planner::Flattener\" into sc-dev"
    },
    {
      "commit": "cc8dc219c302eecd4cd65e321dce51ebf8a824f1",
      "tree": "cb5b9bb2dafb0d1fb1b5e3362b8f379c61a12e54",
      "parents": [
        "748f9403275c6c9f5d43a93f0f4b6797d8710282",
        "cf027d6e33637ad2e41eed80bdf678b90a160ed6"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 11 22:43:38 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 22:43:38 2021 +0000"
      },
      "message": "Merge \"Add unit tests for android::compositionengine::impl::planner::CachedSet\" into sc-dev"
    },
    {
      "commit": "748f9403275c6c9f5d43a93f0f4b6797d8710282",
      "tree": "99f7e12ac2d54b0631b5f9217e6600f480dd6204",
      "parents": [
        "f93afea1738c3cc4c69d5808714bc230b6e93b79",
        "a0a16278232f4f5806c46417ae4ec24cab7f869b"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 11 22:41:21 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 22:41:21 2021 +0000"
      },
      "message": "Merge \"Fix memory leaks in libsurfaceflinger_unittest\" into sc-dev"
    },
    {
      "commit": "283173fe304bde455400ad65a9a3e006cb8d7d3a",
      "tree": "7f39f805ad476a8c3ca1be5edd8a9778a764766c",
      "parents": [
        "de822c779c0e73519133fc3a44d17eb6df927a7f",
        "5673d11d4abab7d6176c44301a53ba78c2a1ec67"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 11 22:40:31 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 11 22:40:31 2021 +0000"
      },
      "message": "Merge \"Fix sensor activate after SensorEventConnection removed\" am: b51a9cc926 am: ce93621d5d am: 5673d11d4a\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1577107\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ib6f828cf2d9f30e2250279e1b93ae557ca041639\n"
    },
    {
      "commit": "de822c779c0e73519133fc3a44d17eb6df927a7f",
      "tree": "b79d8a084372123c987d88d78bb554f24678fe74",
      "parents": [
        "9281250cbb191a3862bad5b1b740f2e0031c887d",
        "4c92c5f630fc2f3a3ab15b1fd6e35e32e34534d8"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 11 22:32:19 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 22:32:19 2021 +0000"
      },
      "message": "Merge \"Use Result\u003cInputPublisher::Finished\u003e instead of callback\" into sc-dev"
    },
    {
      "commit": "9281250cbb191a3862bad5b1b740f2e0031c887d",
      "tree": "715bebae390e02878bcb9caeafdbce5760976c2c",
      "parents": [
        "f2e9428a0d27f4d58b3d864a9b7a12cb4e21799a",
        "193426d6c539d4638d6416e9e0caaa62f18fa7ac"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 11 22:06:28 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 22:06:28 2021 +0000"
      },
      "message": "Merge \"SF: add buffer checks to Render Engine\" into sc-dev"
    },
    {
      "commit": "b51a9cc926a8f49db6c2c65a47ec4ea7d72b510b",
      "tree": "880d4844b72d06f89f701d137be079ed4b0d09c2",
      "parents": [
        "682f459f94a65a5641c2e52303b515b089a96ab2",
        "94ae13178781a14867071636fded56c907a9db8b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 11 20:34:27 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 11 20:34:27 2021 +0000"
      },
      "message": "Merge \"Fix sensor activate after SensorEventConnection removed\""
    },
    {
      "commit": "1130b3dcd6b00a6690633d7dfe56ab584fb7ddd8",
      "tree": "5c7880e813565d2c353af5c36b970a047a06ed20",
      "parents": [
        "30c6ac31bd18b9ea045cf39b125a5fb145300248"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 04 19:16:54 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 11 11:08:58 2021 -0800"
      },
      "message": "SF: fix frameTimelineVsyncId \u003d 0\n\nFix a case where we would send 0 as the frame vsync id,\nwhich is incorrect.\n\nTest: expand notification shade + press power button\nBug: 181694819\nBug: 162890590\nChange-Id: I7b910f9d022424a9a5246883d958f0c2a1933f5c\n"
    },
    {
      "commit": "193426d6c539d4638d6416e9e0caaa62f18fa7ac",
      "tree": "25945343f0ee48e560c7ac20b26470cebefb717d",
      "parents": [
        "30c6ac31bd18b9ea045cf39b125a5fb145300248"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Feb 18 14:01:53 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 11 11:05:37 2021 -0800"
      },
      "message": "SF: add buffer checks to Render Engine\n\nMake sure that both input and output buffers are GPU accessible\nbefore Render Engine tries to do something with the buffers.\n\nTest: Boot, launch an app, take a screenshot\nBug: 158790260\nChange-Id: I905a670f6cc2d419b49fe79694df6e71d60a2a92\n"
    },
    {
      "commit": "b7db4106cdb132ac0e1b47fa003747a2908fec03",
      "tree": "0abf0020c273b79151167c7dfb4df5b7ea21ca2d",
      "parents": [
        "cf027d6e33637ad2e41eed80bdf678b90a160ed6"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 04 12:19:26 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 11 18:39:30 2021 +0000"
      },
      "message": "Add unit tests for android::compositionengine::impl::planner::Flattener\n\nFixes: 180672722\nTest: adb shell /data/nativetest64/libcompositionengine_test/libcompositionengine_test\nChange-Id: I9ac809cb94e7a1d33b0381a787360049aae4c459\n"
    },
    {
      "commit": "94ae13178781a14867071636fded56c907a9db8b",
      "tree": "63ec35d2cbb63851d62cd9d58368ae35e6ec99ae",
      "parents": [
        "73ab3a30ac6a1dd63f9257a091546f10cfa51811"
      ],
      "author": {
        "name": "xiamengsen",
        "email": "xms1714483165@gmail.com",
        "time": "Fri Feb 05 15:35:34 2021 +0800"
      },
      "committer": {
        "name": "Arthur Ishiguro",
        "email": "arthuri@google.com",
        "time": "Thu Mar 11 17:43:04 2021 +0000"
      },
      "message": "Fix sensor activate after SensorEventConnection removed\n\nWhen app idle and register a sensor on existing connection,the method\nsensor.batch() retrun NO_ERROR but sensor.activate() return INVALID_OPERATION.\nThe sensor will remove from the connecion but unable to remove from the\nbatchParams,this make the sensor active after the app killed.\nAs the client is disabled, keep the sensor in the connection for resume.\n\nBug: 180825144\nTest: Debug app in 180825144\n\nSigned-off-by: xiamengsen \u003cxiamengsen@xiaomi.com\u003e\nChange-Id: Icc22862d1a083abba08fb2cbcabd043444b7090f\n"
    },
    {
      "commit": "0c268c7a42a9aea410e6831e6e3dd3bd6b0c5b92",
      "tree": "86a90c8f9647bf97d64b7cc8c8e3e572f67acd47",
      "parents": [
        "06c667b0963e48a682e8528b976ad9ed25c9cc2c"
      ],
      "author": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Wed Mar 10 18:22:46 2021 +0100"
      },
      "committer": {
        "name": "Marin Shalamanov",
        "email": "shalamanov@google.com",
        "time": "Thu Mar 11 16:06:33 2021 +0100"
      },
      "message": "SF: Don\u0027t override active mode with desired mode\n\ngetDynamicDisplayInfo().activeDisplayModeId should\nnot return the upcoming mode if we are in the process\nof a mode change.\n\nBug: 180090041\nTest: presubmit\nTest: atest DisplayTest\nChange-Id: I8b2b80f5ce1f57e4652d8794fd40a1f78715af6f\n"
    },
    {
      "commit": "4c92c5f630fc2f3a3ab15b1fd6e35e32e34534d8",
      "tree": "23b26bb9228eca41fdcc4dca4191141271bd0311",
      "parents": [
        "5c2a67856070668b9f886a5e1fef7694444b8a1f"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri Mar 05 02:32:57 2021 +0000"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu Mar 11 03:38:48 2021 +0000"
      },
      "message": "Use Result\u003cInputPublisher::Finished\u003e instead of callback\n\nWhen the \u0027Finished\u0027 message is received inside InputDispatcher, we are\ncurrently providing a callback function that gets executed with the\nparameters that are matching the InputMessage fields.\n\nThis does not scale well for the case where there is more than 1 type of\nInputMessage received from the InputConsumer. We would have to provide 2\ncallbacks, which is not user-friendly.\n\nThe calling code inside InputDispatcher is already aware of the\nInputMessage struct, but InputMessage is intended to be a protocol of\ncommunication between input channels, and is not meant to be used\nelsewhere. To provide the output of \u0027finished\u0027 signal, we introduce a\nnew \u0027Finished\u0027 struct into InputPublisher. InputPublisher will now try\nto read a message, and will provide a response in that struct.\n\nThis approach will also now force the caller to check ok(), which will\nincrease correctness.\n\nBug: 167947340\nTest: atest inputflinger_tests\nChange-Id: I301c6e9c39c02692f5565aa8affdcfd0e17bcefc\n"
    },
    {
      "commit": "b89ccb0e3e412f65f512bb5f3ebcd93de696b8a9",
      "tree": "7f968c0f6d5399c428384ce5864e79d3cf115195",
      "parents": [
        "5c2a67856070668b9f886a5e1fef7694444b8a1f"
      ],
      "author": {
        "name": "arthurhung",
        "email": "arthurhung@google.com",
        "time": "Wed Dec 30 16:19:01 2020 +0800"
      },
      "committer": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Thu Mar 11 02:31:42 2021 +0000"
      },
      "message": "Move drag event to InputDispatcher (3/n)\n\nThis CL re-implements the drag hover detecting in InputDispatcher,\nmoving it away from DragState.\n\nCurrently, any window or windowless surface could receive drag event if\nit is visible and touch-deliverable. But it\u0027s hard to tell if a surface\ncould receive this drag event in WM side because we didn\u0027t know the\nfinal touch region of the surface that could be cropped by others.\n\nThe new expected behaviors are:\n- DragAndDropController will transfer touch to drag window when perform\n  drag, and InputDispatcher will store drag window when transfer\n  touch focus.\n- InputDispatcher will start detecting drag hover window by pointer.\n- Send drag exit if drag pointer leave the window.\n- Send drag event to the target window during moving.\n\nBug: 158242495\nTest: atest inputflinger_test\nChange-Id: I0266f81afd4fb60280ae7694dd7241500cf9cb18\n"
    },
    {
      "commit": "5c2a67856070668b9f886a5e1fef7694444b8a1f",
      "tree": "326c333299927d17ddd6086031429959f036be6c",
      "parents": [
        "eeb9ba214c25c39093529cfa9cf1d540ea1fe2b8",
        "d7482e78de144f17c35ad63f187333df0bff531f"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Mar 11 01:40:37 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 01:40:37 2021 +0000"
      },
      "message": "Merge \"Per-window input rotation: Let InputReader use un-rotated coordinates\" into sc-dev"
    },
    {
      "commit": "eeb9ba214c25c39093529cfa9cf1d540ea1fe2b8",
      "tree": "f19db1dc278fe2a0a0e3bfdf279c50609dc2d12f",
      "parents": [
        "30c6ac31bd18b9ea045cf39b125a5fb145300248",
        "bd52771be41ae18f9fda43301eeeab89021d4248"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 11 01:22:47 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 01:22:47 2021 +0000"
      },
      "message": "Merge \"InputDispatcher: Remove transform for non-pointer events\" into sc-dev"
    },
    {
      "commit": "36e94b415d09d8aed6150fe8b8fe9bfdfd9dfd29",
      "tree": "ceeabd09ac753e7c6d52af02bccec70960afb662",
      "parents": [
        "06c667b0963e48a682e8528b976ad9ed25c9cc2c",
        "7c4ac7a31d3dc4a0cfec9d2f893c56307ee95185"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Thu Mar 11 00:41:46 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 11 00:41:46 2021 +0000"
      },
      "message": "Merge changes I3a501dd0,I23f3b85f into sc-dev\n\n* changes:\n  Consider invalid present fence time in FrameTimeline\n  Call SurfaceFrame::onPresent if DisplayFrame predictions expired\n"
    },
    {
      "commit": "d11eb6bd1bec673653e591d10df0ec118554c387",
      "tree": "0abf038cf9b7beafa514c3981ff0f80a12c69eaa",
      "parents": [
        "785adddcbbf459a2ee7351be11fc6fc453740e31"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Tue Mar 09 18:46:28 2021 +0000"
      },
      "committer": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Thu Mar 11 00:02:12 2021 +0000"
      },
      "message": "Dropping SurfaceFrames from Drawing State\n\nOur assumption is that a buffer committed into drawing state will be\nlatched and presented. Based on this assumption, we present a\nBufferSurfaceFrame only at latch time instead of commit time. However,\nduring back to back invalidates, there is a chance that the first\ncommitted buffer is not latched. It could be replaced by another buffer\nin the second invalidate. This leads to the SurfaceFrame getting stuck\nin the pending classification list. To prevent this, have a check in\ncommitTransaction that drops the SurfaceFrame properly if it hasn\u0027t been\npresented before.\n\nBack to back invalidate can currently be triggered by just flashing a\nclean build and launching the dialer.\n\nBug: 182214053\nTest: libsurfaceflinger_unittest\nChange-Id: I6cd9c4cbfb2ca50b96654ed240664758dad86f19\n"
    },
    {
      "commit": "785adddcbbf459a2ee7351be11fc6fc453740e31",
      "tree": "da2e16912ac79a8c2d5b85c1a7590a574bde386e",
      "parents": [
        "7c4ac7a31d3dc4a0cfec9d2f893c56307ee95185"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Tue Mar 09 00:38:00 2021 +0000"
      },
      "committer": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Wed Mar 10 23:35:45 2021 +0000"
      },
      "message": "Add isBuffer to SurfaceFrame\n\nAdd a boolean that tells if the SurfaceFrame is representing a buffer or\nnot. This makes it easy to debug lost/stuck frames in the pending\nclassification list. Also add a miniDump for SurfaceFrame to enable\ndebugging the lost frame.\n\nBug: 182214639\nTest: Build and flash\nChange-Id: I6ceef46887a021c2f36e76f37fab8368802465a4\n"
    },
    {
      "commit": "766c9c53dd3602beb938b76c4376ded2630f59bb",
      "tree": "3f2e3a188f8b39a61dfd1f6de7bdc65015c7a2ce",
      "parents": [
        "785ac97f130af051d2ce348471d806a72993a172"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Wed Feb 10 17:36:47 2021 -0800"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Wed Mar 10 14:46:15 2021 -0800"
      },
      "message": "Simplify width, height, transform variable for BSL\n\nInitial refactor to remove setFrame and use crop and transform instead.\nRenamed some BSL variables to avoid confusion.\n\nTest: Builds\nBug: 170765639\nChange-Id: I907940638c32103cb867c3b1566b9d4ce26c7274\n"
    },
    {
      "commit": "bd52771be41ae18f9fda43301eeeab89021d4248",
      "tree": "2c18ead52b1185fbe3bc952f6957e9993b3b196f",
      "parents": [
        "a7836eb3ded16ace0f1fe4a8596184b081daa48b"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 09 19:17:09 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Mar 10 14:25:23 2021 -0800"
      },
      "message": "InputDispatcher: Remove transform for non-pointer events\n\nMotionEvents that are not pointer events should not have a window\ntransform associated with them because they don\u0027t correspond to\non-screen locations.\n\nBug: 182325974\nTest: manual, verify pointer capture in freeform and multi-window modes\nChange-Id: I774bbdfacffa68a42e72e3ca52ec4b474560ff34\n"
    },
    {
      "commit": "06c667b0963e48a682e8528b976ad9ed25c9cc2c",
      "tree": "a052b82b1769e1a002dd36fb9a1d7aea12d1c370",
      "parents": [
        "785ac97f130af051d2ce348471d806a72993a172",
        "e7f6ee7ea154b4b4d322966bd003386ec181aa65"
      ],
      "author": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Wed Mar 10 20:43:00 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 20:43:00 2021 +0000"
      },
      "message": "Merge changes I8d2a0988,I5f8f7c4a into sc-dev\n\n* changes:\n  Fix bg blur not showing when layer alpha is 0\n  Fix blur sampling outside bounds of layer\n"
    },
    {
      "commit": "7c4ac7a31d3dc4a0cfec9d2f893c56307ee95185",
      "tree": "08ab98fbec443edb9dbe0f0331ce4a3853eb6cfd",
      "parents": [
        "115ac691f66f87782de4089254c928f55d70bbc1"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Mon Mar 08 23:48:03 2021 +0000"
      },
      "committer": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Wed Mar 10 03:42:17 2021 +0000"
      },
      "message": "Consider invalid present fence time in FrameTimeline\n\nVirtual devices could send the present fence signal time as\nSIGNAL_TIME_INVALID (-1) due to the present fence is unreliable\nproperty. The current behavior silently drops the DisplayFrame along\nwith its SurfaceFrames. These SurfaceFrames could have been added to\npending jank list which require the present time to be set.\n\nAside from virtual devices, there also seems to be a very rare\noccurrence of invalid signal time in physical devices. The repro rate is\nvery very low but happens around phone locking and unlocking after a\nlarge interval. This could be tied to lifecycle of fences but its better\nwe address invalid signal times to solve this too.\n\nBug: 182006762\nTest: libsurfaceflinger_unittest\nChange-Id: I3a501dd070e86a2cd719a9251c22ab9cba38c16b\n"
    },
    {
      "commit": "115ac691f66f87782de4089254c928f55d70bbc1",
      "tree": "3a6950c5b965b2071546a7fb179c90478547dd0c",
      "parents": [
        "63ec1cfac84b58aecb7f320a5763faf6a893f890"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Sat Mar 06 01:21:30 2021 +0000"
      },
      "committer": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Wed Mar 10 02:44:40 2021 +0000"
      },
      "message": "Call SurfaceFrame::onPresent if DisplayFrame predictions expired\n\nIf the DisplayFrame\u0027s Predictions have expired, that shouldn\u0027t stop the\nSurfaceFrames from being classified. The predictions for SurfaceFrames\nand DisplayFrames are retreived at different points of time. So, if a\npresent fence is signaled, make sure the SurfaceFrame\u0027s onPresent is\ncalled.\n\nBug: 182006762\nTest: libsurfaceflinger_unittest\nChange-Id: I23f3b85f979938a6e4a7e2dcf7341d6ab2222d53\n"
    },
    {
      "commit": "d7482e78de144f17c35ad63f187333df0bff531f",
      "tree": "37b83ed4cefa6944a3b4736e655c9024bcafee7e",
      "parents": [
        "a7836eb3ded16ace0f1fe4a8596184b081daa48b"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 09 13:54:55 2021 -0800"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Mar 09 15:46:00 2021 -0800"
      },
      "message": "Per-window input rotation: Let InputReader use un-rotated coordinates\n\nInputReader works in the rotated coordinate system that is oriented with\nthe display\u0027s orientation obtained through DisplayViewport.\n\nWhen per-window input rotation is enabled, we let InputReader work in\nthe un-rotated coordinate space as if the display\u0027s orientation is\nalways ROTATION_0. Since the input rotation is included in the\nper-window transform, the output from InputReader should not be rotated.\n\nThis requires two changes in InputReader:\n\n1. When setting an orientation to use for an InputDevice, we do the\nopposite of the default behavior: If a device was being rotated before,\nwe don\u0027t rotate it anymore, and vice-versa. We invert the direction of\nthe rotation so that when the coordinates are rotated by the per-window\ntransform, they appear as expected.\n\n2. Since PointerController should still use the rotated coordinates, we\nneed to convert all display coordinates going in/out of\nPointerController.\n\nBug: 179274888\nTest: test touch, mouse, and touchpad input in all four orientations\nusing a test app and the PointerLocationView.\n\nChange-Id: I1eec8ba1d72355564a79cdf1c14c88828124e8a4\n"
    },
    {
      "commit": "a7836eb3ded16ace0f1fe4a8596184b081daa48b",
      "tree": "66228f61c104189c9cb92250ce8e925044eab309",
      "parents": [
        "9798fcd01f98fe57ab0c7553b8bed40eb13f9201",
        "397d02d1ec441f14515e807bd0828ceddbcb1d56"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Mar 09 19:43:15 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 09 19:43:15 2021 +0000"
      },
      "message": "Merge \"Update OWNERS files\" am: 3e408369ff am: 00e0bf8fca am: 397d02d1ec\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1623122\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I2eb7f5e7d3a70bfb6e50034ea18b2a43370ceedf\n"
    },
    {
      "commit": "d3fef469955c015e6f54816bde81eae831c7c048",
      "tree": "edea53db907c5c16f346f3dfbd85b90593faffdd",
      "parents": [
        "7aba05457ddc099639e3636b7dcc80e8e4aa2346"
      ],
      "author": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Sun Mar 07 17:10:08 2021 -0800"
      },
      "committer": {
        "name": "Chris Ye",
        "email": "lzye@google.com",
        "time": "Tue Mar 09 11:01:15 2021 -0800"
      },
      "message": "Add InputDevice stats atom logging\n\nLogging InputDevice information with Android stats atom, when an\nInputDevice is added to inputflinger.\n\nBug: 170321221\nTest: Manual test: m statsd_testdrive, statsd_testdrive id\nChange-Id: I484fd0a487b35c1946ee7db6ff0f70a92168b6bd\n"
    },
    {
      "commit": "b12a8ad6ff4e63523cf81426a60b9bedb421e6e9",
      "tree": "d8c44109e18f3b096856e692e2bfa7b51089e187",
      "parents": [
        "5dc18f28e3630fd66253b17c167b115f052f752f"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Mar 09 07:53:55 2021 +0000"
      },
      "committer": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Tue Mar 09 07:59:44 2021 +0000"
      },
      "message": "Update OWNERS files\n\nlibs/graphicsenv/OWNERS\nopengl/OWNERS\nservices/gpuservice/OWNERS\nservices/surfaceflinger/TimeStats/OWNERS\n\nTest: build\nChange-Id: Ib828a7ce8000c74b61f9ecef4a2f0bdf4ce31c0a\n"
    },
    {
      "commit": "e7f6ee7ea154b4b4d322966bd003386ec181aa65",
      "tree": "0556cedda823065e9685e68b8fc9dd9f810f552a",
      "parents": [
        "561d05c18f127e2e43e93c82a559c537fd25ec52"
      ],
      "author": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Mon Mar 08 15:19:23 2021 +0100"
      },
      "committer": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Tue Mar 09 08:51:15 2021 +0100"
      },
      "message": "Fix bg blur not showing when layer alpha is 0\n\nA layer should be considered visible when the layer has a background\nblur value. The blur is always rendered at full opacity, even if the\nlayer alpha is 0.\nThis CL makes an effect layer visible when the layer has background\nblur.\n\nBug: 167166562\nTest: atest EffectLayerTest#BlurEffectLayerIsVisible\nChange-Id: I8d2a0988b185b1caef4fc458dff7ec4e8976ae16\n"
    },
    {
      "commit": "561d05c18f127e2e43e93c82a559c537fd25ec52",
      "tree": "845a377286abc006914befdd8c9cca0f58fc0531",
      "parents": [
        "44b26bda8ddfd868d4a89ddb943cb636d7ebba70"
      ],
      "author": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Mon Mar 08 15:14:05 2021 +0100"
      },
      "committer": {
        "name": "Galia Peycheva",
        "email": "galinap@google.com",
        "time": "Tue Mar 09 08:48:28 2021 +0100"
      },
      "message": "Fix blur sampling outside bounds of layer\n\nThe image that the blur shader uses is the screenshot of the whole\nscreen, translated to the start of the blurRect. However, nothing stops\nthe shader from sampling outside of the right/bottom edges of the\nblurRect. As a result, the blurring takes samples from outside of the\nlayer bounds.\n\nThis CL restricts the blur shader to sample the blurRect edge color when\nit tries to sample outside the blurRect.\n\nBug: 167166562\nTest: atest SurfaceFlinger_test -- --test-arg\ncom.android.tradefed.testtype.GTest:native-test-flag:\"--gtest_filter\u003dLayer*Tests/Layer*Test.SetBackgroundBlurRadiusSimple*\"\n\nChange-Id: I5f8f7c4a87cbcd3b0cb080720e554119d8d07f69\n"
    },
    {
      "commit": "11e34081ef8227755c655c53953f7e2aad0bb090",
      "tree": "96e6add30f8f13bf7e8b94fd30554f9dbdcbf814",
      "parents": [
        "cf69b996705e8cf02fe0880ce4f0ebf562fc2cff",
        "b04b9b8a04851db813e913fc2e3db3b91e1fe196"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Tue Mar 09 04:35:46 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 04:35:46 2021 +0000"
      },
      "message": "Merge \"Add support for a hw_timeout_multiplier system property.\" into sc-dev"
    },
    {
      "commit": "cf69b996705e8cf02fe0880ce4f0ebf562fc2cff",
      "tree": "b6f401e47b8eda97028921a996f4a0eea24e5129",
      "parents": [
        "9e49451732117c5a9fde142b4cb571f50eb79662",
        "29d16cb549098b01d88b09457a97c48f9028c56a"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Mar 09 02:11:05 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 09 02:11:05 2021 +0000"
      },
      "message": "Merge changes Ie6cff82f,I0f95f2a3 into sc-dev\n\n* changes:\n  SurfaceFlinger: check transaction timings even if it doesn\u0027t have a buffer\n  SurfaceFlinger: get nextPredictedPresentTime directly from frame timeline\n"
    },
    {
      "commit": "ba9a6ce97aead81c2bddd7bd4b79e8205fbd39a1",
      "tree": "7d025e2b7de94a45be988f5fb54f2b5a19fbbc22",
      "parents": [
        "9e49451732117c5a9fde142b4cb571f50eb79662"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Feb 26 02:55:29 2021 +0000"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Mon Mar 08 22:16:06 2021 +0000"
      },
      "message": "Add support for querying resonant frequency and Q factor.\n\nBug: 181276733\nTest: atest libvibratorservice_test\nChange-Id: I7bebc96ddc09fe13716ce8ea51cbf99cf4054955\n"
    },
    {
      "commit": "29d16cb549098b01d88b09457a97c48f9028c56a",
      "tree": "cc723c49d0979e33a4c648118bc6348feff28983",
      "parents": [
        "43752eba5a28f2b923cded40b3d6e6d1db968a08"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 08 13:19:21 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 08 13:20:04 2021 -0800"
      },
      "message": "SurfaceFlinger: check transaction timings even if it doesn\u0027t have a buffer\n\nBufferless transactions should also not be applied if they are considered\nearly.\n\nBug: 181978893\nTest: launch an app and observe systraces\nTest: adb shell /data/nativetest64/SurfaceFlinger_test/SurfaceFlinger_test\nChange-Id: Ie6cff82f8316c1a299d4c9f151eaf637cb60e154\n"
    },
    {
      "commit": "43752eba5a28f2b923cded40b3d6e6d1db968a08",
      "tree": "4f414bd159073a34b5c49109e568e96380dbb947",
      "parents": [
        "a170ec6a87f2720eb9846ea75cd9807db54b12ad"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Thu Mar 04 16:24:25 2021 -0800"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Mar 08 13:18:56 2021 -0800"
      },
      "message": "SurfaceFlinger: get nextPredictedPresentTime directly from frame timeline\n\nag/13715677 moved the call to check whether a frame is early or not\nbefore a transaction is applied.\nThis created a bug in BufferStateLayer::nextPredictedPresentTime since\nit is checking the drawing state surface frame, which is not valid since\nthe transaction is not applied yet. This CL is fixing this by pasing the\nvsync id itself, and getting the expected present time base on that\nvsync id.\n\nChange-Id: I0f95f2a3a2efff921964a6fb5f9b50e0fcc65a85\nTest: launch an app and observe systraces\nBug: 181978893\n"
    },
    {
      "commit": "8cf8f461389aea19a5671b4e9e0f8f495e0ead6e",
      "tree": "ecd14c8e71b7a7ae6981c39459f1bae6a5a145d8",
      "parents": [
        "0e06c39c49d16a4393db8bd8b3fc9719648ffdff",
        "d17c7da60c76150cff134bd1920499bfbfbd6ba3"
      ],
      "author": {
        "name": "Adithya Srinivasan",
        "email": "adsrini@google.com",
        "time": "Mon Mar 08 18:10:35 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 18:10:35 2021 +0000"
      },
      "message": "Merge \"Fix a memory leak with pending jank classifications\" into sc-dev"
    },
    {
      "commit": "335c73a433ab3e7e158204d09a6f1f5f6a2ff1dc",
      "tree": "33d8328ead20fb08e657c39b850d72e272417376",
      "parents": [
        "7aba05457ddc099639e3636b7dcc80e8e4aa2346",
        "a9a68a69e441823524c8766f529a3a54328dad53"
      ],
      "author": {
        "name": "Yiwei Zhang",
        "email": "zzyiwei@google.com",
        "time": "Sun Mar 07 03:44:20 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Mar 07 03:44:20 2021 +0000"
      },
      "message": "Merge \"Support task ID for fps listener rather than SurfaceControl.\" into sc-dev"
    },
    {
      "commit": "a9a68a69e441823524c8766f529a3a54328dad53",
      "tree": "00adf36934f0b508a60f2d740f2ebace38c2de6f",
      "parents": [
        "a170ec6a87f2720eb9846ea75cd9807db54b12ad"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Mar 04 19:14:50 2021 -0800"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Mar 05 19:10:57 2021 -0800"
      },
      "message": "Support task ID for fps listener rather than SurfaceControl.\n\nBug: 174956756\nTest: e2e test with dashboard cls\nChange-Id: I841af53ac820a91d270a75c5cc0ca258df0a3945\n"
    },
    {
      "commit": "e804a5486a9b9cd2e259ebcd6c6118222a88e1f6",
      "tree": "595241b9c84802ca8c3aeffa30d435d64b210ca6",
      "parents": [
        "1703644b5a61ae6dfd1f99476d6e26a5cf11d215",
        "eca9d75c3de367645931e621d13f1b8d13d46569"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Sat Mar 06 01:07:45 2021 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 06 01:07:45 2021 +0000"
      },
      "message": "Merge \"Fix memory leaks in libcompositionengine_test\" into sc-dev"
    }
  ],
  "next": "1703644b5a61ae6dfd1f99476d6e26a5cf11d215"
}
