From 3890c3995c4a52439844faeb80b5503d42b977d8 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 25 Jul 2016 12:48:08 -0700 Subject: Cache frame event history producer-side. * Producer maintains a recent history of frames. * Producer only does a binder call if requested informatiVon doesn't exist in the cache. * Consumer sends fences to the producer, which can be queried for timestamps without a binder call. Test: adb shell /data/nativetest/libgui_test/libgui_test --gtest_filter=*GetFrameTimestamps* Change-Id: I8a64579407cc2935f5c659462cb227b07ba27e43 --- libs/gui/BufferQueue.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'libs/gui/BufferQueue.cpp') diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp index 6d4335e460..f76a282af6 100644 --- a/libs/gui/BufferQueue.cpp +++ b/libs/gui/BufferQueue.cpp @@ -61,15 +61,13 @@ void BufferQueue::ProxyConsumerListener::onSidebandStreamChanged() { } } -bool BufferQueue::ProxyConsumerListener::addAndGetFrameTimestamps( +void BufferQueue::ProxyConsumerListener::addAndGetFrameTimestamps( const NewFrameEventsEntry* newTimestamps, - uint64_t frameNumber, FrameTimestamps* outTimestamps) { + FrameEventHistoryDelta* outDelta) { sp listener(mConsumerListener.promote()); - if (listener == nullptr) { - return false; + if (listener != nullptr) { + listener->addAndGetFrameTimestamps(newTimestamps, outDelta); } - return listener->addAndGetFrameTimestamps( - newTimestamps, frameNumber, outTimestamps); } void BufferQueue::createBufferQueue(sp* outProducer, -- cgit v1.2.3-59-g8ed1b