)]}'
{
  "log": [
    {
      "commit": "0f0d7b0309822efaa83f16a5a9fc7a070f94a3b5",
      "tree": "55b24cf8b60485dd89041009d0c70757eb997e29",
      "parents": [
        "5796a17668e65625bd364ff917ecc52dcf1a5a75",
        "6ba61eb54c70218394de22913baa55d610fb97a4"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed May 17 21:29:46 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 17 21:29:46 2023 +0000"
      },
      "message": "Merge \"[sf] Add readme for surfaceflinger frontend\" into udc-dev"
    },
    {
      "commit": "6ba61eb54c70218394de22913baa55d610fb97a4",
      "tree": "a38083441c3140e64ebe099614bbe5f286748d7e",
      "parents": [
        "50fe0d960d1df5d6d99e6808d0cb941f2bc7f772"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue May 16 17:07:02 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed May 17 19:41:10 2023 +0000"
      },
      "message": "[sf] Add readme for surfaceflinger frontend\n\nTest: presubmit\nBug: 280751178, 238781169\nChange-Id: I6511548a431b715acd598b009208c59ee65b1e3f\n"
    },
    {
      "commit": "12baa2e688e7a2cb8fbb3480220d0142815ef7d1",
      "tree": "cdc84600dfb6bc0842c9fa4647609817688df3c3",
      "parents": [
        "f982044859e939e488967562b2d64f00f7ec1504",
        "2964072dd866b76fe3b42c925271e930cbdb3ca7"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed May 17 18:07:38 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 17 18:07:38 2023 +0000"
      },
      "message": "Merge \"Disable HDR screenshots\" into udc-dev"
    },
    {
      "commit": "2964072dd866b76fe3b42c925271e930cbdb3ca7",
      "tree": "1273bb3d43c916b4e443e42f2147af1c7ace4a4f",
      "parents": [
        "eb7596b865f35d9498e8d1e0f4169018cf423736"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue May 16 23:22:41 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed May 17 00:59:57 2023 +0000"
      },
      "message": "Disable HDR screenshots\n\nBug: 282823628\nChange-Id: I60867302eaf968f6b756e3ec37dd55caddf98a49\nTest: screencap\n"
    },
    {
      "commit": "afb6b50ee815108a6f5f290e1b3753069f3bd9d3",
      "tree": "a5a27a0ae29076b60f9cd6d6387f01cb993d1809",
      "parents": [
        "4530ad4d4d82a89693200345a08c5258bcef0987"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Fri May 12 15:53:05 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Fri May 12 16:01:49 2023 -0700"
      },
      "message": "Populate preferred frame timeline always\n\n`getLatestVsyncEventData` sometimes ends up with 0 length frame\ntimelines. When `generateFrameTimeline`, always populate with the\npreferred timeline information from the vsync schedule.\n\nBug: 282110947\nTest: atest EventThreadTest\nTest: atest DisplayEventReceiverTest\nChange-Id: I936d3b7095ce89ce3bd898f6b6a4f73145c27160\n"
    },
    {
      "commit": "4530ad4d4d82a89693200345a08c5258bcef0987",
      "tree": "088487b81a1a1f9d561d77c20fd67bde9edab8aa",
      "parents": [
        "addae5a203b9390cc3d31e6a4e35f690dd3b0ea8",
        "802ac4f6e84a830077963db7299ae9184b56e12e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri May 12 16:52:03 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 12 16:52:03 2023 +0000"
      },
      "message": "Merge \"[sf] avoid traversals for cursor updates and buffer udpates\" into udc-dev"
    },
    {
      "commit": "addae5a203b9390cc3d31e6a4e35f690dd3b0ea8",
      "tree": "e24c02f60c9465f30e35c4f3e4a938c947ca138b",
      "parents": [
        "687f69993f6264a588a4e7f19c3ec5ce432eb0c2",
        "23780be14df464f815d3fab7466d216cfbb2eae3"
      ],
      "author": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Fri May 12 15:46:17 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 12 15:46:17 2023 +0000"
      },
      "message": "Merge \"Track transaction merges through transaction trace\" into udc-dev"
    },
    {
      "commit": "f8710d14e8f5ab08fdcf0d6d0c5e06ee2536e7ed",
      "tree": "4e0f92bde6bd3eafbbb8cdf911758e07f7d45c08",
      "parents": [
        "3fefafa906217460125ac30f2c60cbc7b93cb082",
        "9550c0945ee72bdda05972f70255e7a6b5c46c29"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu May 11 21:01:03 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 21:01:03 2023 +0000"
      },
      "message": "Merge \"Move rotation flags to SF\" into udc-dev"
    },
    {
      "commit": "12cda385cfc6650da2b65455e4ce75fea5fe5871",
      "tree": "b229c1590424024b17b9f25e99ae8ce2b49ad8f7",
      "parents": [
        "a04c0f68ee7623c59f1900b40fa9b464dbfd061a",
        "3be61905f09f265de9732eed00985e324540e5b8"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu May 11 15:46:37 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 11 15:46:37 2023 +0000"
      },
      "message": "Merge \"[sf] Properly update clones of clones\" into udc-dev"
    },
    {
      "commit": "23780be14df464f815d3fab7466d216cfbb2eae3",
      "tree": "5478755eeb74e02a2c42dc080abd3a569d452ec4",
      "parents": [
        "50fe0d960d1df5d6d99e6808d0cb941f2bc7f772"
      ],
      "author": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Tue Apr 18 08:30:00 2023 +0000"
      },
      "committer": {
        "name": "Pablo Gamito",
        "email": "pablogamito@google.com",
        "time": "Thu May 11 14:43:24 2023 +0000"
      },
      "message": "Track transaction merges through transaction trace\n\nBug: 233371599\nBug: 278663063\nTest: dump a transaction trace and ensure transactions have the list of merged transaction ids in the proto\nChange-Id: I3edf8f1443a2573ef2086f221ceeef57172ecdbe\n"
    },
    {
      "commit": "9550c0945ee72bdda05972f70255e7a6b5c46c29",
      "tree": "7dd223ed7e5f7bd2e6cf0dee5657207672e81254",
      "parents": [
        "b270da4ef27dbaa03e6f9557fbe32c9c71781800"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Tue May 09 13:58:18 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu May 11 10:14:02 2023 -0400"
      },
      "message": "Move rotation flags to SF\n\nThe rotation flags are typically only used for a camera preview, which\nwants to avoid changing its orientation and flicker during rotation.\nPrior to this CL, the rotation flags were tied to the primary display,\nmeaning that if the camera preview was on another display, the rotation\nflags may not be up to date. For example, if the primary display is off,\nits flags will not be updated on rotation.\n\nIdeally, the flags should be based on the display where the preview will\nbe shown, but this is a much larger architectural change, tracked in\nb/259407931.\n\nAs a temporary workaround, associate the flags with the active display.\nStore the flags in SurfaceFlinger, which knows when the active display\nchanges. Update when the active display switches to a different display\nor when the active display rotates, matching the behavior of\nmActiveDisplayTransformHint, which seems similar but is different. Store\nthe flags as a static variable so that LayerFE can access it. LayerFE\ndoes not have a way to access the actual SurfaceFlinger object, and it\nshould not.\n\nAccess to the new flags is safe because it is only read or written from\nthe main thread.\n\nBug: 269685949\nBug: 259407931\nTest: ActiveDisplayRotationFlagsTest\nChange-Id: I5532e140a603be222cb3ea1ae563638317c1d745\nMerged-In: I5532e140a603be222cb3ea1ae563638317c1d745\n"
    },
    {
      "commit": "802ac4f6e84a830077963db7299ae9184b56e12e",
      "tree": "bd10deaf35cb7c425004f652f86748a706fde77d",
      "parents": [
        "50fe0d960d1df5d6d99e6808d0cb941f2bc7f772"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed May 10 13:55:22 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed May 10 20:25:48 2023 -0700"
      },
      "message": "[sf] avoid traversals for cursor updates and buffer udpates\n\nIn U, we have a unified way to traverse the layer\nhierarchy from both new FrontEnd and legacy logic\nto generate the snapshots to provide to CE.\nWe update CE twice, once to draw the cursor and once\nfor the remaining layers. In T we relied on the previous\nframe\u0027s composition state to update cursor state. This\nextra traversal increases the cpu usage for buffer updates.\n\nFix this by keeping track of the previous composition state\nand expand on this to avoid all traversals when there are\nonly buffer updates.\n\nBug: 278634536\nTest: simple perf and check the instruction count between T and U\n\nChange-Id: I26989bf42aa00650ee97c3c60e7f34171c385c5c\n"
    },
    {
      "commit": "8b0d097a741b2c47dcd445e1af63a2e49ec37994",
      "tree": "c75aad1170c584e1c8d48edd6a4cdbca323f322d",
      "parents": [
        "b270da4ef27dbaa03e6f9557fbe32c9c71781800",
        "552691605bc21fd94b5ae739c4b0bd32164ca4ea"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed May 10 17:46:44 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 10 17:46:44 2023 +0000"
      },
      "message": "Merge \"SF: use TextureView hint when selecting the refresh rate\" into udc-dev"
    },
    {
      "commit": "b270da4ef27dbaa03e6f9557fbe32c9c71781800",
      "tree": "848238deae55beb714a6f8a3c2dd2df6439a1942",
      "parents": [
        "50fe0d960d1df5d6d99e6808d0cb941f2bc7f772",
        "cf0bb43409962a0184f2e79bac547dd11f07abab"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed May 10 16:47:36 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 10 16:47:36 2023 +0000"
      },
      "message": "Merge \"SF: Tie main thread priority to active display\" into udc-dev"
    },
    {
      "commit": "3be61905f09f265de9732eed00985e324540e5b8",
      "tree": "4ec930ea95a756975f7df1b6e25260d53cc01e37",
      "parents": [
        "50fe0d960d1df5d6d99e6808d0cb941f2bc7f772"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 26 19:47:29 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed May 10 09:24:08 2023 -0700"
      },
      "message": "[sf] Properly update clones of clones\n\nRelanding with the change to only update onscreen mirror\nroots and cleaning up some debug logs.\n\nWhen updating a cloned layer hierarchy that contains\nanother cloned layer hierarchy, we are dependent on\nthe order in which we update each hierarchy.\nThe inner cloned hierarchy must be updated first\notherwise the outer clone will not capture the entire\ntree and some layers might be omitted from\ncomposition.\nTo fix this we track all layer mirror roots. When updating\neach root, we check to see if they mirror another root. If\nthey do mirror another root and that root has not been updated,\nwe update the root again at the end.\n\nTest: repro steps in bug\nFixes: 279622227\nChange-Id: I125f7c788716d59909b77a88ef4098b7cac08919\n"
    },
    {
      "commit": "552691605bc21fd94b5ae739c4b0bd32164ca4ea",
      "tree": "9fbe81be795662e39d68527f7e6808792ed859ca",
      "parents": [
        "15ed5da8eadde5be0c3d7833dec3812daa73969d"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue May 09 11:26:06 2023 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue May 09 16:42:59 2023 -0700"
      },
      "message": "SF: use TextureView hint when selecting the refresh rate\n\nSF would only try to heuristically calculate the frame rate of a layer\nwhen TextureView is updating. This fixes a bug where SF tries to\nheuristically calculate the frame rate for UI animations but fails\ndue to long frames.\n\nBug: 280249265\nTest: Playing a video on Facebook and observe refresh rate\nTest: go/cb-pcmark\nChange-Id: Ic98484b8313f1e8e6ad01297b63bb64da6d4a6dd\n"
    },
    {
      "commit": "eb7596b865f35d9498e8d1e0f4169018cf423736",
      "tree": "f5c54eed9b34d565b8db422498ac69edcc96a0d5",
      "parents": [
        "bd65cc20d9de72531643c48c243d6ba18c837baa",
        "c78f53cd0e9ce68cc52a851584b6ce5b34baef7d"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Tue May 09 17:36:34 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 09 17:36:34 2023 +0000"
      },
      "message": "Merge \"Cleaned up transaction sanitize calls\" into udc-dev"
    },
    {
      "commit": "cf0bb43409962a0184f2e79bac547dd11f07abab",
      "tree": "1bf8444ff5566df3d547e99e6255f131214d8089",
      "parents": [
        "9560a12c9524c6929fbfb8986ca779d4de282ddb"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue May 09 11:49:16 2023 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue May 09 13:06:37 2023 -0400"
      },
      "message": "SF: Tie main thread priority to active display\n\nOtherwise, the powering off of the outer display when exiting concurrent\nmode causes SF to drop real-time priority until the next powering on of\neither display.\n\nFixes: 271431077\nTest: Logs during boot, power on/off, fold/unfold, concurrent mode.\nChange-Id: I4f1590d7abf82977c1acd162605f578624bc9faa\n"
    },
    {
      "commit": "c78f53cd0e9ce68cc52a851584b6ce5b34baef7d",
      "tree": "d2712bcb15c44121d03e6c659ad321b676767f99",
      "parents": [
        "b1e4e9fba5b211ffc9abc62cd80570e81ec2a73a"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Apr 14 18:50:53 2023 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Mon May 08 21:38:26 2023 +0000"
      },
      "message": "Cleaned up transaction sanitize calls\n\nExposed a way for a client to invoke sanitize with a uid and pid to\nensure we don\u0027t remove states when the process that added it was\nprivileged.\n\nAdded a helper function to get the permission ints based on the String\npermission values so SF and clients can call the same API.\n\nIn SF, call sanitize as soon as setTransactionState is called since\nthat\u0027s the point where the Transaction has been passed over binder so we\ncan identify the calling uid. This allows us to remove the permission\nvalues passed to applyTransactionState and unifies the places that were\ncalling sanitize.\n\nTest: CredentialsTest\nBug: 267794530\nChange-Id: I30c1800f0fee43df1cee82464139db7b56a7d911\n"
    },
    {
      "commit": "58df7b9ca502276d8d39915f903076970b8c03e9",
      "tree": "d800569fcf4976a661afe3a6f71de1e21f5428b1",
      "parents": [
        "87a5f94c7d10a0e991119fb4998ce411cffc1f6c",
        "6e701afa3013c7a0a606d0847b113386c0515dad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 05 23:57:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 05 23:57:08 2023 +0000"
      },
      "message": "Merge \"Revert \"[sf] Properly update clones of clones\"\" into udc-dev"
    },
    {
      "commit": "b271771b1b71e46102eade898b2fcf8104d2e2b8",
      "tree": "e6f26ccef7f8609cf8d086b378ad2fcec77ecea0",
      "parents": [
        "9da41a1f0d4f933d113e02b8f5ac94fb082db0c9",
        "d828f302cbf75fe838f6c96a6b9938dda4ea22a5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 05 16:19:46 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 05 16:19:46 2023 +0000"
      },
      "message": "Merge \"Add Window Infos state to dumpsys\" into udc-dev"
    },
    {
      "commit": "6e701afa3013c7a0a606d0847b113386c0515dad",
      "tree": "cc8371804d0095e1c0c5ad316cd75e3574e1bc0e",
      "parents": [
        "0cec3ed248d1f0b82e3d86270a018ed7e7f8b620"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu May 04 17:27:48 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 04 17:27:48 2023 +0000"
      },
      "message": "Revert \"[sf] Properly update clones of clones\"\n\nThis reverts commit 0cec3ed248d1f0b82e3d86270a018ed7e7f8b620.\n\nReason for revert: testing to see if this is related to layer leaks seen here: b/280503684\n\nChange-Id: I0ba48a412bbb771b70570a5f34e5c1a11d0ee28d\n"
    },
    {
      "commit": "d8e3b12b4da1dd21b2228e875ed274f5aafbebb9",
      "tree": "c60a48a27bd4c2afb3db0987dcbe76be9e520a05",
      "parents": [
        "b49fc5d583976c367afb2571b8c0ddb65c062bd1",
        "792b150a708a61faedaaa5983fbc5c5185984f50"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu May 04 02:07:31 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 04 02:07:31 2023 +0000"
      },
      "message": "Merge \"Don\u0027t overdim SDR content in an HLG screenshot.\" into udc-dev"
    },
    {
      "commit": "e4eb27420708a16522816075ad59a303663cb9ae",
      "tree": "124f026c0fed94d76d6dbc4707ca32a5d999f7bd",
      "parents": [
        "0c98ab16f00c0fe3e5e2e6478faf87d6586a566f",
        "40aef42d44e1f0465b8dc17e3ecd8a1aee074236"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Wed May 03 21:22:20 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 03 21:22:20 2023 +0000"
      },
      "message": "Merge changes from topics \"b270612751\", \"kFrameTimelinesCapacity\" into udc-dev\n\n* changes:\n  Rename const to kFrameTimelinesCapacity\n  Fix Choreographer affecting ASurfaceControlTest\n"
    },
    {
      "commit": "d828f302cbf75fe838f6c96a6b9938dda4ea22a5",
      "tree": "8ab0df6d032be11adba9043669f7b9b5bb5075d8",
      "parents": [
        "ee324d5fe81414b3971ae9579878a70afa8f5c7f"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Apr 28 17:52:08 2023 -0500"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Wed May 03 14:39:17 2023 -0500"
      },
      "message": "Add Window Infos state to dumpsys\n\nUpdate SurfaceFlinger and InputDispatcher dumpsys output to include\nthe vsync id and timestamp of Window Infos changes.\n\nBug: 279792237\nTest: presubmits\nChange-Id: I17fba2d09972467cfdd452e5041666ffbeabddc9\n"
    },
    {
      "commit": "40aef42d44e1f0465b8dc17e3ecd8a1aee074236",
      "tree": "7ee37a69e9cf798dd8a4a346ca00890c3c5ff69e",
      "parents": [
        "0655a9157bc7ab4771202d2d4e206f91d5352481"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Tue Apr 25 14:35:47 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Tue May 02 16:27:18 2023 -0700"
      },
      "message": "Rename const to kFrameTimelinesCapacity\n\nFrom `kFrameTimelinesLength`.\n\nBug: 270612751\nTest: build\nChange-Id: I83e61a19254ab4a63479a2004124cfd2c082da35\n"
    },
    {
      "commit": "0655a9157bc7ab4771202d2d4e206f91d5352481",
      "tree": "b20c2be6295d30b8fa9f20fafa1f8b675a5f383c",
      "parents": [
        "a8827e9c7abb0923f9b7a1de381545ddd2396bc4"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Thu Apr 20 19:54:18 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Tue May 02 15:54:31 2023 -0700"
      },
      "message": "Fix Choreographer affecting ASurfaceControlTest\n\nFixes `testSurfaceTransaction_setFrameTimeline_notPreferredIndex` case\non devices that do not have high refresh rates (e.g. max 60Hz). This\noccurred because the transaction-ready logic in SF does not consider\ntransactions to be too early if the expected presentation time is over\n100ms in the future, so the frame would just be deemed ready and\npresented asap. Thus, no longer provide frame timelines that are far\ninto the future, which are not useful as well.\n\nTest: atest ASurfaceControlTest\nTest: atest ChoreographerTest\nTest: atest ChoreographerNativeTest\nTest: atest DisplayEventStructLayoutTest\nTest: atest ParcelableVsyncEventData\nTest: atest libsurfacefligner_unittest\nFixes: 270612751\nChange-Id: Ic05717bc153a9b07409b8d7912a1c40e1e31a57e\n"
    },
    {
      "commit": "a953a920c2166666916e8c0efb4608c75015a30e",
      "tree": "96a7d16b02929d7510490e5464c4612b2aaf906f",
      "parents": [
        "351604ddc222cc332ae6fe7ba49a10ad1f652ba9",
        "e4af0956e0a5a0080f21e276f4fccadf95d5fe40"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue May 02 16:17:48 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 02 16:17:48 2023 +0000"
      },
      "message": "Merge \"[sf] Fix layer ids for background color layers\" into udc-dev"
    },
    {
      "commit": "351604ddc222cc332ae6fe7ba49a10ad1f652ba9",
      "tree": "4510b42297a0722eedd9d192f5edc3747986e6b4",
      "parents": [
        "1ca597f40999aef9e5528c2e4db4ffff7afc4e4c",
        "0cec3ed248d1f0b82e3d86270a018ed7e7f8b620"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue May 02 15:44:48 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 02 15:44:48 2023 +0000"
      },
      "message": "Merge \"[sf] Properly update clones of clones\" into udc-dev"
    },
    {
      "commit": "1ca597f40999aef9e5528c2e4db4ffff7afc4e4c",
      "tree": "780f928685991f5c91c6ce5fe98d3aed6590fa78",
      "parents": [
        "0f6d31dda21c8085712c7428a0926d3ed0a53532",
        "f10a87bddbe89067002dac8384311e191bb9d5f4"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue May 02 01:40:46 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 02 01:40:46 2023 +0000"
      },
      "message": "Merge \"[sf] Fix crash caused by invalid access of mPreviouslyPresentedLayerStacks\" into udc-dev"
    },
    {
      "commit": "0f6d31dda21c8085712c7428a0926d3ed0a53532",
      "tree": "b517662eed1e30c90104149e1d4f9779931a0d04",
      "parents": [
        "52ff89f0089512ccda7508d8521ed95277f4924c",
        "de17725511baa95ea11f1cd7c76377c1970286eb"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue May 02 01:39:13 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 02 01:39:13 2023 +0000"
      },
      "message": "Merge \"[sf] populate snashot path for legacy frontend\" into udc-dev"
    },
    {
      "commit": "52ff89f0089512ccda7508d8521ed95277f4924c",
      "tree": "31e011e0ba61834f163d7de1a58ff0117e9f7a7c",
      "parents": [
        "85bffd5370e97ef8a3fd7d029676d214ba8b71a8",
        "4235ea0f6bc1bd27f7fc5eafa10aed3a84feaafb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 02 00:37:52 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 02 00:37:52 2023 +0000"
      },
      "message": "Merge \"Loosen requirement that getVsyncSchedule returns an object\" into udc-dev"
    },
    {
      "commit": "792b150a708a61faedaaa5983fbc5c5185984f50",
      "tree": "d45dba99bbb180dd1ceae9da7c336859249fe7cc",
      "parents": [
        "8a186104276cdf57d552c54dbad488e14f0d3d16"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue May 02 00:03:08 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue May 02 00:08:26 2023 +0000"
      },
      "message": "Don\u0027t overdim SDR content in an HLG screenshot.\n\nAligning HLG and PQ to 1.0 \u003d\u003d 203 nits made SDR assets in screenshots\ntoo dim, since both the colorspace and the color transform applied\ndimming. Removing dimming application from the color transform is a\nlarger change, so just compensate when configuring the screenshot in\nSurfaceFlinger instead.\n\nBug: 280347733\nTest: HwAccelerationTest\nTest: Navigate in and out of recents\nChange-Id: Idfdb74c0c3b977717b870b2bb9a469be37d27dc9\n"
    },
    {
      "commit": "0cec3ed248d1f0b82e3d86270a018ed7e7f8b620",
      "tree": "16a45ff0e50463b07205c378cc1843f5edcc3459",
      "parents": [
        "8bf29931eabb065027fda7ffa7db294b04772a36"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 26 19:47:29 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon May 01 21:37:34 2023 +0000"
      },
      "message": "[sf] Properly update clones of clones\n\nWhen updating a cloned layer hierarchy that contains\nanother cloned layer hierarchy, we are dependent on\nthe order in which we update each hierarchy.\nThe inner cloned hierarchy must be updated first\notherwise the outer clone will not capture the entire\ntree and some layers might be omitted from\ncomposition.\nTo fix this we track all layer mirror roots. When updating\neach root, we check to see if they mirror another root. If\nthey do mirror another root and that root has not been updated,\nwe update the root again at the end.\n\nTest: repro steps in bug\nFixes: 279622227\nChange-Id: I07e3f2c89d62d44455fda9fe3f8203215c22abf7\n"
    },
    {
      "commit": "f10a87bddbe89067002dac8384311e191bb9d5f4",
      "tree": "1039bfa6f78529d99e80da15f62c7a75e6f3d5f2",
      "parents": [
        "38a3e0b7e2565a583bc4b0733efc21daebd5c31a"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon May 01 14:02:51 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon May 01 14:04:09 2023 -0700"
      },
      "message": "[sf] Fix crash caused by invalid access of mPreviouslyPresentedLayerStacks\n\nWhile trying to update the release fence for layers with buffer\nremoved, we incorrectly accessed and updated the same data struct.\n\nTest: presbumit\nFixes: 279397500\nChange-Id: I2488da1696774669777e94e23301af6ecc2ae581\n"
    },
    {
      "commit": "4235ea0f6bc1bd27f7fc5eafa10aed3a84feaafb",
      "tree": "a6dcabc3c5326de8d2b7daa4b6e9891db10b0489",
      "parents": [
        "8bf29931eabb065027fda7ffa7db294b04772a36"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Apr 17 15:14:20 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon May 01 16:58:38 2023 -0400"
      },
      "message": "Loosen requirement that getVsyncSchedule returns an object\n\nIn some cases, a display may have been removed in between referring to\na display and when we attempt to retrieve its VsyncSchedule. Remove the\nassert that there must be an associated VsyncSchedule, replacing it with\nhandling that is specific to the call site.\n\nAnywhere std::null_opt is passed to getVsyncSchedule (the default),\nleave the call sites unchanged. This will pick the pacesetter, which\nshould have a VsyncSchedule every time the method is called. This should\nalways return a valid VsyncSchedule. Otherwise, the old code would\nLOG_ALWAYS_FATAL, while the new code would have a null pointer\ndereference.\n\nLOG_ALWAYS_FATAL if there is no associated VsyncSchedule in the\nfollowing methods. They are all called on the main thread, when the\nschedule should always be available when requested. This matches the\nold behavior. Where these are not documented as main-thread only, add\nthis annotation, since that\u0027s what makes this safe to assume.\n- enableHardwareVsync\n- disableHardwareVsync\n- setDisplayPowerMode\n- addPresentFence\n\nIn addResyncSample, which is called from a binder thread, the display\nmay have been removed since the callback was initiated. No-op with a\nwarning in this case.\n\nIn getDisplayStats, which also may be called from a binder thread, fall\nback to mActiveDisplayId, just in case it is called in between Scheduler\ndemoting and promoting the pacesetter display. Add a test for this\nmethod.\n\nIn the following methods, log an error and early exit. This may be more\nconservative than necessary.\n- resyncToHardwareVsyncLocked\n- setRenderRate\n\nIn setVsyncEnabled, fail to setPendingHardwareVsyncState silently,\nwhich matches the behavior for the call to setHWCVsyncEnabled.\n\nBug: 266094575\nBug: 277623302\nBug: 267636813\nBug: 278806588\nBug: 275691508\nBug: 275691150\nBug: 277364366\nTest: builds, boots\nTest: SurfaceFlingerGetDisplayStatsTest\nChange-Id: I3541909448745b04252e88f299a4283f37e755e8\n"
    },
    {
      "commit": "e4af0956e0a5a0080f21e276f4fccadf95d5fe40",
      "tree": "c9a4b30c2a9ed46f16af13dbf98ac77ec05725ca",
      "parents": [
        "38a3e0b7e2565a583bc4b0733efc21daebd5c31a"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon May 01 09:11:33 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon May 01 09:27:04 2023 -0700"
      },
      "message": "[sf] Fix layer ids for background color layers\n\nFixes a regression caused by Ie0f93ca956e6d043c9d95d00bc205d242e47c4cc\nwhich created duplicate layer ids.\n\nAlso deflakes corner radius tests by tracking eCornerRadiusChanged state\nchanges correctly.\n\nTest: presubmit w/new fe\nBug: 238781169\n\nChange-Id: I2d5321b5ba77e1074ef039bcd90c78e82c1a0049\n"
    },
    {
      "commit": "0011553e6e60a8403600765b32192ebe228ab94b",
      "tree": "9eceb3e56f02c9f4536c7c2680ecc3f2385b3137",
      "parents": [
        "6b567cad28c9a754d1c3f06179b883c59440043a",
        "3e5965f3184a828a1b7ee2b5bd5d5c2177807a35"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Apr 28 20:01:59 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 28 20:01:59 2023 +0000"
      },
      "message": "Merge \"Support screenshots of HDR content\" into udc-dev"
    },
    {
      "commit": "6b567cad28c9a754d1c3f06179b883c59440043a",
      "tree": "8b705bd7131cab973be0d15880f74168e5efad7e",
      "parents": [
        "38a3e0b7e2565a583bc4b0733efc21daebd5c31a",
        "0773813474604ca4588fbdf476885cb358046dbf"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Apr 28 17:59:40 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 28 17:59:40 2023 +0000"
      },
      "message": "Merge changes from topic \"VSyncDispatch_unregisterCallback\" into udc-dev\n\n* changes:\n  Before deleting callbacks, ensure they aren\u0027t running\n  Fix for potential deadlock in EventThread::onNewVsyncSchedule\n  Make VSyncCallbackRegistration\u0027s move operator\u003d call unregisterCallback\n"
    },
    {
      "commit": "ecd5e42f3d09dda0ac4f62a47ce224af7313dd4d",
      "tree": "8b0436b372f530847dcc2583f19e63176fa82bd7",
      "parents": [
        "636834376126ac2f74348f2fb0ace5e1afd30cdc",
        "a3816abcf2cc2cf284eb85c2b88ba53e60824b7f"
      ],
      "author": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Thu Apr 27 14:48:32 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 27 14:48:32 2023 +0000"
      },
      "message": "Merge \"[SF] Disable caching for RefreshRateOverlay\" into udc-dev"
    },
    {
      "commit": "a3816abcf2cc2cf284eb85c2b88ba53e60824b7f",
      "tree": "2eb15ef198ac89588f4ef09da9a26fae7b1551c2",
      "parents": [
        "e469593af9a8220d82d91cc815e0aee317fef45e"
      ],
      "author": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Tue Apr 25 18:41:16 2023 -0700"
      },
      "committer": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Thu Apr 27 14:47:29 2023 +0000"
      },
      "message": "[SF] Disable caching for RefreshRateOverlay\n\nSetCachingHint to disable the caching of the RefreshRateOverlay\n\nBUG: 277704843\nTest: manual test\nChange-Id: Id144135c4536ef0e3883079ced0ddff078b6467b\n"
    },
    {
      "commit": "0773813474604ca4588fbdf476885cb358046dbf",
      "tree": "a1d42bf021b0ff24eaa2ea0f3cb5935521532bbe",
      "parents": [
        "b2253605afdb7496ed534d6f745359edbdb58cea"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Apr 24 11:43:53 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Apr 27 14:06:25 2023 +0000"
      },
      "message": "Before deleting callbacks, ensure they aren\u0027t running\n\nI3c1eccb36914f29560600d48bb08b1b8f2fe7c96 makes sure that a\nVSyncDispatchTimerQueue unregisters its callback if a new one is moved\ninto it, but it\u0027s possible for the class to be used directly, so there\nis still the possibility of deleting the callbacks while running.\n\nUpdate the destructor to wait for any callbacks to finish before\ndeleting them. Also log an error, since the caller should\u0027ve\nunregistered them.\n\nBug: 279209321\nTest: infeasible\nChange-Id: Ia2c5436944c88284912be4963740be41de5c21d3\n"
    },
    {
      "commit": "b2253605afdb7496ed534d6f745359edbdb58cea",
      "tree": "13a6bc81534825841cce9223b3fec9dd80cfdf24",
      "parents": [
        "6c440aeb79fdadca718d34f6eca754589730afb0"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Apr 19 17:04:04 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Apr 27 10:02:37 2023 -0400"
      },
      "message": "Fix for potential deadlock in EventThread::onNewVsyncSchedule\n\nI haven\u0027t seen such a deadlock, but looking over\nI86e66df59c64e81c4aa721a25250697f61237488 and the potential deadlock\nthat inspired it, I think there could be a similar problem in\nEventThread. As I understand it, this is partially because of the\nfact that EventThread does not unregister the old callback. This is\naddressed in I3c1eccb36914f29560600d48bb08b1b8f2fe7c96.\n\nFix the deadlock with a similar approach as\nI86e66df59c64e81c4aa721a25250697f61237488: hold on to the old\nregistration until after releasing the mutex.\n\nBug: 279209321\nTest: infeasible\nChange-Id: If490f88115aa298d31aa9ad392a1f9f9dc987549\n"
    },
    {
      "commit": "6c440aeb79fdadca718d34f6eca754589730afb0",
      "tree": "ab63fc02deada9a2ac1769376ae15847bb089f39",
      "parents": [
        "8bf29931eabb065027fda7ffa7db294b04772a36"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Apr 21 15:01:03 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Apr 27 09:37:04 2023 -0400"
      },
      "message": "Make VSyncCallbackRegistration\u0027s move operator\u003d call unregisterCallback\n\nSkipping unregisterCallback means that we might delete a callback while\nit is being called. Note that EventThread uses the move operator\u003d, and\nthis behaves differently than if it were stored in a unique_ptr like in\nMessageQueue. Update move operator\u003d so that they do behave the same, and\nadd tests verifying this, along with a couple other behavior tests.\n\nNote that this may result in deadlocks similar to those in b/276367387.\nThat is fixed by If490f88115aa298d31aa9ad392a1f9f9dc987549.\n\nCleanups:\n- Remove comment for VsyncCallbackRegistration regarding the lifetime\nrequirement for the VSyncDispatch.\nIcdb80253436b4d0034fc20fcae8583efb7c30292 switched the VSyncDispatch\nto an std::shared_ptr from a reference, so the client no longer needs\nto ensure that the VSyncDispatch outlives the VsyncCallbackRegistration.\n- Replace mValidToken with using an std::optional for the token.\n\nBug: 279209321\nTest: VSyncCallbackRegistrationTest\nChange-Id: I3c1eccb36914f29560600d48bb08b1b8f2fe7c96\n"
    },
    {
      "commit": "de41be24e8f354b2c5ef1c83ef06e3f2057abb17",
      "tree": "cf6650d0a8fc408b5fe69cee832548574e90ec2e",
      "parents": [
        "af744398e4023be5ebebd1f79085a2a190185307",
        "5ed11df4d12f9b8256dabbef9f4c7e77021e1c4c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Apr 26 03:09:29 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 26 03:09:29 2023 +0000"
      },
      "message": "Merge \"[sf] run transaction trace tests with hwasan\" into udc-dev"
    },
    {
      "commit": "af744398e4023be5ebebd1f79085a2a190185307",
      "tree": "15b2987e3e6c2dcd6db3da013923f056b2cf7d3d",
      "parents": [
        "8aedbf30dd4123c3050a040ce1c1b6e9d07b96ec",
        "22f2ead8e2aa52fb3a41aa540367e3df9c84177e"
      ],
      "author": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Tue Apr 25 23:27:28 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 25 23:27:28 2023 +0000"
      },
      "message": "Merge \"[SF] Refresh rate selection based on the pacesetter display\" into udc-dev"
    },
    {
      "commit": "5ed11df4d12f9b8256dabbef9f4c7e77021e1c4c",
      "tree": "e9c26266c1be1b51d62e040fca2b11b51df84260",
      "parents": [
        "8bf29931eabb065027fda7ffa7db294b04772a36"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 25 15:44:57 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 25 15:44:57 2023 -0700"
      },
      "message": "[sf] run transaction trace tests with hwasan\n\nTest: presubmit\nFixes: 272810305\nChange-Id: Idf934df00a218cacee9d743a158e35a378bcfec3\n"
    },
    {
      "commit": "3e5965f3184a828a1b7ee2b5bd5d5c2177807a35",
      "tree": "9e437e8f7ab0350753552acbf457c005a25e6e31",
      "parents": [
        "8aedbf30dd4123c3050a040ce1c1b6e9d07b96ec"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Apr 07 18:00:58 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Apr 25 22:28:10 2023 +0000"
      },
      "message": "Support screenshots of HDR content\n\nPreviously screenshots always rendered to either an SDR or a wide gamut\ncolorspace. For screenshotting HDR content, this is only appropriate\nwhen the resulting screenshot (a) never leaves the device and (b) the\nrelevant code has workarounds for the display to appropriately handle\nits luminance range.\n\nHDR screenshots will now have two paths:\n* A standard path for rendering to HLG. HLG was chosen because the OOTF\n  shape is less hand-wavey than PQ\u0027s, does not require metadata, and\n  bands less at 8-bits of color.\n* A special path for \"display-native\" screenshots. This is for\n  use-cases like screen rotation where there are stricter color accuracy\n  requirements for round-tripping.\n\nSkia already encodes the resulting screenshot by supplying an HLG CICP\nalongside a backwards-compatible transfer function, so it\u0027s only\nsufficient to change how SurfaceFlinger renders.\n\nBug: 242324609\nBug: 276812775\nTest: screencap binary\nTest: rotation animation\nTest: swiping in Recents\nChange-Id: Ic9edb92391d3beb38d076fba8f15e3fdcc2b8f50\n"
    },
    {
      "commit": "22f2ead8e2aa52fb3a41aa540367e3df9c84177e",
      "tree": "bfa6041ffacf8c1d4a13d080c2e3c312ce959820",
      "parents": [
        "e469593af9a8220d82d91cc815e0aee317fef45e"
      ],
      "author": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Fri Apr 21 10:27:11 2023 -0700"
      },
      "committer": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Tue Apr 25 11:40:25 2023 -0700"
      },
      "message": "[SF] Refresh rate selection based on the pacesetter display\n\nPacesetter display makes the refresh rate selection.\nOther displays follow the refresh rate of the pacesetter.\nWhen no matching rate is found with the pacesetter,\nthe display selects the best scored refresh rate.\n\nBUG: 270742628\nTest: atest SchedulerTest and manual test\nChange-Id: I4fded96c83089f7bdc6390eb882ca9d16121ceed\n"
    },
    {
      "commit": "3144ff60f4fbc0d1d53c51fb9507e5c569272527",
      "tree": "c846bbc8c1e99196018142593b603c1287c44c31",
      "parents": [
        "2d460513109f602d78f02e04b9f26ff747e87cba",
        "d86bd8c1d00fa1d91086399b8f6a360b95bd9218"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Apr 24 19:21:34 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 24 19:21:34 2023 +0000"
      },
      "message": "Merge \"Use WindowInfo to calculate visible windows\" into udc-dev"
    },
    {
      "commit": "ec9e189089e3bc9acf2ce8b690a0cdb7625bc018",
      "tree": "41771713c9dfb1eb8f8b52b1e5b5af53420387c3",
      "parents": [
        "f447b2ccee5e5a9db42b8626fdb9e7e2198ecdf0",
        "5123e684dc464d7de28599333c6678e7884d7ac8"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Mon Apr 24 16:58:16 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 24 16:58:16 2023 +0000"
      },
      "message": "Merge changes Ib114ffc1,Ib40794cc into udc-dev\n\n* changes:\n  SF: Fix two queries for the past VSYNC\u0027s fence\n  SF: Extract SurfaceFlinger::wouldPresentEarly\n"
    },
    {
      "commit": "e7382c1cde2a381aad705f46943849b2d6cf8ba9",
      "tree": "f263e880d5cc0310ddef8d72720a82cffb5d78c9",
      "parents": [
        "e469593af9a8220d82d91cc815e0aee317fef45e"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Apr 21 20:24:32 2023 +0000"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Sat Apr 22 04:10:44 2023 +0000"
      },
      "message": "Reset pending commands\n\nAllow takePendingCommands to have ownership for mComamnds so commands\nare reset on each call. resetCommands methods are removed since they\nare not really used.\n\nBug: 273525126\nTest: manual\nChange-Id: If91cf6253b0d8f0d8c5d761f7cf257d090fcaf6f\n"
    },
    {
      "commit": "de17725511baa95ea11f1cd7c76377c1970286eb",
      "tree": "5b8b90f6171da105edd89e911bc5b0ef57af667b",
      "parents": [
        "22be349cc5298a7f88af478f6ff673778563730d"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Apr 21 12:44:10 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Apr 21 12:44:10 2023 -0700"
      },
      "message": "[sf] populate snashot path for legacy frontend\n\nProvide a consistent way for middleend/backend to identify\nmirrored or cloned layers.\n\nTest: presubmit\nBug: 258231640\nChange-Id: Id7cbadf1e581b9420859ddff024e9ce101b28e95\n"
    },
    {
      "commit": "d86bd8c1d00fa1d91086399b8f6a360b95bd9218",
      "tree": "8df1fc2348daebe3672dccca727ca76f4d3c527a",
      "parents": [
        "e469593af9a8220d82d91cc815e0aee317fef45e"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Apr 21 11:54:11 2023 -0500"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Apr 21 13:33:13 2023 -0500"
      },
      "message": "Use WindowInfo to calculate visible windows\n\nBug: 278476799\nTest: LongClickInternetMicrobenchmark on Redfin\nChange-Id: Ifb14c66e59c0b01346a3e151e7ee83993f5532d8\n"
    },
    {
      "commit": "5123e684dc464d7de28599333c6678e7884d7ac8",
      "tree": "58045cdc3a91212fa65f828a27c8b44a2373fa5f",
      "parents": [
        "42ccc9346c6036feec6b658405a3905613cf199f"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 20 10:15:09 2023 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Apr 21 13:30:25 2023 -0400"
      },
      "message": "SF: Fix two queries for the past VSYNC\u0027s fence\n\n...which did not consider the case of targeting two VSYNCs ahead.\n\nBug: 241285475\nTest: libscheduler_test after Idf9f43b37f3479c94a478d154eaa46f43e0c6c9d\nChange-Id: Ib114ffc1866aa32e6d493e06dcf5a27652d19a39\n"
    },
    {
      "commit": "42ccc9346c6036feec6b658405a3905613cf199f",
      "tree": "b5c4b33f1bfa6e8e1b54fd426eeb75acbd564104",
      "parents": [
        "84a221ab1ffe75608573ea8d1772e4a3a447c1a6"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 20 10:08:04 2023 -0400"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Apr 21 13:30:23 2023 -0400"
      },
      "message": "SF: Extract SurfaceFlinger::wouldPresentEarly\n\nShort-circuit a few fetches and arithmetic operations.\n\nBug: 241285475\nTest: libscheduler_test after Idf9f43b37f3479c94a478d154eaa46f43e0c6c9d\nChange-Id: Ib40794cca0c44f8151ca9f37ba58ac4d892c66ee\n"
    },
    {
      "commit": "e469593af9a8220d82d91cc815e0aee317fef45e",
      "tree": "7f6445ef965ee20376be6632ee49b0d9d7986df6",
      "parents": [
        "84a221ab1ffe75608573ea8d1772e4a3a447c1a6",
        "7ee4f464bf6e70007a17df078e905898efc5a80e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Apr 21 16:08:52 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 21 16:08:52 2023 +0000"
      },
      "message": "Merge \"[sf] Release the currently presented buffer when setBuffer is called with null\" into udc-dev"
    },
    {
      "commit": "60cd58c1fb8d86bf7b880cb40bab8702265378fb",
      "tree": "6a03a3b4ed482253b7d969819511c5f3970b96c0",
      "parents": [
        "dbf65411bbd51a0ed1eac9bf9e4fc2ad53a80e7f",
        "c404cb4288475dcb48986d38f857400cc474f257"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Apr 21 03:27:09 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 21 03:27:09 2023 +0000"
      },
      "message": "Merge \"SF: Merge per-display maps in Scheduler\" into udc-dev"
    },
    {
      "commit": "dbf65411bbd51a0ed1eac9bf9e4fc2ad53a80e7f",
      "tree": "d45a334d51e7b1e9461d8d4b9f2c869d057a7e61",
      "parents": [
        "98447e452389f6fdecf09464de373b41a430b5da",
        "22be349cc5298a7f88af478f6ff673778563730d"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Apr 20 23:14:17 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 20 23:14:17 2023 +0000"
      },
      "message": "Merge \"[sf] fix layer trace generation with new fe\" into udc-dev"
    },
    {
      "commit": "22be349cc5298a7f88af478f6ff673778563730d",
      "tree": "f74bdf1b185d983e0af3c50988867741d2044f44",
      "parents": [
        "9402f4fa5166f95c4cc5f8164f0930261ff58dd0"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Apr 20 10:08:21 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Apr 20 10:08:21 2023 -0700"
      },
      "message": "[sf] fix layer trace generation with new fe\n\nFixes an incorrect rebase.\n\nTest: presubmit\nBug: 238781169\nChange-Id: I13596a035dc930447ee5c3b66a420e43b7a8b737\n"
    },
    {
      "commit": "c404cb4288475dcb48986d38f857400cc474f257",
      "tree": "e38eeb4514b4e2833a060b8d04f6755d376f294b",
      "parents": [
        "8e521bbbfe86abb0ab6191f3ccbf6aa448a4c0e1"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Fri Mar 03 19:57:53 2023 -0500"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Thu Apr 20 12:47:34 2023 -0400"
      },
      "message": "SF: Merge per-display maps in Scheduler\n\nFixes: 266715559\nTest: libsurfaceflinger_unittest\nChange-Id: Ia8934f73f237c37e8f477be5183f84a9c1a40a5a\n"
    },
    {
      "commit": "8e521bbbfe86abb0ab6191f3ccbf6aa448a4c0e1",
      "tree": "ee6a8130579f1e3413acc5de7913ebe0c22f9ab9",
      "parents": [
        "f4cd8871d030ff3dd111043076a20501a51c94a7",
        "39d25347953d6d7551e6d56c94d4e90cdb22b20b"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Apr 20 14:31:19 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 20 14:31:19 2023 +0000"
      },
      "message": "Merge \"Revert \"Only call onNewVsyncSchedule if the pacesetter changes\"\" into udc-dev"
    },
    {
      "commit": "39d25347953d6d7551e6d56c94d4e90cdb22b20b",
      "tree": "1e30f9aa92460b006efb1ddbf5c7cfa16aaa5ce5",
      "parents": [
        "d649463aa27ae1aea7101afc4684cc9422d4808a"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Apr 19 17:11:01 2023 +0000"
      },
      "committer": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Thu Apr 20 14:30:31 2023 +0000"
      },
      "message": "Revert \"Only call onNewVsyncSchedule if the pacesetter changes\"\n\nThis reverts commit d649463aa27ae1aea7101afc4684cc9422d4808a.\n\nReason for revert: Speculative fix for a regression in SF performance.\n\nBug: 278987666\nTest: APC\nChange-Id: I5bf393a2eef4dc7254ccf931a0fab3c67eb315ad\n"
    },
    {
      "commit": "50355837d27fdb899bd2e141cb3cd196a5f6fe05",
      "tree": "f32448d5a59ee9cb7ee1854728e98abd7e9f78e9",
      "parents": [
        "0dd3ca0c885d1194a81aebfb49ae9e71c8a9ce75",
        "80872bddcc529d750c12349675504ea00271712a"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Wed Apr 19 19:34:07 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 19 19:34:07 2023 +0000"
      },
      "message": "Merge \"SF: Clean up ftl::SmallMap lookup fallbacks\" into udc-dev"
    },
    {
      "commit": "c22a33e1209c35d24d654966bf4bcd1484bf7718",
      "tree": "7d400b02310859f7e0f6f483d4d7e3f31f5c1215",
      "parents": [
        "77acb94bb66686265d8d6a23597e953f83d370ee",
        "73cc9fd7ce71a1bd3398606a35a7c034145c539f"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 19 17:50:21 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 19 17:50:21 2023 +0000"
      },
      "message": "Merge \"[sf] Clean up transaction handling trace tags\" into udc-dev"
    },
    {
      "commit": "7ee4f464bf6e70007a17df078e905898efc5a80e",
      "tree": "638c6ff65aacd44af7d5c094de2dcfb4fd466933",
      "parents": [
        "9402f4fa5166f95c4cc5f8164f0930261ff58dd0"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 19 09:54:09 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 19 09:54:09 2023 -0700"
      },
      "message": "[sf] Release the currently presented buffer when setBuffer is called\nwith null\n\nFixes a regression introduced in T which ignores a setBuffer call\nwith a null buffer. The expected behavior should be to release the\ncurrently presented buffer from surfaceflinger. The subsequent frame\nwill not present this layer so the region behind the layer will be\ncomposited instead.\n\nBug: 241271897\nTest: presubmit\nChange-Id: Ie06025c59c58cc75a267b783729996a3cbceef45\n"
    },
    {
      "commit": "91913766abab382d8039a09e53ba276b50b8adae",
      "tree": "bdc1d1701be931cd22d134db5c2b852842463b8b",
      "parents": [
        "7ec5b1d9f60728dd767cf6d6fd44a43360c7a7f9",
        "150065b4f7ab2c674f3989e6810281920020c3d8"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 19 15:44:36 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 19 15:44:36 2023 +0000"
      },
      "message": "Merge \"[sf] Use layer id as snapshot ids\" into udc-dev"
    },
    {
      "commit": "80872bddcc529d750c12349675504ea00271712a",
      "tree": "3e151d2772fe229b1bc94d11d718294e1af2427c",
      "parents": [
        "ccda33e2eb762b0f9ffff3de982011b6fc7f84ec"
      ],
      "author": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Nov 15 11:34:33 2022 -0500"
      },
      "committer": {
        "name": "Dominik Laskowski",
        "email": "domlaskowski@google.com",
        "time": "Tue Apr 18 19:28:35 2023 -0400"
      },
      "message": "SF: Clean up ftl::SmallMap lookup fallbacks\n\nAvoid std::cref to a local variable, which is not intuitive and incurs\nconstruction in the non-fallback case.\n\nBug: 185536303\nTest: ftl_test\nChange-Id: I1c5a94bdab105a04f8230fe762bdc433eea5c97a\n"
    },
    {
      "commit": "73cc9fd7ce71a1bd3398606a35a7c034145c539f",
      "tree": "27133f66ce083412014aa32d34ac5e85909912a8",
      "parents": [
        "9402f4fa5166f95c4cc5f8164f0930261ff58dd0"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 18 11:18:07 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 18 11:18:48 2023 -0700"
      },
      "message": "[sf] Clean up transaction handling trace tags\n\n- Only add a tag if a transaction is not ready to be applied\n- Add sufficient info on why its not ready and which layer was affected\n- Remove unused tags\n\nTest: perfetto traces\nBug: 277799011\nChange-Id: I956823699721aaa2260eefd3762ec60a20790140\n"
    },
    {
      "commit": "150065b4f7ab2c674f3989e6810281920020c3d8",
      "tree": "c5283c0ba72f4cd9110ff7b825bc6efab58ad022",
      "parents": [
        "9402f4fa5166f95c4cc5f8164f0930261ff58dd0"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Apr 17 19:14:11 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Apr 17 19:14:11 2023 -0700"
      },
      "message": "[sf] Use layer id as snapshot ids\n\nFlicker tests rely on layer ids for some assertions. So when possible\nuse the layer id for the snapshot used to generate layer traces.\nAlso keep track of the order in which layers are added so its easier to\nwrite tests.\n\nTest: atest FlickerTests w/new fe\nBug: 238781169\nChange-Id: Ie0f93ca956e6d043c9d95d00bc205d242e47c4cc\n"
    },
    {
      "commit": "ce2205fc6ff1eaf93bbb00df90df0e02e42a9f2c",
      "tree": "38bcda8ad9fdded152c18a1bdb2835dc21b72da4",
      "parents": [
        "cd5edad6c2ee8174f9813836bb5044378fa7e70b",
        "1caf3b7d82024c9814b5ca41b144c193ade5da26"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Sun Apr 16 00:00:40 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Apr 16 00:00:40 2023 +0000"
      },
      "message": "Merge \"SF: throttle WindowInfosListener calls\" into udc-dev"
    },
    {
      "commit": "cd5edad6c2ee8174f9813836bb5044378fa7e70b",
      "tree": "c1ef157255f3f824292bd58fdc5e3c1fff597137",
      "parents": [
        "f8538d605d024d4644f9ac7032789a33f855e6eb",
        "59a60b7b4f457bba27be21006a9ee148bb7e51e0"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Sat Apr 15 01:45:20 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 15 01:45:20 2023 +0000"
      },
      "message": "Merge \"Round up virtual display refresh rate\" into udc-dev"
    },
    {
      "commit": "59a60b7b4f457bba27be21006a9ee148bb7e51e0",
      "tree": "5fb40bce68e64e667d484aebbd8ae41f7f212ad2",
      "parents": [
        "763ee2914fc1a555ef13019ea4a2a14c17ea3678"
      ],
      "author": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Wed Mar 08 21:44:59 2023 +0000"
      },
      "committer": {
        "name": "Huihong Luo",
        "email": "huisinro@google.com",
        "time": "Fri Apr 14 20:37:03 2023 +0000"
      },
      "message": "Round up virtual display refresh rate\n\nThis semantics guarantees the virtual display will at least have the\nspecified refresh rate, e.g., if 60hz is requested on a 90hz display,\nthe virtual dislay will get a 90hz.\n\nBug: 266965278\nTest: atest libsurfaceflinger_unittest\nChange-Id: Ie7b30c5766454d0ad25cfd437f0498594c690a2e\n"
    },
    {
      "commit": "1caf3b7d82024c9814b5ca41b144c193ade5da26",
      "tree": "5b41a9a05934f87f8d31342bbaf565e0ebdb72e2",
      "parents": [
        "29b38f3b2de0e376c7b8c46108bc0f7498032565"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Mar 31 10:59:10 2023 -0500"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "pdwilliams@google.com",
        "time": "Fri Apr 14 13:36:47 2023 -0500"
      },
      "message": "SF: throttle WindowInfosListener calls\n\nThis change updates WindowInfosListenerInvoker to delay and drop\nmessages when there are unacked messages. When WindowInfosListener calls\nare acknowledged before the next windowInfosChanged call, there is no\nbehavior change. If windowInfosChanged is called and there are unacked\nmessages, then the update is delayed and sent once the messages are\nacked via WindowInfosReportedListener. If windowInfosChanged is called\nand there is already a delayed update, then the previous delayed update\nis overwritten and only the latest update is sent.\n\nWindowInfosListeners are still called immediately when there are focus\nrequests. This means the number of unacked messages may be greater than\none.\n\nThis reverts commit 1234a337651a79d492b6c453eb7f4cf30ec341cf.\n\nBug: 270894765\nTest: presubmits\nTest: manual fuzz testing (random sleeps added to input flinger listener)\nChange-Id: If43b7ab91e05df863e9e6ac51b0bbd36cabe85d7\n"
    },
    {
      "commit": "7e74d2cadd51204a85e691ab13cef12c6325ee56",
      "tree": "ee7fd3f3971e64f9b739f91ac9f4cfcabbc60569",
      "parents": [
        "ed6c3defc344d5ac0a6cc05752d4aeb789283e2b",
        "d649463aa27ae1aea7101afc4684cc9422d4808a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Apr 13 14:33:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 13 14:33:08 2023 +0000"
      },
      "message": "Merge \"Only call onNewVsyncSchedule if the pacesetter changes\" into udc-dev"
    },
    {
      "commit": "82b28565491190c4e3ba1d23449db52e4d0ab0bd",
      "tree": "0a15f506d90cd60c879e7d48226d87ed37048042",
      "parents": [
        "9402f4fa5166f95c4cc5f8164f0930261ff58dd0",
        "444f395b6820a7761b801e7af4e1c1a19dd27413"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 12 19:32:31 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 19:32:31 2023 +0000"
      },
      "message": "Merge \"[sf] Fix blur alpha for new sf frontend\" into udc-dev"
    },
    {
      "commit": "9402f4fa5166f95c4cc5f8164f0930261ff58dd0",
      "tree": "c956fec04188b95a319bdb20042c9d63b9abba89",
      "parents": [
        "b652b7904d391c9292ff9de0375b498ffb8e298b",
        "43b5d521210b89dbc72c3c5cca8c10454fad3348"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Apr 12 17:32:59 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 12 17:32:59 2023 +0000"
      },
      "message": "Merge \"Skip renderCachedSets if the Output is not enabled\" into udc-dev"
    },
    {
      "commit": "74c80593852afb700c85448c62391e0f5b93a2da",
      "tree": "732e1267721b8c2bcac474f715d4fe7c70a08a66",
      "parents": [
        "d09663b5683aabba5a251d55c84fe152f4a42650"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Apr 11 19:09:20 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Wed Apr 12 00:08:51 2023 +0000"
      },
      "message": "Add EndToEndNativeInputTest to SF presubmit\n\nBug: 240437119\nTest: presubmit\nChange-Id: I5e9203772e10e7596333a57a939147f484396e19\n"
    },
    {
      "commit": "444f395b6820a7761b801e7af4e1c1a19dd27413",
      "tree": "06c6ab6adfcb850cb68b3b21fb251a4b25ac1778",
      "parents": [
        "ecd41c772b9c76d6cb6f79c5b54cadc9093003d3"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 11 13:01:02 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 11 13:01:29 2023 -0700"
      },
      "message": "[sf] Fix blur alpha for new sf frontend\n\n- update the blur alpha when alpha changes\n- also update layer stack ordering to match legacy order\n\nTest: presubmit\nBug: 238781169\n\nChange-Id: I6d122a9721a3de0f8b04e60ac21fa879b29b22e3\n"
    },
    {
      "commit": "a654b39909313f8ced0d62d4935d83b0f2b99d9a",
      "tree": "ee097c37935dba7ec6e7ea9c84a86eacab435ee5",
      "parents": [
        "3704cb3be5100dd9f8ad85f4b7ac6d3b0459d10f",
        "63db24e62af7cd27b5ab49d735b2fddae3f2fa5c"
      ],
      "author": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Tue Apr 11 00:44:12 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 11 00:44:12 2023 +0000"
      },
      "message": "Merge \"SF: Clear layer history when inconclusive to frequent layer transition\" into udc-dev"
    },
    {
      "commit": "43b5d521210b89dbc72c3c5cca8c10454fad3348",
      "tree": "66dac37ea006366ffa7614b1d51f0dfeb5dae0aa",
      "parents": [
        "dfd75d39d2dcf93abe4b14624f877cefdef42a77"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Apr 10 15:53:45 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Apr 10 17:02:45 2023 -0400"
      },
      "message": "Skip renderCachedSets if the Output is not enabled\n\nThis method was being called for a display that had not turned on yet.\nThe call to getSkipColorTransform resulted in a log warning - the call\nonly checks a cached value, and the value is only cached when the\ndisplay is first turned on. Skip the call when it is not enabled (e.g.\nwhen it is off), removing the log spam.\n\nBug: 277358841\nTest: look at logs\nChange-Id: Ic5eb3a69d50719cf68e3b41d6eca659bd712f65f\n"
    },
    {
      "commit": "63db24e62af7cd27b5ab49d735b2fddae3f2fa5c",
      "tree": "6e51a42d9de89719dccd1fffce4104a68d4afe83",
      "parents": [
        "4d6d28e6f55d67bc05c70fa7d2be0435ff2497d7"
      ],
      "author": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Mon Apr 03 10:56:05 2023 -0700"
      },
      "committer": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Mon Apr 10 12:10:35 2023 -0700"
      },
      "message": "SF: Clear layer history when inconclusive to frequent\nlayer transition\n\nBUG: 265561529\nTest: atest LayerHistoryTest\nBenchmark shows improvement with the changes https://android-build.googleplex.com/builds/abtd/run/L82600000959656128\n\nChange-Id: I152aa97f00592960411133de150990747ca8b31d\n"
    },
    {
      "commit": "61608cc762e4a87d16594ae400dac6f6fa6a2605",
      "tree": "78244fd0a76752c5ee8f78955bdc0293e02f757c",
      "parents": [
        "69b990e3d11e7a87548b2a17ed6c0e78ad0f8784",
        "f5272953652b8cee06b1376a7324dd9741160644"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Mon Apr 10 13:54:36 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 10 13:54:36 2023 +0000"
      },
      "message": "Merge \"Temporary workaround for getDisplayStats\" into udc-dev"
    },
    {
      "commit": "69b990e3d11e7a87548b2a17ed6c0e78ad0f8784",
      "tree": "f07a1cebb7dfebd7ac8f45138c7af55e1e92a005",
      "parents": [
        "dfd75d39d2dcf93abe4b14624f877cefdef42a77",
        "632212179b4e7b2d1533379b97ed0538cb161153"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Apr 07 20:42:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 07 20:42:08 2023 +0000"
      },
      "message": "Merge \"[sf] protect against out of order transactions\" into udc-dev"
    },
    {
      "commit": "f5272953652b8cee06b1376a7324dd9741160644",
      "tree": "1df6d88713a4dc9a6da35d69746d1be24c4dc5ac",
      "parents": [
        "3b8613e5b75bf0e6d2581fb1be04770dd0e034e8"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Apr 06 14:55:22 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Apr 07 16:00:42 2023 -0400"
      },
      "message": "Temporary workaround for getDisplayStats\n\nPrior to Icdb80253436b4d0034fc20fcae8583efb7c30292, there was only one\nVsyncSchedule, so the display parameter was not interesting.\n\nNow that there are multiple VsyncSchedules, we should return the\nVsyncSchedule corresponding to the passed in display. But current\ncallers just pass a null binder token.\n\nUse the pacesetter\u0027s VsyncSchedule for now. Most of the time, for\nexample on devices with only one display (or one active display), this\nis correct.\n\nFor a device with more than one active display, this may not be correct,\nso a follow-on change is necessary.\n\nBug: 275691508\nBug: 275691150\nTest: manual\nChange-Id: I01ed2978b04a7707a706050902d3041ec9ab4eca\n"
    },
    {
      "commit": "632212179b4e7b2d1533379b97ed0538cb161153",
      "tree": "10e637e0576da1719e62b8a9eec8ef077d630840",
      "parents": [
        "7b1cf06a756bc2cd5344db88e3506d841418c99e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Apr 06 15:17:37 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Apr 06 15:17:37 2023 -0700"
      },
      "message": "[sf] protect against out of order transactions\n\nIf the client submits transactions out of order, we could end up\nin a situation where a frame barrier will never be satisfied and\nbring down the client. Fix this by being more resiliant to out of\norder transactions.\n\nBug: 272189296\nTest: repro steps from bug\nChange-Id: I781b7751bdd6259fc164692248734c0cb268c238\n"
    },
    {
      "commit": "d649463aa27ae1aea7101afc4684cc9422d4808a",
      "tree": "927bf266ec021630848cdb5765e07667a95ceca9",
      "parents": [
        "fb7ed56c090725d2b39f85656e71febf637fc3e7"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Apr 05 11:57:38 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Apr 06 16:08:49 2023 -0400"
      },
      "message": "Only call onNewVsyncSchedule if the pacesetter changes\n\nWhen re-calculating the pacesetter display, we may end up with the same\ndisplay, and therefore the same VsyncSchedule. In that case, we don\u0027t\nneed to apply the new one.\n\nBug: 276367387\nTest: atest libsurfaceflinger_unittest:SchedulerTest\nChange-Id: I76750ffdba6c3d790a98b65aabbc8b13eab3b4ae\n"
    },
    {
      "commit": "2493d122d3cd0e6de44eb26a711a01cea8699aab",
      "tree": "cff7f7a09aaca17038eaf72693740afb3170f8aa",
      "parents": [
        "4d6d28e6f55d67bc05c70fa7d2be0435ff2497d7",
        "74c7ae1ff65d92c9e5a79498ab6f6ce9c17fc2a9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 06 17:52:38 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 06 17:52:38 2023 +0000"
      },
      "message": "Merge \"Strengthen dataspace guarantees in SurfaceFlinger.\" into udc-dev"
    },
    {
      "commit": "74c7ae1ff65d92c9e5a79498ab6f6ce9c17fc2a9",
      "tree": "9d482255caa58713c7900c7768b4da7e4b35c328",
      "parents": [
        "5cd6a96a69c4257cd83789bd83ccfee7d6dd3d7d"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Sun Mar 26 02:57:47 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Apr 06 16:14:04 2023 +0000"
      },
      "message": "Strengthen dataspace guarantees in SurfaceFlinger.\n\nCorrectly converting from yuv to rgb in RenderEngine requires that the\nbuffer dataspace is accurate. So, if the dataspace on a layer differs\nfrom the buffer then update the dataspace in the buffer\u0027s metadata to be\nconsistent.\n\nMoreover, some GPU drivers do not perform yuv2rgb in a reasonable way\nwhen the dataspace is UNKNOWN. In that case, reauthor the dataspace to\nbe sRGB so that there is consistent behavior for an UNKNOWN dataspace.\n\nFinally, some GPU drivers cache gralloc metadata on creation of GPU\nresources, which is not compliant with gralloc expectations. So that\nvendors have some time to fix the drivers and so that GSI tests pass,\nrecreate GPU resources when the vendor partition is old and the buffer\nis a YCbCr format.\n\nBug: 247826480\nTest: SurfaceControlTest\nChange-Id: Iee2641acce3926c826e96c56ececb431868d8598\n"
    },
    {
      "commit": "8c5541a6d446050c0fd9e289b3eafcdfce22bce1",
      "tree": "492bb4d786cc222085b21949e36748ab7c592d78",
      "parents": [
        "2b3cd1878b6a7787e2f8a794cef44147c55031de",
        "fb7ed56c090725d2b39f85656e71febf637fc3e7"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Apr 05 18:26:36 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 05 18:26:36 2023 +0000"
      },
      "message": "Merge \"Avoid deadlock in MessageQueue::onNewVsyncSchedule\" into udc-dev"
    },
    {
      "commit": "63241c3ceaba17e2108bbda2aec90b43d00bde02",
      "tree": "dd6ee2143c80394fac0b7b99c08adbed5ccc377d",
      "parents": [
        "4038250fb5d8691079ebf5dd1bfd7f5bd828734a",
        "2f65e97a72d7a79380713c98b324d9dfb1a148a6"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Apr 05 16:19:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 05 16:19:08 2023 +0000"
      },
      "message": "Merge \"[layer tracing] generate composition state for non-default displays\" into udc-dev"
    },
    {
      "commit": "fb7ed56c090725d2b39f85656e71febf637fc3e7",
      "tree": "1e30f9aa92460b006efb1ddbf5c7cfa16aaa5ce5",
      "parents": [
        "ed66a3586c303cd580f3dfc5d3eb40bfcddba568"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Apr 05 11:39:25 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Wed Apr 05 11:49:59 2023 -0400"
      },
      "message": "Avoid deadlock in MessageQueue::onNewVsyncSchedule\n\nIt is hard to reproduce, but if the\nVSyncDispatchTimerQueueEntry::callback is called at just the right time,\nit will set mRunning to true, then wait on MessageQueue\u0027s mVsync.mutex,\nwhich was already locked by onNewVsyncSchedule. When\nonNewVsyncScheduleLocked destructs the old VSyncCallbackRegistration, it\nneeds to wait until mRunning is set back to false. But\nVSyncDispatchTimerQueueEntry::callback cannot do that until\nMessageQueue::vsyncCallback can lock the mutex.\n\nAvoid this deadlock by moving the old VSyncCallbackRegistration\u0027s\ndestruction until after mVsync.mutex is released.\n\nBug: 276367387\nTest: infeasible\nChange-Id: I86e66df59c64e81c4aa721a25250697f61237488\n"
    },
    {
      "commit": "4038250fb5d8691079ebf5dd1bfd7f5bd828734a",
      "tree": "730021ba1e7335d28f68157c16ba1891a3cf66d8",
      "parents": [
        "cf42e1881c71a700b7688ff1d92c4accc42d451d",
        "ed66a3586c303cd580f3dfc5d3eb40bfcddba568"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Wed Apr 05 14:44:35 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 05 14:44:35 2023 +0000"
      },
      "message": "Merge \"EventThread: add annotations for mVsyncSchedule\" into udc-dev"
    },
    {
      "commit": "cdcc6f71807438c648377bb29c6d67458b90aaec",
      "tree": "e8e1314a3c1b40b420da1af9075826070fddf821",
      "parents": [
        "2ddc65e023d29f7fedb110934e7d695de17ef8ea",
        "9d51f9c357677a7d1c4c6c62432a31b84e4ab04f"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Tue Apr 04 21:32:40 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 21:32:40 2023 +0000"
      },
      "message": "Merge \"Add trace to resync.\" into udc-dev"
    },
    {
      "commit": "2f65e97a72d7a79380713c98b324d9dfb1a148a6",
      "tree": "52d017a4db675414970ca9a887147ff43f354fc1",
      "parents": [
        "f9c1b98e54aa996d2a4412916a09e6fe504be560"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 04 16:36:28 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 04 16:37:14 2023 +0000"
      },
      "message": "[layer tracing] generate composition state for non-default displays\n\nFixes: 264688936\nTest: load multi display trace on winscope\nChange-Id: Id6c07af31a3d1175b91c943e9d744a62cb9fbba5\n"
    },
    {
      "commit": "2ddc65e023d29f7fedb110934e7d695de17ef8ea",
      "tree": "5339cb40d2b191a952431ba2acfb3f6a7526a880",
      "parents": [
        "e055650d818c271e0d9040ba14bdcbb8e6689f1e",
        "f01a6f1491ec94dca77d80d3c76c473e806226da"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 04 15:40:28 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 15:40:28 2023 +0000"
      },
      "message": "Merge \"[sf] Fix latch unsignaled issues\" into udc-dev"
    },
    {
      "commit": "40a0171d4da8607b007f285c2fb5d9dcd3ea496e",
      "tree": "86fec72f6ae78470696679608f29409041a03500",
      "parents": [
        "c9c2647423d67c21bc971748361218c9c88e4702",
        "0284463f01bad248b39fce18b44a62551c91a070"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 04 00:25:56 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 00:25:56 2023 +0000"
      },
      "message": "Merge \"Move exclude layer to CaptureArgs.\" into udc-dev"
    },
    {
      "commit": "f01a6f1491ec94dca77d80d3c76c473e806226da",
      "tree": "5c1793a4a0248f468851f6acc2a74aea3d84d793",
      "parents": [
        "f9c1b98e54aa996d2a4412916a09e6fe504be560"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Apr 03 22:34:17 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 04 00:07:45 2023 +0000"
      },
      "message": "[sf] Fix latch unsignaled issues\n\nWith LatchUnsignaledConfig::AutoSingleLayer flag, we should only\napply a transaction with an unsignaled fence if its the only transaction.\nIf we pass an unsignaled fence to HWC, HWC might miss presenting\nthe frame if the fence does not fire in time. If we apply another\ntransaction we may penalize the other transaction unfairly.\n\nWith LatchUnsignaledConfig::Always flag, respect backpressure flag\nand take the opportunity to simplify the logic by treating the flag as\na signal to ignore the fence when applying transactions.\n\nTest: surfaceflinger unit tests\nBug: 276229937\nChange-Id: Ib5cd8205d62fdf8912b7f5c2cad312a01cae4300\n"
    },
    {
      "commit": "f549de4357ac53031b1c1b266ac7b54152ce0757",
      "tree": "99f55d7f4e858238014169eeb9518efaca4675a3",
      "parents": [
        "a93641a813f44f590e5f7b9f39563065d9e5b1a0",
        "1fe1117da5f793969752f44407e4618690b41d52"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Apr 04 00:07:10 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 04 00:07:10 2023 +0000"
      },
      "message": "Merge \"Revert \"[sf] Trigger input updates in post composition\"\" into udc-dev"
    },
    {
      "commit": "9d51f9c357677a7d1c4c6c62432a31b84e4ab04f",
      "tree": "5efe553d80f35797fc3b1f596b71e13daa55ee3d",
      "parents": [
        "a2e66c94dba2c8dad4c30b5896881c2cec25582e"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Apr 03 16:41:16 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Apr 03 16:41:16 2023 -0700"
      },
      "message": "Add trace to resync.\n\nTest: atest from b/266128330#comment6\nTest: Perfetto trace from aforementioned atest\nBug: 266128330\nChange-Id: I62eb973b57f0dec5cde0cd1ffcefa6074556bea4\n"
    }
  ],
  "next": "3ef28b604ca65978da51eeeead5c1b74ec666380"
}
