summaryrefslogtreecommitdiff
path: root/libs/gui/FrameTimestamps.cpp
diff options
context:
space:
mode:
author stevensd <stevensd@google.com> 2020-02-14 04:03:31 +0000
committer stevensd <stevensd@google.com> 2020-02-14 04:03:31 +0000
commit753132194ff691e1533e354dddc2bc31d25e50a0 (patch)
treeb135fac584bcc79f840f3ceb1c669745e40522b4 /libs/gui/FrameTimestamps.cpp
parentb696149d3d318fde99555e36d153bf114af0f4c9 (diff)
parent652803269cec92e9698d0a1b8dabbc50526c7c17 (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.cpp14
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()) {