)]}'
{
  "log": [
    {
      "commit": "d9e4f46cc957205d9a583f0dbccbcefeb66cf9bf",
      "tree": "6909c6ef8718fa53e85afada2886e9b2ea904250",
      "parents": [
        "6c0e32c07ecd09cdba722da4c94256cade0b42d7"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Oct 06 04:05:45 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Oct 06 20:11:44 2023 +0000"
      },
      "message": "Clean up duplicate shadow lengths in layer snapshot\n\nThe shadow length is currently tracked in both the LayerFE\nCompositionState and the shadow settings, which are used by the\nRenderEngine. We can consolidate these fields and track shadow\nsettings in the LayerFE CompositionState. This makes sense because\nwe want the LayerFE CompositionState to contain all relevant\ninformation that it can pass to the RenderEngine without calling\nback into the frontend.\n\nBug: 302551905\nTest: presubmit\n\nChange-Id: I583c43993cf73784c6fec9ec2d40f2c76d21adeb\n"
    },
    {
      "commit": "47b7bb433909f45d2ee9de3f576ac97ccad61cb5",
      "tree": "e220811560d33d7de2f0e3486f8b6cb6dc9e73ff",
      "parents": [
        "80e8cfe3d73baecc749dba0de0bd7f96c17a5eec"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 29 16:27:33 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Oct 06 02:58:46 2023 +0000"
      },
      "message": "[sf-newfe] Update layer history for invisible layers\n\nFixes a bug with new frontend where we were only updating\nlayer history for layers that has something to draw.\n\nCl also adds integration tests to validate frontend to\nlayerhistory path.\n\nTest: LayerHistoryIntegrationTest\nFixes: 300701739\nChange-Id: I223b4817bdf9909e3890de0b5051bc0ff345f829\n"
    },
    {
      "commit": "80e8cfe3d73baecc749dba0de0bd7f96c17a5eec",
      "tree": "af92ff64307f4cade1154cc3588585c09e658a51",
      "parents": [
        "ddba9342cf79ea67328a845bb1b99635b2cbd00e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 29 17:03:45 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 02 21:30:18 2023 -0700"
      },
      "message": "[sf-newfe] update default frame rate compatibility\n\nBug: 300701739\nTest: presubmit\nChange-Id: I3dbfd8d7ef6fe801d4d750c1828d09da511ce283\n"
    },
    {
      "commit": "92c95a72285b6cec40f1a89fb8ce44c99e4ef5bb",
      "tree": "f9fa60357b9c97d1862271475ba622def0a72d3b",
      "parents": [
        "07d03c4d260b804c07f7ac927515b26c84c9a4ea",
        "3fbe326861bc22e40847b9edf3e905f4bd41d645"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Oct 02 21:27:19 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 02 21:27:19 2023 +0000"
      },
      "message": "Merge \"Pull out FrameRateCompatibility definition to avoid circular dependencies\" into main"
    },
    {
      "commit": "3fbe326861bc22e40847b9edf3e905f4bd41d645",
      "tree": "f5e458f0078e94119f6c494e279b182e47d63349",
      "parents": [
        "d49c9783cf00b3863485fa5ce572d1259757a2a9"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 29 17:07:00 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 29 17:09:22 2023 -0700"
      },
      "message": "Pull out FrameRateCompatibility definition to avoid circular dependencies\n\nTest: presubmit\nBug: 300701739\nChange-Id: I7a1cc64a786fca5a7a273522dc4735439b44fd13\n"
    },
    {
      "commit": "66ed1c48f6a9a152576edb98472bfe1cae1324df",
      "tree": "25721dbb7655e022903334e5862570e6abc4f2c1",
      "parents": [
        "c00f5e92cb9aa89044ef03b7444f83be286cde44"
      ],
      "author": {
        "name": "Dorin Drimus",
        "email": "dorindrimus@google.com",
        "time": "Wed Sep 27 13:10:16 2023 +0000"
      },
      "committer": {
        "name": "Dorin Drimus",
        "email": "dorindrimus@google.com",
        "time": "Wed Sep 27 13:10:20 2023 +0000"
      },
      "message": "Properly release the sideband stream when setting a buffer\n\nBug: 301910615\nChange-Id: I0dfdb5bb6816be5227a7d6b720654bd722438ffd\nTest: Netflix playback changing streams\n"
    },
    {
      "commit": "d7479506dcbf82d9fc01c512fbe18c8c5d979254",
      "tree": "cd59ce85ecadda60210311688bf3ae402ddca54e",
      "parents": [
        "0faad6c29ae2e62abd8b18e3438d891961c15150"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Sep 25 17:02:35 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Sep 25 17:02:35 2023 -0700"
      },
      "message": "Propagate tree on setting selection strategy\n\nOtherwise there is an order dependency on calling setFrameRate,\nsetFrameRateCategory, and setFrameRateSelectionStrategy.\n\nBug: 297418260\nTest: atest FrameRateSelectionStrategyTest\nChange-Id: I9fb345a1632c5a18fe445d1637b6bb22984fe24e\n"
    },
    {
      "commit": "0faad6c29ae2e62abd8b18e3438d891961c15150",
      "tree": "5cebef9cc319652b8d5e8d3734e95f0b7041da4c",
      "parents": [
        "58cc90d352b71bd1be16d4a89053350bbeada0af"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Fri Sep 08 13:34:34 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Sep 18 16:22:01 2023 -0700"
      },
      "message": "Logic for setFrameRateSelectionStrategy.\n\nUse the frameRateSelectionStrategy value stored in Layer to inform the\nframe rate propagation in the hierarchy.\n\nBug: 297418260\nTest: atest CtsSurfaceControlTestsStaging\nTest: atest libsurfaceflinger_unittest\nChange-Id: I05a6a7effd17cefb01421bff10c9ff9dbcadf98a\n"
    },
    {
      "commit": "58cc90d352b71bd1be16d4a89053350bbeada0af",
      "tree": "91b9d88c5e37b581af67b53d85b1b50cb2907b7b",
      "parents": [
        "47adfcfdfc5d154fc00bac233f0bd4041f0896ee"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Tue Sep 05 18:50:20 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Mon Sep 18 16:22:01 2023 -0700"
      },
      "message": "Plumb new frameRateSelectionStrategy value\n\nThis new value will allow a parent layer to override the frame\nrate specifications of all its descendants. This CL only plumbs the\nvalue from Transaction to Layer.\n\nBug: 297418260\nTest: atest CtsSurfaceControlTestsStaging\nTest: atest libsurfaceflinger_unittest\nChange-Id: Ibbda6ff6c143e931240178d89306822b4cce9669\n"
    },
    {
      "commit": "6476275510e26872c6bddfb821eefded85ad4223",
      "tree": "b96f2e055c9311e9f72cc77a388eb595781fdfe9",
      "parents": [
        "ef96717c82eb0d778b16ebec5c3e7a5421012401",
        "e5374e50fe60e410ff94f20cb64dadcdf18c8ee5"
      ],
      "author": {
        "name": "Dorin Drimus",
        "email": "dorindrimus@google.com",
        "time": "Tue Sep 12 10:07:50 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 12 10:07:50 2023 +0000"
      },
      "message": "Merge \"Clear unexpected buffer handle of sideband layer\" into main"
    },
    {
      "commit": "6f87831da64222a3341498de174ee7ce2c8a905b",
      "tree": "6e8b1712ed917c243f77cb2699792255cedb7202",
      "parents": [
        "902599b89c81d1b529dabf6b8316acf1d521a1b5"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 08 11:05:01 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Sep 08 11:46:40 2023 -0700"
      },
      "message": "[sf-newfe] Fix snapshot paths for recursive mirror paths\n\nIf we are mirroring a hierarchy that already contains a mirror\nthen we need to track all the mirror roots inorder to have\na unique path.\n\nTest: presubmit\nTest: can screenrecord magnifier\nTest: dumpsys SurfaceFlinger --frontend\nBug: 238781169\nChange-Id: Id2272981f6f6244f41328428b73184bccf5d1888\n"
    },
    {
      "commit": "e5374e50fe60e410ff94f20cb64dadcdf18c8ee5",
      "tree": "3352266c73066d5ceb27ef2acb3c70bd7eb70b1e",
      "parents": [
        "32295332529e2d68c895875ba6f0a49fb02e1cd5"
      ],
      "author": {
        "name": "Dorin Drimus",
        "email": "dorindrimus@google.com",
        "time": "Wed Aug 02 17:52:43 2023 +0000"
      },
      "committer": {
        "name": "Dorin Drimus",
        "email": "dorindrimus@google.com",
        "time": "Fri Sep 08 16:34:24 2023 +0200"
      },
      "message": "Clear unexpected buffer handle of sideband layer\n\nIf the buffer handle is not cleared after MediaCodec disconnected\nand the surface is re-used for another sideband stream. SurfaceFlinger\nwould trigger incorrect composition type change from sideband to\ndevice when SurfaceView layout changed.\n\nClear the buffer if the layer was about to set a new sideband\nhandle.\n\nBug: 291202822\nTest: Adjust the screen layout after played 2 different sideband\nstream. No composition type change.\n\nChange-Id: I0b42d68ea03fb09db9aefc257d6071e559a3d8d2\n"
    },
    {
      "commit": "7941ecfe603da0955783c5368ae1959aaaaf89c0",
      "tree": "43122ca540941e9b61b32a43f1336ef3a0dc4a2f",
      "parents": [
        "4ba343c8885c8956fba9c20003651f7a9c8d8256"
      ],
      "author": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Thu Apr 27 16:42:13 2023 +0000"
      },
      "committer": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Fri Sep 01 10:40:30 2023 +0000"
      },
      "message": "Revert^2 Revert layer proto format back to proto2\n\nPerfetto doesn\u0027t support proto3, hence reverted to proto2.\n\nThis reverts commit dcc0bab76dbf3156f18e4dd2697aa7220ad7a8e0\n\nBug: b/284424784\nTest: atest libsurfaceflinger_unittest \u0026\u0026 atest transactiontrace_testsuite\nChange-Id: I107a56f57f547056c44877e776d169dd21db618a\n"
    },
    {
      "commit": "4ba343c8885c8956fba9c20003651f7a9c8d8256",
      "tree": "5f6c39b5deccebf35adb5dcf6414ba48f7f5ba65",
      "parents": [
        "6cd4e62e9658ef43f47a198c5d6d69470418d4f0"
      ],
      "author": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Wed Apr 19 13:31:02 2023 +0000"
      },
      "committer": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Fri Sep 01 10:40:09 2023 +0000"
      },
      "message": "Revert^2 Move proto definitions to external/perfetto\n\nThis commit moves the layer and transaction .proto files\nto external/perfetto/protos/perfetto/trace/android/.\n\nTest: atest libsurfaceflinger_unittest \u0026\u0026 atest transactiontrace_testsuite\nBug: b/284424784\nChange-Id: Ia7e446c528d188c748a800fbf16ab3b8b9a7b9d1\n"
    },
    {
      "commit": "2401daf78395903f1940bbb1b5e2bc777efd2802",
      "tree": "0678919512c3431dedb6083c2b3467c71e84588f",
      "parents": [
        "b194d7ba3c207505c5eeafa407e3c3e256461da2"
      ],
      "author": {
        "name": "Diwas Sharma",
        "email": "sdiwas@google.com",
        "time": "Fri Sep 01 00:45:24 2023 +0000"
      },
      "committer": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Fri Sep 01 10:29:33 2023 +0800"
      },
      "message": "Revert \"Move proto definitions to external/perfetto\"\n\nThis reverts commit bec51fdc3c8a42cbcb833d7d14800fbb0a14a7f3.\n\nReason for revert: 298512106\n\nChange-Id: Icb9d6d5a23176a809c3b71bcaa3928b03dfb0622\n"
    },
    {
      "commit": "b194d7ba3c207505c5eeafa407e3c3e256461da2",
      "tree": "5f6c39b5deccebf35adb5dcf6414ba48f7f5ba65",
      "parents": [
        "69758341487010cb56fb5998e29d904d639ab16c"
      ],
      "author": {
        "name": "Diwas Sharma",
        "email": "sdiwas@google.com",
        "time": "Fri Sep 01 00:43:15 2023 +0000"
      },
      "committer": {
        "name": "Hsin-Yi Chen",
        "email": "hsinyichen@google.com",
        "time": "Fri Sep 01 10:29:25 2023 +0800"
      },
      "message": "Revert \"Revert layer proto format back to proto2\"\n\nThis reverts commit 5dad909092932dc5c02d1be2f6ece1a3d06908ad.\n\nReason for revert: 298512106\n\nChange-Id: I6c371f9958b2112f51ba801131ee912dff5a4da7\n"
    },
    {
      "commit": "cf94bfc01ef794c1a4cc6edaf9c106901829bd8b",
      "tree": "b55980a2bb0ad9614c9963dc65f2c80ee61f0a31",
      "parents": [
        "12008c0ebfaa76ac5e7d256f6bd0c468a9ab647f",
        "8a5640ab9c305b2e03929f2255aabed3ec1b40b3"
      ],
      "author": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Thu Aug 31 22:06:44 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 31 22:06:44 2023 +0000"
      },
      "message": "Merge changes from topic \"sf-perfetto-integration\" into main\n\n* changes:\n  Integrate transaction tracing with perfetto\n  Integrate layer tracing with perfetto\n  Revert layer proto format back to proto2\n  Move proto definitions to external/perfetto\n"
    },
    {
      "commit": "52dcb7450614386aef58103585dfde4b4f60bef4",
      "tree": "46c5206f1cca32be489c4c21108b65959547c5ed",
      "parents": [
        "2a6b34285a32008a1cc1b02b7065eb90149af120",
        "7c1d8b5b207169d36c4b26bcf70f4923569afe43"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Aug 31 17:59:33 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 31 17:59:33 2023 +0000"
      },
      "message": "Merge \"Use the correct frame rate vote for metrics\" into main"
    },
    {
      "commit": "7c1d8b5b207169d36c4b26bcf70f4923569afe43",
      "tree": "100be4498079ab6b9af89203e04587d25366399d",
      "parents": [
        "f29700fb05dd225dc5b80dac5e4d80e074622e09"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Tue Aug 29 20:14:46 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Aug 31 17:59:22 2023 +0000"
      },
      "message": "Use the correct frame rate vote for metrics\n\nApplications using preferredDisplayModeId to request a frame rate will\nhave their vote recorded on the task SurfaceControl, so the entire layer\ntree vote needs to be used.\n\nBug: 284866750\nTest: builds\nTest: test app setting preferredDisplayModeId\nChange-Id: I04c575e58b842bebf5f79d86ec7ab7e738079886\n"
    },
    {
      "commit": "9ac5e6e6b2a9700268165c6556d30afe24fc204c",
      "tree": "22b089bd1776083b28d26d29886daffebe460490",
      "parents": [
        "c70bee298f8faaccf4d158048f0bdd49a819f4a5"
      ],
      "author": {
        "name": "Tony Huang",
        "email": "tonyychuang@google.com",
        "time": "Thu Aug 24 09:01:44 2023 +0000"
      },
      "committer": {
        "name": "Tony Huang",
        "email": "tonyychuang@google.com",
        "time": "Wed Aug 30 10:10:38 2023 +0000"
      },
      "message": "VRR: Allowlist for small area detection\n\nAdd a allowlist mechanism for suppress frame rate when small area.\n\nIn this patch, we will keep a array list to record pkg name which\nwant to apply the small area detection for suppressing frame rate\nand its threshold value of small area ratio.\n\nIn framewokr, we will check the all pkg uid by pkg name from\npackage manager and call a native function which include uid and\nthreshold.\n\nIn SF native, it get the threshold of uid and we will save them\nas a map, and it will used to check should it apply small area\ndetection and what threshold it should use.\n\nBug: 281720315\nTest: atest SmallAreaDetectionMappingsTest\nTest: atest LayerHistoryTest\nChange-Id: Iaf6c0090f9db499fc5ed097b2d3c6d9d871d4812\n"
    },
    {
      "commit": "c70bee298f8faaccf4d158048f0bdd49a819f4a5",
      "tree": "f589165b8c9c4fb60a973d0bb3a6b1ff08a2ed49",
      "parents": [
        "e1ecba3aea899ae52218e3d7246c61db9bdf7717"
      ],
      "author": {
        "name": "Arthur Hung",
        "email": "arthurhung@google.com",
        "time": "Fri Jun 02 01:35:52 2023 +0000"
      },
      "committer": {
        "name": "Tony Huang",
        "email": "tonyychuang@google.com",
        "time": "Wed Aug 30 14:27:28 2023 +0800"
      },
      "message": "SF: Suppress frame rate when small area updating\n\nThe small area is defined as the area that user is hard to obvious the\ncontent updating such as small icon animtion or progress bar.\n\nWhen content detect frame rate feature is enabled, and no explict\nrefresh vote is set to the layer, it will heuristically calculate the\npredict frame rate by counting the average frame time of recent frames.\n\nThis CL will enhance the contect detection by checking the small dirty\nframes and supress the predict frame rate that could prevent the app\nalways running at max frame rate cause unexcpected battery consumption.\n\nThis will cover 2 use cases:\n1. When a layer contains a textureview, it will enter the heuristic\n   calcuation, and this would skip the small dirty frames and supress\n   the calculated frame rate not always to be max.\n\n2. When an app has the separated video surface and ui surface, and the\n   video had set an explicit rate by the content, this will ignore the\n   heristic calculation for ui layer when it detected the small dirty\n   frames, so the final refresh rate selection could mainly rely on the\n   weight of the video layer.\n\nBug: 281720315\nTest: atest LayerHistoryTest\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:65705849c4f6339ade986bd0745ea5470ba76ebb)\nMerged-In: I9731de8adf8e68b72326b195fa720d51e02bae74\nChange-Id: I9731de8adf8e68b72326b195fa720d51e02bae74\n"
    },
    {
      "commit": "5dad909092932dc5c02d1be2f6ece1a3d06908ad",
      "tree": "30500eaf69e5db4f179c665a7fd268c97b2397db",
      "parents": [
        "bec51fdc3c8a42cbcb833d7d14800fbb0a14a7f3"
      ],
      "author": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Thu Apr 27 16:42:13 2023 +0000"
      },
      "committer": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Mon Aug 28 08:59:48 2023 +0000"
      },
      "message": "Revert layer proto format back to proto2\n\nPerfetto doesn\u0027t support proto3, hence reverted to proto2.\n\nThis reverts commit dcc0bab76dbf3156f18e4dd2697aa7220ad7a8e0\n\nBug: b/284424784\nTest: atest libsurfaceflinger_unittest \u0026\u0026 atest transactiontrace_testsuite\nChange-Id: Ibfc5442c18a3431098eefc53a023f6e66afc7c26\n"
    },
    {
      "commit": "bec51fdc3c8a42cbcb833d7d14800fbb0a14a7f3",
      "tree": "9dd6a206855b69c99860c1ad5bbdcd6dac83d987",
      "parents": [
        "a2235188e179bd45fe0669791c7d4ee45e6d4560"
      ],
      "author": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Wed Apr 19 13:31:02 2023 +0000"
      },
      "committer": {
        "name": "Kean Mariotti",
        "email": "keanmariotti@google.com",
        "time": "Mon Aug 28 08:59:48 2023 +0000"
      },
      "message": "Move proto definitions to external/perfetto\n\nThis commit moves the layer and transaction .proto files\nto external/perfetto/protos/perfetto/trace/android/.\n\nTest: atest libsurfaceflinger_unittest \u0026\u0026 atest transactiontrace_testsuite\nBug: b/284424784\nChange-Id: I60b4a51fbb092d44759b7085536e1299815597f8\n"
    },
    {
      "commit": "931a8975c473eeb38d50de19dfb5c414d74f0e58",
      "tree": "440ec95732a631a739ca0f3dc7631df4cba776da",
      "parents": [
        "ade5478f6f767bfae0b842642560c72bc34fd360",
        "ce6e0044cfea1e0ee38a48714364940a9de3e49a"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Fri Aug 25 16:47:43 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 25 16:47:43 2023 +0000"
      },
      "message": "Merge \"Add setFrameRateCategory surface API\" into main"
    },
    {
      "commit": "ce6e0044cfea1e0ee38a48714364940a9de3e49a",
      "tree": "c956c0f654058748d68a5396a443108950407222",
      "parents": [
        "652493db2c61804e81342bfd77f4b5e14dc02e1f"
      ],
      "author": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Tue Jun 27 11:22:54 2023 -0700"
      },
      "committer": {
        "name": "Rachel Lee",
        "email": "rnlee@google.com",
        "time": "Tue Aug 22 13:52:42 2023 -0700"
      },
      "message": "Add setFrameRateCategory surface API\n\nBug: 284911776\nTest: atest CtsSurfaceControlTestsStaging\nTest: atest libsurfaceflinger_unittest\nChange-Id: Ia804a63198ff096d1e5ffedf6046a0350963b8ed\n"
    },
    {
      "commit": "4d8a0d99689d54ddc7afacbd6dad0bc39014c715",
      "tree": "ac40905598a2a365748af4a18f5334707b54cac3",
      "parents": [
        "1cdf270e522dca1c00d292819906055e82b45d98",
        "7f019199c94d15923704bb0e2896c6147dc38998"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Mon Aug 21 18:50:01 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 21 18:50:01 2023 +0000"
      },
      "message": "Merge \"Use rect instead of four int frame values for WindowInfo\" into main"
    },
    {
      "commit": "66e99a1aa63396c729b98c8fb565c494a82de2e1",
      "tree": "2fd74d0610308e2caccb529bd8860331bc501d75",
      "parents": [
        "2978b5eb54c0d06125f13dfcf42ef02af209c85b",
        "9af38ba9d5f9de413d87a64165226a2b488059a8"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Aug 17 21:40:40 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 17 21:40:40 2023 +0000"
      },
      "message": "Merge changes I3110de53,I0dc549eb into main\n\n* changes:\n  Dim correctly in screenshots on some devices\n  Delete genTextures and deleteTextures from RenderEngine\n"
    },
    {
      "commit": "c3a17824aed485229dba17819e5ee4e4ecf4db1e",
      "tree": "1dd2cccac1a7245fecffa15884dcc70c8c6de5dc",
      "parents": [
        "e2b61c6265d4cda693daeb1313d0aaab48874452"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Wed Aug 16 14:56:30 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Thu Aug 17 16:47:20 2023 +0000"
      },
      "message": "Delete genTextures and deleteTextures from RenderEngine\n\nThese methods are no-ops with skia and cause thread bounces in practice\nso just remove these.\n\nBug: 270628071\nTest: builds\nChange-Id: I0dc549eb7c9a0d94def5a8727322ed49b010ef1f\n"
    },
    {
      "commit": "d7f3f3a215d155908d061845d3691485c76ee0ed",
      "tree": "3d033676b7aa1164f4f10954f1f3e09a0ede1fd2",
      "parents": [
        "eabdb61550c2bcb678c61aed03d4a6d1376748f7",
        "f6918d4ab8c613302c3eda0b7be15674aceb8610"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Wed Aug 16 15:39:10 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 16 15:39:10 2023 +0000"
      },
      "message": "Merge \"Refactor `isHdrDataspace` function.\" into main"
    },
    {
      "commit": "f6918d4ab8c613302c3eda0b7be15674aceb8610",
      "tree": "a36f75052b6bb397b2b2a7ac6ead214b79939d30",
      "parents": [
        "2063dd5dd041679a955c764a418c2ebc89a61f7b"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Mon Aug 07 15:28:30 2023 -0700"
      },
      "committer": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Tue Aug 15 21:26:49 2023 -0700"
      },
      "message": "Refactor `isHdrDataspace` function.\n\n- Rename it to `getHdrRenderType` and return a ternary enum.\n- return the hdr type that we want to treat based on the dataspace,\n  format and hdr/sdr ratio.\n- pixelformat is optional, in case no source buffer but there is a\n  source color.\n- hdr/sdr ratio is 1.0f by default, render rengine doesn\u0027t take care\n  this param.\n- The ternary enum has 3 types: just SDR; generic hdr, namely those we\n  need to tonemap; display hdr, namely those self-promoting to HDR by\n  using extended brightness API.\n\nBug: 261485283\nTest: HdrRenderTypeUtils_test, TextureViewTest#testSDRFromSurfaceViewAndTextureView, OutputLayerUpdateCompositionStateTest\n\nChange-Id: I281687a010bbf5bff555f6fa893002c2a9b324d1\n"
    },
    {
      "commit": "7f019199c94d15923704bb0e2896c6147dc38998",
      "tree": "8be5a7a570edb704beefcdda0e79cca4c049b083",
      "parents": [
        "31f6b727aae2758f622a2058aa2558e67b3b8e92"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Tue Aug 08 20:39:01 2023 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Aug 11 20:18:01 2023 +0000"
      },
      "message": "Use rect instead of four int frame values for WindowInfo\n\nTest: Builds\nBug: 290795410\nChange-Id: Iff104ad14c5da792f32a68d25145b936f6ea71f6\n"
    },
    {
      "commit": "4d5e98a11f61311daf50b65c30d68bbfdfae4836",
      "tree": "55a6b9cf31d180115a127c9a2342d68e9a35f45d",
      "parents": [
        "8731ebd2d633fed178bb1ed7bf0186a9770dc2ee",
        "c1d19d7cd16cee779f7984b690fb8629d3a1bb29"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Aug 11 16:47:44 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 11 16:47:44 2023 +0000"
      },
      "message": "Merge \"[sf] Add bufferless surfaceframe to frametime in new fe\" into main"
    },
    {
      "commit": "c1d19d7cd16cee779f7984b690fb8629d3a1bb29",
      "tree": "8e713e995656427dcbbf3586e24042de6a963c2f",
      "parents": [
        "6f4d2f5423e74ac31a79e3a112a3b31bfb5d2015"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Aug 10 12:35:11 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Aug 10 14:02:40 2023 -0700"
      },
      "message": "[sf] Add bufferless surfaceframe to frametime in new fe\n\nBug: 238781169\nTest: presubmit\nTest: crystall ball perftests via forrest\nChange-Id: Ic8cae03e732e41de26d7a530ef06b902b064056c\n"
    },
    {
      "commit": "994761f2ddc1b266158f72ef3d15c153bceeb9f1",
      "tree": "905d8526bcad96654ac1d7298d994c2095ac5dce",
      "parents": [
        "142f9c55ffef6b5ace98b7c58e357725c720a251"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Aug 04 21:50:55 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Mon Aug 07 14:18:29 2023 +0000"
      },
      "message": "Remove Y410 fields from SurfaceFlinger\n\nEver since RenderEngine started to use skia this was never used. It will\nhave been three releases since then, so finish cleaning this up.\n\nBug: 130025362\nTest: builds\nChange-Id: Ib0328903e04d754e08b6960949898b282e3d529b\n"
    },
    {
      "commit": "457e69f03a762176fa2dd83391c5c7abda967ce3",
      "tree": "9a0346767819355c5972153f17332a989acd4658",
      "parents": [
        "30054976b5e4a2b1eb9b27fee6cd394538bc9206",
        "c1dbfcb35a5b2720afb3e5135ad6f7850159422d"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Aug 04 20:57:12 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 04 20:57:12 2023 +0000"
      },
      "message": "Merge changes I9763eb22,I055d221b into main\n\n* changes:\n  Avoid blurring and rounded corners without EGL_EXT_protected_content\n  Remove redundant check for blurRegions to force client composition\n"
    },
    {
      "commit": "c1dbfcb35a5b2720afb3e5135ad6f7850159422d",
      "tree": "cdb88bdbbd816c801006f2a8aadd1cbca7e55b99",
      "parents": [
        "9f64cc89030657b250977e6d0ebeeb5482a4bcda"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Mon Mar 21 16:48:10 2022 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Aug 04 14:51:02 2023 -0400"
      },
      "message": "Avoid blurring and rounded corners without EGL_EXT_protected_content\n\nIf the GPU does not support protected content, avoid forcing client\ncomposition for protected layers. This means removing rounded corners.\nIt also means avoiding blurring when it would require blurring a layer\nwith protected content.\n\nBug: 196271643\nTest: manual (Netflix, YouTube, ExoDefault) with modified\n      RenderEngine::supportsProtectedContent()\nChange-Id: I9763eb22884e611568b36b2e221ee6d75ec3363e\n"
    },
    {
      "commit": "9f64cc89030657b250977e6d0ebeeb5482a4bcda",
      "tree": "90afea2cc5225d1911afcd4a6b31f223a9cabedf",
      "parents": [
        "4c1b3b73463318ccaedd6864b30cf7f5047de4c2"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Aug 04 12:26:30 2023 -0400"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Aug 04 14:50:56 2023 -0400"
      },
      "message": "Remove redundant check for blurRegions to force client composition\n\nIf there are blurRegions on a Layer, we *should* force client\ncomposition, but this is already handled in\nOutput::updateCompositionState +\nOutput::findLayerRequestingBackgroundComposition. The check on Layer is\nredundant, so remove it.\n\nMoreover, the check on Layer doesn\u0027t do enough. It doesn\u0027t handle blur-\nbehind, and it doesn\u0027t force the Layers below to use client composition,\nwhich is also necessary.\n\nThis allows us to remove blurs and client composition from protected\nsurfaces on devices that do not have EGL_EXT_protected_content. (See\nI9763eb22884e611568b36b2e221ee6d75ec3363e.)\n\nBug: 196271643\nTest: OutputUpdateAndWriteCompositionStateTest\nChange-Id: I055d221b1fcb36fb5fbc6747c353d3fb72f4d684\n"
    },
    {
      "commit": "c638470eccb89b0ec9594f968d9ccc07c5a6854b",
      "tree": "3ad48f298578d2c85fb92171e9e1d5e52397c962",
      "parents": [
        "774bcbe5c307aeb0e61203294948709fad2b4b45"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Jul 31 12:22:20 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Jul 31 19:56:06 2023 +0000"
      },
      "message": "[sf] respect parent alpha when calculating blur radius and blur regions\n\nFixes a regression caused by breaking front end and composition engine dependencies.\n\nTest: atest BlurTests\nBug: 293532283\n\nChange-Id: If9962a46bc7dba3b8f4256ae23307094a9c93290\n"
    },
    {
      "commit": "e9ee0003a7324aeffdcab5e8f6d8ed19198ad9b2",
      "tree": "c19d0febe37e1ea68a41fa3a6a31530542b10ee5",
      "parents": [
        "9f32e7dfb916b21dfa560a584c4b7f10568b9d7f"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Jul 01 03:14:51 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Jul 01 13:17:29 2023 +0000"
      },
      "message": "Revert \"[sf] enable new sf frontend\"\n\nThis reverts commit a5d3d28952a66de3a8c5629ca6a6678e88e92b47.\n\nReason for revert: b/289421905\n\nChange-Id: I86b9677b8a1d73f70f04247a7a0c66314411b867\n"
    },
    {
      "commit": "3cc15a4f1d6cf72afbb4d883e038ebf9108c78a9",
      "tree": "f89bcaf2ac94e9450822b22f9f79fb95c6ff61fe",
      "parents": [
        "b5d886df21cdf048349edb3636c68597d24045cd"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Jun 30 06:20:22 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Jun 30 07:24:03 2023 +0000"
      },
      "message": "[sf] add debug dump for new front end\n\nTest: window type populated correctly in sf dump\nTest: dumpsys SurfaceFlinger\nBug: 238781169\nChange-Id: I86e475393c8b157496862fa34420c13fc80d681c\n"
    },
    {
      "commit": "30db640d22bcfaa25d17c7c7bab8fa179d060a75",
      "tree": "ff14cbf5d86e090c0e82133f1a66b3f22708216b",
      "parents": [
        "12ccf5f9162676c9adeedcec2cbe859ff0b9bfa9"
      ],
      "author": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Mon Jun 26 18:56:51 2023 +0000"
      },
      "committer": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Mon Jun 26 17:53:23 2023 -0700"
      },
      "message": "Revert \"SF: Introduce struct surfaceflinger::Config\"\n\nRevert submission 23423266-SF-Config\n\nReason for revert: UIBench Jank Regression reported in b/288665387\n\nReverted changes: /q/submissionid:23423266-SF-Config\n\nChange-Id: I0942f99fec1f211e607e3ff44da2dfa0e30d34c2\n"
    },
    {
      "commit": "f0049a0421e3b2077a533800d170d5817ef059a5",
      "tree": "cca3ece5d0db1b13507bb60b0f8ccb2517e89f12",
      "parents": [
        "587c4eaf760811c0acb70adb6d35fcb47d96c073",
        "8117c1a78d49c3e02f2ece22b994ace03c200153"
      ],
      "author": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Fri Jun 23 17:24:45 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 23 17:24:45 2023 +0000"
      },
      "message": "Merge \"SF: Introduce struct surfaceflinger::Config\""
    },
    {
      "commit": "8117c1a78d49c3e02f2ece22b994ace03c200153",
      "tree": "40f61d89dc36420096c9b1d68bc551fc199e7ee0",
      "parents": [
        "d7ce14f5379c9e884b4262bf1fcf9f4eebecf938"
      ],
      "author": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Wed May 24 15:12:15 2023 -0700"
      },
      "committer": {
        "name": "Lloyd Pique",
        "email": "lpique@google.com",
        "time": "Thu Jun 22 17:19:28 2023 -0700"
      },
      "message": "SF: Introduce struct surfaceflinger::Config\n\nThis pulls out all the individual configuration constants read by\nSurfaceFlinger in its constructor, and moves them to a new\nsurfaceflinger::Config structure which is passed to the constructor.\n\nAll the initialization is the functionally the same, a few values turned\nout to not be used, so were removed (mMaxGraphicBufferProducerListSize,\nmGraphicBufferProducerListSizeLogThreshold). Otherwise all properties\nread for the new structure consistently use android-base/properties.h to\nread them.\n\nTo keep the argument count down, the SurfaceFlinger factory argument to\nthe constructor was moved to be stored in the new Config structure.\n\nAs a result of the change, SurfaceFlinger now only has one constructor.\nThe tests were using the other constructor (passing\nSurfaceFlinger::skipInitiailization) to skip over the property reads to\nhelp ensure a hermetic configuration of SurfaceFlinger. The tests can\nnow instead create create a minimally configured Config structure, and\npass that the structure.\n\nThe other changes were then to switch over to using the values in the\nConfig structure, both internally to SurfaceFlinger, as well as in other\nfiles including Layer.cpp and DisplayDevice.cpp. In some cases, those\nchanges required altering the arguments to the function being called to\nobtain the values, since originally some of the values where static\nmember data in SurfaceFlinger.\n\nThere were similar changes required for the tests and the fuzzers, to switch over,\nincluding how some tests mutated the configuration values so that they\noverall coverage was the same.\n\nNo new tests/fuzzing was added, though it should now be easier to extend\ncoverage.\n\nTest: atest libsurfaceflinger_unittest\nBug: None\n\nChange-Id: I8dc3c2317a92b256e58ec45190e24463032c2f8e\n"
    },
    {
      "commit": "aeebeb4eca5967d2a893ac09464499301936a134",
      "tree": "c602306029e48712681528bb7198787a9c9a972e",
      "parents": [
        "8be70cb9f0c12c70f75866ffea9eca7654bc5c38"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Jun 13 19:53:03 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Jun 22 15:24:33 2023 +0000"
      },
      "message": "Use a strongly typed Pid in WindowInfo\n\nBug: 286428012\nTest: presubmit\nChange-Id: I6a3572ff10b259feae74863c0203bb5f085f233f\n"
    },
    {
      "commit": "042a7a0b193b832dbe080358bf9c1c7a78c16b95",
      "tree": "f6a9a9612c4a33386e1f8bec119caad5a0d1e561",
      "parents": [
        "695dd0de28e071b9d6f140228208c275b093e93e",
        "8a5c41d38c9580cec6d87f1170e0b03973ac9254"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jun 21 21:57:08 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 21 21:57:08 2023 +0000"
      },
      "message": "Merge \"Use a strongly typed Uid in WindowInfo\" into udc-qpr-dev"
    },
    {
      "commit": "8a5c41d38c9580cec6d87f1170e0b03973ac9254",
      "tree": "ac336a82fb6ae222b5c694fd5868ce669219872f",
      "parents": [
        "6778bd40c51ffa583f0533d00d2c7230a630b20c"
      ],
      "author": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Thu Jun 08 19:13:46 2023 +0000"
      },
      "committer": {
        "name": "Prabir Pradhan",
        "email": "prabirmsp@google.com",
        "time": "Tue Jun 20 19:43:39 2023 +0000"
      },
      "message": "Use a strongly typed Uid in WindowInfo\n\nBug: 286428012\nTest: presubmit\nChange-Id: I039e2892274b293eeea4a167d748234a4170541e\n"
    },
    {
      "commit": "d1f749836471e7ca43c357c8a34d2dfcb11e8e11",
      "tree": "eea4148b92d19f3d6744de51cda91ce4d1f78682",
      "parents": [
        "02deea604821f351e2d9a21f2b2a7572df0dc76e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Jun 15 20:16:51 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Jun 15 20:39:34 2023 -0700"
      },
      "message": "[sf] write transaction trace to disk on error\n\nFlush always on transaction traces to disk when we detect\nerrors like: - out of order buffer updates or cycles in\nthe layer hierarchy so it easier to investigate issues\nfrom dogfood (ref bug b/272189296)\n\nBug: 282110579, 238781169\nFixes: 277265947\nTest: presubmit\n\nChange-Id: I22dbd7cd43d94763ac941f0c3871dc7e4ea8db8d\n"
    },
    {
      "commit": "5a3e356fe086e3950a87a0fe93a02b7cefb50737",
      "tree": "0242685ee80d04067eca10b01a7b74f46fc715f2",
      "parents": [
        "e632c7cbd2ee0483b48bd4924aff2ff1375a7b10"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Wed Jun 07 10:32:08 2023 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Fri Jun 09 16:29:18 2023 +0000"
      },
      "message": "SF: improve RenderThread jank classificaion\n\nMark UI frames that didn\u0027t make it to their expected presentation\ndue to RenderThread animations as dropped.\n\nScreenshot from Perfetto: https://screenshot.googleplex.com/3pQuNaDYAhHLYu7\n\nBug: 210605870\nTest: manual\nChange-Id: Ibc91bcaac2f9296ec0bddd5deebb4289c5b5bf7e\nMerged-In: Ibc91bcaac2f9296ec0bddd5deebb4289c5b5bf7e\n"
    },
    {
      "commit": "005398be04c42105309362de2607bad7624391de",
      "tree": "06633a8e242dcb8134c33952901a50fbae57858d",
      "parents": [
        "5b54e9806db28552d1af4c7d7a77d1bd612c8f90"
      ],
      "author": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Mon Jun 05 13:59:41 2023 -0700"
      },
      "committer": {
        "name": "Ady Abraham",
        "email": "adyabr@google.com",
        "time": "Tue Jun 06 03:00:09 2023 +0000"
      },
      "message": "SF: add traces for latch unsignled\n\nAdd more debug information to traces to determine SF would\nnot try to latch an unsignaled buffer.\n\nTest: manual\nBug: 285901173\nChange-Id: I60a19fe889ce7c052ea4f3fc8f10771494d330aa\n"
    },
    {
      "commit": "d8f78587b72f2a21426292b4342491e1f3888f98",
      "tree": "b432e1f0a546261cf892355a641ebbd8f4e8e537",
      "parents": [
        "37ffeb876421e31ee87432d5b946bdcb4061baa2",
        "eb2e8ceca9ca8b0fd280e854511294f87d586c28"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu May 11 17:15:00 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu May 11 17:15:00 2023 +0000"
      },
      "message": "Merge \"[sf] Properly update clones of clones\" into udc-dev am: 12cda385cf am: eb2e8ceca9\n\nOriginal change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/23137686\n\nChange-Id: Ibe689fc099f403117dd3e60ee191d9f9b17ea691\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "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": "85d4b228a98982c8beb9eb8b1787f38fdf06a02b",
      "tree": "1b05e5973a2a6f12b3da4dea9f9db86f84376695",
      "parents": [
        "ca7b3dc793cfb1a9f251e411b1a23b503c5a6c29"
      ],
      "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:07:46 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\n"
    },
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "194ff39de17ef4596b2b6ce1520516d7cc10fde6",
      "tree": "c4b412302c8bb831c1d13b95b1a4fa03e72667cb",
      "parents": [
        "a6e9dd2cb4da7f91f2379b44d3320cdb0f472f7c"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@fb.com",
        "time": "Thu Sep 08 16:19:29 2022 -0700"
      },
      "committer": {
        "name": "Ying Wei",
        "email": "whisperwing@google.com",
        "time": "Thu Mar 30 18:01:58 2023 +0000"
      },
      "message": "SurfaceFlinger: add more thread-safety annotations.\n\nAs part of debugging a crash in SurfaceFlinger, we became suspicious of\nmarkLayerPendingRemovalLocked because it wasn\u0027t annotated with thread\nsafety annotations. This ended up being a red herring, because\nmStateLock is held on all paths into that function. Add some helpers to\nMutexUtils.h to require/assert mutexes, and use them to sprinkle some\nthread safety annotations to make things more clear.\n\nCherry-picked from aosp/2212955\n\nBug: 271644537\nTest: m surfaceflinger\nChange-Id: Ib48433765bb6ffcb351ec10cd5bc89e254b48545\n"
    },
    {
      "commit": "d6e0bae884ce7599a4a712c3c8703b93ffc406d2",
      "tree": "0c63af77707d85b33f14ea99d5af91e66e0294dc",
      "parents": [
        "314a57462cf037ad847ef611730fe8659db40f01",
        "963049b5ff733bc35933d5c565a35f2f7af09f88"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Fri Mar 24 17:02:15 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 24 17:02:15 2023 +0000"
      },
      "message": "Merge \"Rename Sdr/Hdr to Hdr/Sdr internally to get avoid of confusion.\" into udc-dev"
    },
    {
      "commit": "963049b5ff733bc35933d5c565a35f2f7af09f88",
      "tree": "cd6abde355a730bacb77bc881a6f334d1d25a28d",
      "parents": [
        "bb9ff7f5b943214c6946af113c9d55b28ccb15ce"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Thu Mar 23 14:06:21 2023 -0700"
      },
      "committer": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Thu Mar 23 21:40:40 2023 -0700"
      },
      "message": "Rename Sdr/Hdr to Hdr/Sdr internally to get avoid of confusion.\n\nBug: 267350616\nTest: builds\nChange-Id: I75bb485f01ae2358c77133767f01cb63f8eda6f1\n"
    },
    {
      "commit": "b76d99abc7c41c8215c73aa9e2bc4b99db3f1732",
      "tree": "92ea7c58cc0acd19aecda0de164d27c7bfb7f111",
      "parents": [
        "401615e05ff418263df046e1a90fbfe219fe8f0a"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sun Mar 19 18:22:31 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Mar 21 02:32:23 2023 +0000"
      },
      "message": "[sf] Add support for transform hint in new front end\n\nBug: 238781169\nTest: atest VulkanPreTransformTest --rerun-until-failure\nChange-Id: Iececcce4101f1a8875ba20e2bfffad1775964ed1\n"
    },
    {
      "commit": "f6221af925600c994d423c816ab1beae7997ce59",
      "tree": "d694831704b761b604fc7dbd67944bc95174dc54",
      "parents": [
        "3ea01ea995423595895c4c3994d7364b95f7d038",
        "fed7c12150bcef08ddfd5e77e38a4fdf6a9c971a"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Mar 20 21:01:28 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 20 21:01:28 2023 +0000"
      },
      "message": "Merge \"Take into account surface insets when replacing touch region.\" into udc-dev"
    },
    {
      "commit": "fed7c12150bcef08ddfd5e77e38a4fdf6a9c971a",
      "tree": "37a7aa83fe7cab780e7d2efdc03dfb71cb5e984f",
      "parents": [
        "2c1f96e0d825463dc1e420982d31d77bd442d9e7"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Mar 18 01:54:43 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Mar 20 21:01:21 2023 +0000"
      },
      "message": "Take into account surface insets when replacing touch region.\n\nWhen SurfaceFlinger computes window frames, the surface insets are\nclamped to the input bounds. But when replacing the touchable region,\nthe surface insets are not taken into account.\nThis CL adds consideration for surface insets, so that touchable region\nis computed correctly. This also fixes a ListPopupWindowTest on freeform\nwindowing devices.\n\nTest: atest SurfaceFlinger_test on freeform windowing emulator and\naosp_cf_x86_64_phone target\nFixes: 272786078\n\nChange-Id: Id8082cb1b39280e846c2bf5a36315df68d37d2e6\n"
    },
    {
      "commit": "92a3d2c33a1a87dce16f0c0f1044aa3ead9267a0",
      "tree": "b8d0b993d26fadbc78179b044400eeeca80489e8",
      "parents": [
        "a926f32342f78d639707c2ff03964a0f57836181",
        "787aa7843aa5f10ce1b5a631d4afad392fc0dbaf"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Mar 18 01:46:22 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 18 01:46:22 2023 +0000"
      },
      "message": "Merge \"[sf] add more debug logs to identify layer leaks\" into udc-dev"
    },
    {
      "commit": "787aa7843aa5f10ce1b5a631d4afad392fc0dbaf",
      "tree": "4a39ddd645b3b46d79aa7751150efa5fc04c66ba",
      "parents": [
        "66eb2a68c4d7d22bdaa919d15c61025411070b61"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Mar 17 13:46:46 2023 -0700"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Mar 17 13:50:29 2023 -0700"
      },
      "message": "[sf] add more debug logs to identify layer leaks\n\nBug: 272200348\nTest: logcat\nChange-Id: Icdb37a820b2028e69ff3b1a2e05c8bc9e7dd7dd4\n"
    },
    {
      "commit": "2b1b429c49ff59027578d5f046cba4082adcc7dc",
      "tree": "db2f020555ad01be7998f19916f18e73860e3b7c",
      "parents": [
        "95d9bdd837e31e9fc8cce5047a763240f99c5874"
      ],
      "author": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Tue Mar 14 16:47:39 2023 +0000"
      },
      "committer": {
        "name": "Sally Qi",
        "email": "sallyqi@google.com",
        "time": "Wed Mar 15 01:23:49 2023 +0000"
      },
      "message": "Skip transaction processing if the surface damage stays the same in Layer::setSurfaceDamageRegion.\n\nBug: 273143519\nTest: builds\nChange-Id: Id4df40e869c2735ab7049eb50f07b81f56024001\n"
    },
    {
      "commit": "b5a1abe7801173dd5bbaea8191081714f8af8221",
      "tree": "39a1d71ce76a67e3b2b1a10d62bb3c430f48c1dd",
      "parents": [
        "7851dca9c8f8a1c81c1932ef3f6af27b3a50e1bf",
        "40d02283f3d6f0cec1aac43cece02d57c26c6ac2"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Sat Mar 04 03:32:44 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 04 03:32:44 2023 +0000"
      },
      "message": "Merge changes If037270c,I120e89cc into udc-dev\n\n* changes:\n  [sf] input snapshot fixes\n  [sf] use snapshots to update layer history\n"
    },
    {
      "commit": "d8b1c1d0237d69f2089c7be20924f8caddebc884",
      "tree": "ad15acd63f87c88f1817d69e7469bedbb56644ad",
      "parents": [
        "b2fd17a7bafd9f6540ee078434396a4e8afab6fe",
        "b2158ee427c34e4b374dc4d8e4f2eb9f65c15ae2"
      ],
      "author": {
        "name": "Ram Indani",
        "email": "ramindani@google.com",
        "time": "Fri Mar 03 22:01:17 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 22:01:17 2023 +0000"
      },
      "message": "Merge \"[SF] Set RefreshRateOverlay enable status to HWC\" into udc-dev"
    },
    {
      "commit": "ef68d6d40b0ccaf1ce1ce7fbb31f8707144cb227",
      "tree": "4a20cc6b92cb8734daae666de6785bbf685692d4",
      "parents": [
        "6b73363916925a3ba80ea1b460590c943b672e89"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Feb 28 06:18:27 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Mar 03 20:20:46 2023 +0000"
      },
      "message": "[sf] use snapshots to update layer history\n\nAvoid directly accessing layer drawing state from layer\nhistory, instead provide a snapshot of the layer data\nneeded.\n\nTest: atest android.graphics.cts.MatchContentFrameRateTest android.graphics.cts.SetFrameRateTest\nBug: 238781169\nChange-Id: I120e89cca70beb9811a8ee9c5c3203f2a5cfabb4\n"
    },
    {
      "commit": "43e9083b63cb5e5a2609569a40990ed6b0748dd6",
      "tree": "2fd259a3aba0a9994127372d78bbca8ce0523fde",
      "parents": [
        "0de5f01dfbf7cd169dcc81df6ece9437330daed8",
        "1af0fb6ed00132a4f9c8f45eae420a7f552cd37a"
      ],
      "author": {
        "name": "Leon Scroggins",
        "email": "scroggo@google.com",
        "time": "Fri Mar 03 18:53:24 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 18:53:24 2023 +0000"
      },
      "message": "Merge \"Rename \"leader\" display to \"pacesetter\"\" into udc-dev"
    },
    {
      "commit": "1af0fb6ed00132a4f9c8f45eae420a7f552cd37a",
      "tree": "57fb3288c30b7ff61166444f45e7786ba9b48e73",
      "parents": [
        "5b6ca88e1444ebba97db26a226c9b3a8f169062b"
      ],
      "author": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Thu Mar 02 14:21:44 2023 -0500"
      },
      "committer": {
        "name": "Leon Scroggins III",
        "email": "scroggo@google.com",
        "time": "Fri Mar 03 10:38:06 2023 -0500"
      },
      "message": "Rename \"leader\" display to \"pacesetter\"\n\n\"Leader\" became ambiguous once we began to consider that there are two\northogonal concepts that \"leader\" seems to imply:\n- The display with the highest refresh rate (originally called \"leader\")\n- The display that is refreshed first in a given update (assuming it\u0027s\n  being updated)\n\nTo better distinguish between the two, we\u0027ve come up with new names:\n- pacesetter\n- front runner (for the second concept)\n\nChange uses of \"leader\" to \"pacesetter\" throughout SF and Scheduler.\n\nBug: 255635821\nBug: 256196556\nTest: m\nChange-Id: Ia02c35dd442d310695f1ce873fbaf30910c12419\n"
    },
    {
      "commit": "b2158ee427c34e4b374dc4d8e4f2eb9f65c15ae2",
      "tree": "f4e4c6f0db109b89cea00c42d7817ac63d87712b",
      "parents": [
        "ff8db1b9b85fa0e125a017e040b2e20e7b5049cf"
      ],
      "author": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Mon Feb 13 20:29:59 2023 -0800"
      },
      "committer": {
        "name": "ramindani",
        "email": "ramindani@google.com",
        "time": "Fri Mar 03 03:53:10 2023 +0000"
      },
      "message": "[SF] Set RefreshRateOverlay enable status to HWC\n\nUpdate the RefreshRateOverlay with the refresh\nrate received from the HWC callback.\n\nTest: Device boots, existing overlay works with SF\nmanual test with the patch of the HWC\nIbc80d66eae6b21c3cf84d35fa819e97ccc509ede\n\nBUG: 202734676\nChange-Id: I94bda4d054d878b173eb594d5c71e2f83459a20a\n"
    },
    {
      "commit": "c09c023a9bfc3c34be38cf95d1691fd712af2d68",
      "tree": "0b5eb3a5e2f67ca35a8a580b1807b999cc46ef2d",
      "parents": [
        "a0cff0958d6ab1b3c83a6ec39642680c1afd7942"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Mar 02 03:22:35 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Thu Mar 02 03:26:48 2023 +0000"
      },
      "message": "[sf] only update the last latch time if the layer has a buffer\n\nIf we apply a transaction that does not latch a buffer, we\nincorrectly updated the last latch time. In the next vsync,\nif we presented a buffer late, we would misclassify the\njank as buffer stuffing.\n\nFix this by only updating the latch time if the layer has\na buffer.\n\nTest: verify in perfetto traces\nFixes: 270041584\nChange-Id: I423a28803a2660ada80ef554469f3977c389fbfa\n"
    },
    {
      "commit": "a0cff0958d6ab1b3c83a6ec39642680c1afd7942",
      "tree": "9c80f8a231647f4713bee771569a211cef289f78",
      "parents": [
        "854b864e51544d981c743c4e8b88ccd21e2ad8f4",
        "c5a5b6e0b3b8a14fb14e31985e6f533dd9f8edf7"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Feb 28 03:03:16 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 03:03:16 2023 +0000"
      },
      "message": "Merge changes I1c9370fd,Ibe54154b,I9d75ee51,I68818430 into udc-dev\n\n* changes:\n  [sf] support region sampling with new frontend\n  [sf] provide a unique id for snapshots\n  [sf] write layer snapshots to layer trace\n  [sf] fix boot animation with new frontend\n"
    },
    {
      "commit": "ea6ff8192014357d3e720263bee60444e1f8f1d7",
      "tree": "438683674562186b098735759771c152314afee1",
      "parents": [
        "a7caedcbabb35443a7d7c0d0ef4aef6fa8f5af8e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Feb 27 17:41:39 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Feb 27 19:48:32 2023 +0000"
      },
      "message": "[sf] write layer snapshots to layer trace\n\nSwitch from using drawingstate to layer snapshots\nto generate layer trace if new front end is enabled.\n\nTest: atest FlickerTests\nBug: 238781169\n\nChange-Id: I9d75ee51ba77763db6fdd4c29f55e3fc498b683c\n"
    },
    {
      "commit": "b304b2f1177251c5deb904306ba5ad820e1c119d",
      "tree": "46251b8670b80de40f4c5526b82c7b7469ddf733",
      "parents": [
        "26b34d62057135dd0dddc3396b401fe77f0d404a",
        "fccd6362efb3c58c72ada640b46580af03bcdd76"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Feb 27 02:46:29 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 02:46:29 2023 +0000"
      },
      "message": "Merge changes Iddd5754a,I245702f8,I7abe5e9c,Id9ff8a03 into udc-dev\n\n* changes:\n  [sf] destroy unreachable snapshots\n  [sf] fix snapshot updates for mirror layers\n  [sf] Add fps, meta data and opaque to layer snapshots\n  SF: Frontend fixes for issues surfaced by SurfaceFlinger_test\n"
    },
    {
      "commit": "d47bceea5a8da823b38eb5ca71bb8206b95c1958",
      "tree": "2a3af01cf6cf4f5970aee757ba54cd5b6436ff48",
      "parents": [
        "7c41bf2e08cf331dbd1319fe91a0d26a7304d00e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Feb 24 18:08:51 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Feb 24 18:08:51 2023 +0000"
      },
      "message": "SF: Frontend fixes for issues surfaced by SurfaceFlinger_test\n\n- separate color and bgcolor in layer state so we don\u0027t set a color\n on a layer without a buffer\n - avoid using legacy layer state when latching a buffer\n - fix callback issue where invisible or offscreen layers were not invoking\n the callbacks\n - pass in layer snapshot for trusted presentation state\n - fix a screenshot issue where the root layer was skipped\n - pass in framerate changes to layer history\n\nTest: presubmit\nTest: atest SurfaceFlinger_test with new fe\nBug: 238781169\n\nChange-Id: Id9ff8a036dc283e21a05985c1c01ebd070b1df24\n"
    },
    {
      "commit": "3fcbb3bf76bf220eeb0dd0d91a552f27dee8e73a",
      "tree": "96ca452b22e5137b2a20f93d36524eab1d2667c9",
      "parents": [
        "3e2f4794533bd4cc007ecbf3e73a9bd4c4a7b79b",
        "328a831c113c88541d637a9a0eafd329d72ac14b"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Feb 24 16:58:31 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 16:58:31 2023 +0000"
      },
      "message": "Merge \"Clear TrustedPresentationListener when a new listener is set\" into udc-dev"
    },
    {
      "commit": "a156f48c32eac7e11d37700fdbfcdc3a54d65b78",
      "tree": "d79fbe65ccf42e273983103448e5a9df2df01c19",
      "parents": [
        "7c41bf2e08cf331dbd1319fe91a0d26a7304d00e"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Feb 22 00:23:38 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Wed Feb 22 02:40:39 2023 +0000"
      },
      "message": "[sf] update latch time only for layers that will not be latched\n\nLatching happens after the transactions are committed, so fix an\nissue where we passed in the incorrect latch time for buffer layers\nthat was used to classify jank.\n\nNote: this will probably cause a perf regression but this is fixing\nan incorrect jank classification caused by\nIe211aa3bd5821f6052cf84a62a2e245132a19d90\n\nBug: 270041584\nTest: presubmit\nChange-Id: I632a8ee6a1ed804a17a001e87c06e617ae361b25\n"
    },
    {
      "commit": "f4af03ed9592dae0f2355dfff92c3c75c1b980d4",
      "tree": "2bacf9cb633a2b8eb445ad845b99493ce0939899",
      "parents": [
        "5fc135bf77a1d4379aca32d2b400cd3ff864d6fc"
      ],
      "author": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Sat Feb 11 00:25:24 2023 +0000"
      },
      "committer": {
        "name": "Alec Mouri",
        "email": "alecmouri@google.com",
        "time": "Fri Feb 17 17:51:42 2023 +0000"
      },
      "message": "Add CachingHint into SurfaceFlinger\n\nSome system layers may need to be excluded from surfaceflinger caching\nfor a variety of reasons, including power or image quality\nconsiderations. This provides a mechanism for those system layers to\nnever be cached on the GPU.\n\nBug: 259311918\nTest: libcompositionengine_test\nTest: run test app and inspect planner state\nChange-Id: I35418ad5a41cb2546e3b27b0af290bf3c31a0180\n"
    },
    {
      "commit": "328a831c113c88541d637a9a0eafd329d72ac14b",
      "tree": "b84c2245c50f8b4dd8b3a424697536a5c766f804",
      "parents": [
        "5fc135bf77a1d4379aca32d2b400cd3ff864d6fc"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Jan 26 21:17:52 2023 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Feb 17 14:12:48 2023 +0000"
      },
      "message": "Clear TrustedPresentationListener when a new listener is set\n\nIf a TrustedPresentationListener is overwritten for a Layer, the last\ntrusted presentation states need to be cleared.\n\nIt also needs to make sure composite is called after setting a\nTrustedPresentationListener since the layer may already be in the\npresented state and there\u0027s nothing new to compose. We need to make sure\nthe presentation state is computed at least once after setting the\nTrustedPresentationListener\n\nTest: TrustedPresentationCallbackTest\nBug: 256993331\nChange-Id: I5cd344e9609d96c961fc70093ea705ee48f46817\n"
    },
    {
      "commit": "b9aadd30183ae763a5f4ac92dcc216c8a1663fe5",
      "tree": "dfd83da5573efd9f0685c3a1073eab54569fc265",
      "parents": [
        "a0b010330ef96850ee0e8544699648db5f4d5919",
        "545da0e1040dabe238140c2ccdced5b3d60b0366"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Tue Feb 14 19:58:22 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 19:58:22 2023 +0000"
      },
      "message": "Merge \"Some fixes to TrustedPresentationListener\""
    },
    {
      "commit": "bd0b40589bc30305ea5812f33cb30e2cd4602bdb",
      "tree": "1fd89e2c312f94b85000ff2306a59e23f9dfdda5",
      "parents": [
        "a8cafbfb32bf9e14e6df9a68e87f74906e1ca30a",
        "7fe69edeb671e90ea8a7a84e7f3ec181283b0dcd"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Tue Feb 14 17:58:37 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 17:58:37 2023 +0000"
      },
      "message": "Merge \"SF: Pass latch time for bufferless surface frames\""
    },
    {
      "commit": "7fe69edeb671e90ea8a7a84e7f3ec181283b0dcd",
      "tree": "1c4a9c2c76d52ad6b1c571ea8f4c609f4e3c5b51",
      "parents": [
        "412fb031e48f18b56461808f335118da854b91e9"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Feb 13 10:13:26 2023 -0800"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Mon Feb 13 11:05:10 2023 -0800"
      },
      "message": "SF: Pass latch time for bufferless surface frames\n\nLatch time is used to classify jank type as BufferStuffing.\nThis jank classification does not  count as missed frames.\nLayers without buffers do not pass in a latch time to the\nframetimeline logic. Fix this inconsistency so we do not\nincorrectly report missed frames for missed layer updates\ndue to buffer stuffing.\n\nTest: check perfetto traces and see leashes are also classified as\nbuffer stuffing\nFixes: 266666415\n\nChange-Id: Ie211aa3bd5821f6052cf84a62a2e245132a19d90\n"
    },
    {
      "commit": "3af0ec085d28bb2a67525b07e3664d852386ba27",
      "tree": "fd5a8cfa8674697e729d82d303e76e8bdd294510",
      "parents": [
        "c3cea29f1fb80e8c7412a8b75ec0d814d7f84bed"
      ],
      "author": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Feb 10 04:13:48 2023 +0000"
      },
      "committer": {
        "name": "Vishnu Nair",
        "email": "vishnun@google.com",
        "time": "Fri Feb 10 23:21:58 2023 +0000"
      },
      "message": "SF: Introduce new frontend logic\n\nRe-landing changes with perf regression fix. We were updating the geometry every frame. \n\nChanges to allow creating layer snapshots using the new\nand legacy frontend logic. Switching the logic is controlled\nby debug flags. By default SF will continue to use the\nlegacy logic so there should be no functional changes with\nthis cl.\n\nBug: 238781169\nTest: presubmit\n\nChange-Id: Ied235a8f0c860f368afc39ba3998f381e21774d7"
    },
    {
      "commit": "c3cea29f1fb80e8c7412a8b75ec0d814d7f84bed",
      "tree": "699a1ec4197f81f5bd118ad95e5f2a68e9694522",
      "parents": [
        "412fb031e48f18b56461808f335118da854b91e9",
        "eb489f69db265f6cb1aab63130750d0c12c99d94"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Feb 10 17:08:29 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 10 17:08:29 2023 +0000"
      },
      "message": "Merge \"Add producerId so we know when the BBQ producer has been changed.\""
    },
    {
      "commit": "545da0e1040dabe238140c2ccdced5b3d60b0366",
      "tree": "9df7679ed2d0b9226d897eee59543ea81f6d2b91",
      "parents": [
        "858a6a88062131547db91e341fc4c3cde4bc54a4"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Feb 09 14:55:57 2023 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Fri Feb 10 14:17:39 2023 +0000"
      },
      "message": "Some fixes to TrustedPresentationListener\n\n1. Ignore display overlays since we don\u0027t want screen decorations\n   included in the occlusion\n\n2. Handle occluded region as separate Rects to ensure that disconnected\n   Rects in a Region are not considered occluding in the disconnected\n   area.\n\nTest: LayerTrustedPresentationListenerTest\nBug: 256993331\nChange-Id: Ib0a4b850e2aafb42e206b8728fcc9b6013171f3f\n"
    },
    {
      "commit": "eb489f69db265f6cb1aab63130750d0c12c99d94",
      "tree": "a7eecbb50ecd78143671155bd88b55cd5a5480b3",
      "parents": [
        "858a6a88062131547db91e341fc4c3cde4bc54a4"
      ],
      "author": {
        "name": "liulijun",
        "email": "liulijun@xiaomi.corp-partner.google.com",
        "time": "Mon Oct 17 22:02:14 2022 +0800"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Feb 09 20:13:41 2023 +0000"
      },
      "message": "Add producerId so we know when the BBQ producer has been changed.\n\nIf BBQ producer changes but the SC remains the same, the frame numbers\nfor the SC will get reset. This causes issues if there\u0027s a barrier layer\nset because the barrier is waiting for a particular frame number before\napplying the transaction. Since the frame numbers have been reset, the\nbarrier will be greater than the incoming frame numbers. The change adds\na producerId to the buffer being sent so it can check if the producerId\nis older than what\u0027s currently set on the Layer. If there\u0027s a barriers\nset from the old producer, the buffer can be released and not applied\nand will stop SF from waiting indefinitely.\n\nBug: 251971691\nTest: Builds, hard to repro\n\nSigned-off-by: Liu Lijun\u003cliulijun@xiaomi.corp-partner.google.com\u003e\nChange-Id: If37171de4693a73f36f8de43e29c129b352eb55f\n"
    }
  ],
  "next": "acb18f43f492ea00f733b6bdaee3f3def8f9c1ce"
}
