diff options
author | 2023-12-11 21:16:59 +0000 | |
---|---|---|
committer | 2024-01-26 23:42:37 +0000 | |
commit | 9892aac629682352986492133b3d2ca40b2767bf (patch) | |
tree | 2bc22d2e51a7c19cbe6411ce2da39372793061f9 /libs/gui/SurfaceComposerClient.cpp | |
parent | 05e3113ca64afb9f624b75fe68193ae07ea3f167 (diff) |
Correctly pass screenshot fences to transaction callbacks
In some instances, a screenshot may be captured before a layer has a
release callback registered. This can happen when a new buffer has
not yet been transacted before a screenshot is captured. This causes the
screenshot fence to be dropped and the possibility of tearing when
capturing a screenshot while continuously rendering.
To resolve this, buffer screenshot fences into a list of future fences
when there is no callback registered, and merge those fences when
dispatching the release callback.
Bug: 302703346
Test: SurfaceViewTests#testMovingWhiteSurfaceView 100 times
Change-Id: I91aec3cdb0973092d48cd77e59dd3999e9d9e847
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
0 files changed, 0 insertions, 0 deletions