diff options
author | 2022-05-07 15:52:55 -0700 | |
---|---|---|
committer | 2022-05-16 08:13:25 -0700 | |
commit | bb448ce9aa521f9574d94c9ec2d57eb7d37382cb (patch) | |
tree | ce3b4e8cc398b8b38543908f423370450731c99a /services/surfaceflinger/BufferQueueLayer.h | |
parent | 0f24a7c37b3e65996c9bb88c3e22038ae2ca58ef (diff) |
SF: Do not duplicate fences per layer per frame
Convert the unique_fd of RenderEngineResult (and futures thereof) into
sp<Fence> such that postFramebuffer does not duplicate release/present
fences.
Remove a few copies of shared futures/pointers with std::move.
Bug: 232436803
Test: simpleperf (-33% cycles in sys_dup)
Change-Id: Ia7c6c8333a712441f3612fb5c720ea2932799636
Diffstat (limited to 'services/surfaceflinger/BufferQueueLayer.h')
-rw-r--r-- | services/surfaceflinger/BufferQueueLayer.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/services/surfaceflinger/BufferQueueLayer.h b/services/surfaceflinger/BufferQueueLayer.h index c6e0727806..4587b5e27c 100644 --- a/services/surfaceflinger/BufferQueueLayer.h +++ b/services/surfaceflinger/BufferQueueLayer.h @@ -42,8 +42,7 @@ public: // Implements Layer. const char* getType() const override { return "BufferQueueLayer"; } - void onLayerDisplayed( - std::shared_future<renderengine::RenderEngineResult> futureRenderEngineResult) override; + void onLayerDisplayed(std::shared_future<FenceResult>) override; // If a buffer was replaced this frame, release the former buffer void releasePendingBuffer(nsecs_t dequeueReadyTime) override; |