summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/hwui/FrameMetricsObserver.h6
-rw-r--r--libs/hwui/FrameMetricsReporter.cpp2
-rw-r--r--libs/hwui/FrameMetricsReporter.h2
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp6
-rw-r--r--libs/hwui/renderthread/CanvasContext.h4
-rw-r--r--libs/hwui/tests/unit/FrameMetricsReporterTests.cpp14
6 files changed, 17 insertions, 17 deletions
diff --git a/libs/hwui/FrameMetricsObserver.h b/libs/hwui/FrameMetricsObserver.h
index 2ae790106fae..498ec5793cab 100644
--- a/libs/hwui/FrameMetricsObserver.h
+++ b/libs/hwui/FrameMetricsObserver.h
@@ -26,11 +26,11 @@ public:
virtual void notify(const int64_t* buffer) = 0;
bool waitForPresentTime() const { return mWaitForPresentTime; };
- void reportMetricsFrom(int64_t frameNumber, int32_t surfaceControlId) {
+ void reportMetricsFrom(uint64_t frameNumber, int32_t surfaceControlId) {
mAttachedFrameNumber = frameNumber;
mSurfaceControlId = surfaceControlId;
};
- int64_t attachedFrameNumber() const { return mAttachedFrameNumber; };
+ uint64_t attachedFrameNumber() const { return mAttachedFrameNumber; };
int32_t attachedSurfaceControlId() const { return mSurfaceControlId; };
/**
@@ -64,7 +64,7 @@ private:
// The frame number the metrics observer was attached on. Metrics will be sent from this frame
// number (inclusive) onwards in the case that the surface id is equal to mSurfaceControlId.
- int64_t mAttachedFrameNumber;
+ uint64_t mAttachedFrameNumber;
};
} // namespace uirenderer
diff --git a/libs/hwui/FrameMetricsReporter.cpp b/libs/hwui/FrameMetricsReporter.cpp
index a5b1897e8cd1..ee32ea17bfaf 100644
--- a/libs/hwui/FrameMetricsReporter.cpp
+++ b/libs/hwui/FrameMetricsReporter.cpp
@@ -20,7 +20,7 @@ namespace android {
namespace uirenderer {
void FrameMetricsReporter::reportFrameMetrics(const int64_t* stats, bool hasPresentTime,
- int64_t frameNumber, int32_t surfaceControlId) {
+ uint64_t frameNumber, int32_t surfaceControlId) {
FatVector<sp<FrameMetricsObserver>, 10> copy;
{
std::lock_guard lock(mObserversLock);
diff --git a/libs/hwui/FrameMetricsReporter.h b/libs/hwui/FrameMetricsReporter.h
index 95ca77e487f3..7e51df7ce6fc 100644
--- a/libs/hwui/FrameMetricsReporter.h
+++ b/libs/hwui/FrameMetricsReporter.h
@@ -69,7 +69,7 @@ public:
* stats of frames that are from "old" surfaces (i.e. with surfaceControlIds older than the one
* the observer was attached on) nor those that are from "old" frame numbers.
*/
- void reportFrameMetrics(const int64_t* stats, bool hasPresentTime, int64_t frameNumber,
+ void reportFrameMetrics(const int64_t* stats, bool hasPresentTime, uint64_t frameNumber,
int32_t surfaceControlId);
private:
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index e6d31d6cdf41..c5ae0431e06b 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -513,7 +513,7 @@ nsecs_t CanvasContext::draw() {
mContentDrawBounds, mOpaque, mLightInfo, mRenderNodes,
&(profiler()));
- int64_t frameCompleteNr = getFrameNumber();
+ uint64_t frameCompleteNr = getFrameNumber();
waitOnFences();
@@ -704,7 +704,7 @@ void CanvasContext::addFrameMetricsObserver(FrameMetricsObserver* observer) {
// We want to make sure we aren't reporting frames that have already been queued by the
// BufferQueueProducer on the rendner thread but are still pending the callback to report their
// their frame metrics.
- int64_t nextFrameNumber = getFrameNumber();
+ uint64_t nextFrameNumber = getFrameNumber();
observer->reportMetricsFrom(nextFrameNumber, mSurfaceControlGenerationId);
mFrameMetricsReporter->addObserver(observer);
}
@@ -890,7 +890,7 @@ void CanvasContext::enqueueFrameWork(std::function<void()>&& func) {
mFrameFences.push_back(CommonPool::async(std::move(func)));
}
-int64_t CanvasContext::getFrameNumber() {
+uint64_t CanvasContext::getFrameNumber() {
// mFrameNumber is reset to -1 when the surface changes or we swap buffers
if (mFrameNumber == -1 && mNativeSurface.get()) {
mFrameNumber = ANativeWindow_getNextFrameId(mNativeSurface->getNativeWindow());
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index b21dc75372e3..852cbda6c313 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -173,7 +173,7 @@ public:
// Used to queue up work that needs to be completed before this frame completes
void enqueueFrameWork(std::function<void()>&& func);
- int64_t getFrameNumber();
+ uint64_t getFrameNumber();
void waitOnFences();
@@ -281,7 +281,7 @@ private:
// Need at least 4 because we do quad buffer. Add a 5th for good measure.
RingBuffer<SwapHistory, 5> mSwapHistory;
- int64_t mFrameNumber = -1;
+ uint64_t mFrameNumber = -1;
int64_t mDamageId = 0;
// last vsync for a dropped frame due to stuffed queue
diff --git a/libs/hwui/tests/unit/FrameMetricsReporterTests.cpp b/libs/hwui/tests/unit/FrameMetricsReporterTests.cpp
index 6c1aee0cb6cb..fb04700bbf70 100644
--- a/libs/hwui/tests/unit/FrameMetricsReporterTests.cpp
+++ b/libs/hwui/tests/unit/FrameMetricsReporterTests.cpp
@@ -44,7 +44,7 @@ TEST(FrameMetricsReporter, reportsAllFramesIfNoFromFrameIsSpecified) {
const int64_t* stats;
bool hasPresentTime = false;
- int64_t frameNumber = 0;
+ uint64_t frameNumber = 1;
int32_t surfaceControlId = 0;
reporter->reportFrameMetrics(stats, hasPresentTime, frameNumber, surfaceControlId);
@@ -69,7 +69,7 @@ TEST(FrameMetricsReporter, respectsWaitForPresentTimeUnset) {
const int64_t* stats;
bool hasPresentTime = false;
- int64_t frameNumber = 3;
+ uint64_t frameNumber = 3;
int32_t surfaceControlId = 0;
EXPECT_CALL(*observer, notify).Times(1);
@@ -88,7 +88,7 @@ TEST(FrameMetricsReporter, respectsWaitForPresentTimeSet) {
const int64_t* stats;
bool hasPresentTime = false;
- int64_t frameNumber = 3;
+ uint64_t frameNumber = 3;
int32_t surfaceControlId = 0;
EXPECT_CALL(*observer, notify).Times(0);
@@ -136,9 +136,9 @@ TEST(FrameMetricsReporter, doesNotReportsFramesBeforeSpecifiedFromFrame) {
bool hasPresentTime = false;
std::vector<uint64_t> frameNumbers{1, 10};
- std::vector<uint32_t> surfaceControlIds{0, 1, 10};
+ std::vector<int32_t> surfaceControlIds{0, 1, 10};
for (uint64_t frameNumber : frameNumbers) {
- for (uint32_t surfaceControlId : surfaceControlIds) {
+ for (int32_t surfaceControlId : surfaceControlIds) {
auto reporter = std::make_shared<FrameMetricsReporter>();
auto observer =
@@ -161,7 +161,7 @@ TEST(FrameMetricsReporter, doesNotReportsFramesBeforeSpecifiedFromFrame) {
TEST(FrameMetricsReporter, canRemoveObservers) {
const int64_t* stats;
bool hasPresentTime = false;
- int64_t frameNumber = 3;
+ uint64_t frameNumber = 3;
int32_t surfaceControlId = 0;
auto reporter = std::make_shared<FrameMetricsReporter>();
@@ -183,7 +183,7 @@ TEST(FrameMetricsReporter, canRemoveObservers) {
TEST(FrameMetricsReporter, canSupportMultipleObservers) {
const int64_t* stats;
bool hasPresentTime = false;
- int64_t frameNumber = 3;
+ uint64_t frameNumber = 3;
int32_t surfaceControlId = 0;
auto reporter = std::make_shared<FrameMetricsReporter>();