summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueThreadState.cpp
diff options
context:
space:
mode:
author Robert Carr <racarr@google.com> 2022-05-25 23:29:34 -0700
committer Robert Carr <racarr@google.com> 2022-06-02 18:06:08 -0700
commit05da008e9dcc1466e2e7779d5f5408bbf5c7f4d6 (patch)
tree62cc3303a4eee93b4a9487ace6d36b6f226c7d1e /libs/gui/BufferQueueThreadState.cpp
parenta0292d14c0ea5cdb6cc4444869f6abac95d1dfd3 (diff)
SurfaceFlinger: Correct logic error in early release
Client composition early release logic should function roughly like this: 1. Set client composition fence on layer if it's client composed 2. If we process setBuffer when we have the fence, release the previous buffer with the client composition fence 3. If we display the layer a second time we clear the client composition fence. The current implementation doesn't really accomplish this. Since onLayerDisplayed comes after setting the client composition fence, we need to track "the second onLayerDisplayed after onPostComposition". Unfortunately when adding the onPostComposition logic I seem to have not thought carefully enough about this, likely because I was too focused on the multi-display issue going on in the previous bug. This logic should also work to solve that bug. Bug: 231290210 Test: Existing tests pass Change-Id: I0fbf3cf3e2b39410fdac3bc0db905a4d088aba58
Diffstat (limited to 'libs/gui/BufferQueueThreadState.cpp')
0 files changed, 0 insertions, 0 deletions