diff options
author | 2024-05-23 15:16:54 +0900 | |
---|---|---|
committer | 2024-05-29 15:34:15 +0900 | |
commit | 39f510fb536d26247997141bdfdcc7d8af890514 (patch) | |
tree | b3b8eb1965d6b87795029d033194af975d4fdf6c /libs/gui/SurfaceComposerClient.cpp | |
parent | fe0aa3b5a1750e0bc82103538c6208a6be35a4dd (diff) |
Pass dequeue timestamp along with buffer data
Avoids performance penalties associated with metadata.
Bug: 342174822
Test: atest libsurfaceflinger_unittest
Test: Manually verified dequeueTime sent without triggering
metadata change
Change-Id: Ifed747818ea252b2551780ffcefd3309eb41edbe
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
-rw-r--r-- | libs/gui/SurfaceComposerClient.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index b420aabb84..af91bb3ae2 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -1702,7 +1702,7 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffer( const sp<SurfaceControl>& sc, const sp<GraphicBuffer>& buffer, const std::optional<sp<Fence>>& fence, const std::optional<uint64_t>& optFrameNumber, - uint32_t producerId, ReleaseBufferCallback callback) { + uint32_t producerId, ReleaseBufferCallback callback, nsecs_t dequeueTime) { layer_state_t* s = getLayerState(sc); if (!s) { mStatus = BAD_INDEX; @@ -1718,6 +1718,7 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe bufferData->frameNumber = frameNumber; bufferData->producerId = producerId; bufferData->flags |= BufferData::BufferDataChange::frameNumberChanged; + bufferData->dequeueTime = dequeueTime; if (fence) { bufferData->acquireFence = *fence; bufferData->flags |= BufferData::BufferDataChange::fenceChanged; |