diff options
| author | 2020-02-14 04:03:31 +0000 | |
|---|---|---|
| committer | 2020-02-14 04:03:31 +0000 | |
| commit | 753132194ff691e1533e354dddc2bc31d25e50a0 (patch) | |
| tree | b135fac584bcc79f840f3ceb1c669745e40522b4 /libs/gui/FrameTimestamps.cpp | |
| parent | b696149d3d318fde99555e36d153bf114af0f4c9 (diff) | |
| parent | 652803269cec92e9698d0a1b8dabbc50526c7c17 (diff) | |
Merge "libgui: make MAX_FRAME_HISTORY a configurable property" am: 27b827f6e3 am: 652803269c
Change-Id: Ieec6f68beccc5de5a36dd549959b29bea42a9810
Diffstat (limited to 'libs/gui/FrameTimestamps.cpp')
| -rw-r--r-- | libs/gui/FrameTimestamps.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/gui/FrameTimestamps.cpp b/libs/gui/FrameTimestamps.cpp index c04d9072bb..3215eca50f 100644 --- a/libs/gui/FrameTimestamps.cpp +++ b/libs/gui/FrameTimestamps.cpp @@ -18,6 +18,7 @@ #define LOG_TAG "FrameEvents" +#include <LibGuiProperties.sysprop.h> #include <android-base/stringprintf.h> #include <cutils/compiler.h> // For CC_[UN]LIKELY #include <inttypes.h> @@ -167,6 +168,11 @@ struct FrameNumberEqual { } // namespace +const size_t FrameEventHistory::MAX_FRAME_HISTORY = + sysprop::LibGuiProperties::frame_event_history_size().value_or(8); + +FrameEventHistory::FrameEventHistory() : mFrames(std::vector<FrameEvents>(MAX_FRAME_HISTORY)) {} + FrameEventHistory::~FrameEventHistory() = default; FrameEvents* FrameEventHistory::getFrame(uint64_t frameNumber) { @@ -348,6 +354,9 @@ std::shared_ptr<FenceTime> ProducerFrameEventHistory::createFenceTime( // ConsumerFrameEventHistory // ============================================================================ +ConsumerFrameEventHistory::ConsumerFrameEventHistory() + : mFramesDirty(std::vector<FrameEventDirtyFields>(MAX_FRAME_HISTORY)) {} + ConsumerFrameEventHistory::~ConsumerFrameEventHistory() = default; void ConsumerFrameEventHistory::onDisconnect() { @@ -443,9 +452,8 @@ void ConsumerFrameEventHistory::addRelease(uint64_t frameNumber, mFramesDirty[mReleaseOffset].setDirty<FrameEvent::RELEASE>(); } -void ConsumerFrameEventHistory::getFrameDelta( - FrameEventHistoryDelta* delta, - const std::array<FrameEvents, MAX_FRAME_HISTORY>::iterator& frame) { +void ConsumerFrameEventHistory::getFrameDelta(FrameEventHistoryDelta* delta, + const std::vector<FrameEvents>::iterator& frame) { mProducerWantsEvents = true; size_t i = static_cast<size_t>(std::distance(mFrames.begin(), frame)); if (mFramesDirty[i].anyDirty()) { |