summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/FrameTracker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/FrameTracker.cpp')
-rw-r--r--services/surfaceflinger/FrameTracker.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/services/surfaceflinger/FrameTracker.cpp b/services/surfaceflinger/FrameTracker.cpp
index c09bbe4088..319c2a7116 100644
--- a/services/surfaceflinger/FrameTracker.cpp
+++ b/services/surfaceflinger/FrameTracker.cpp
@@ -21,7 +21,6 @@
#include <cutils/log.h>
-#include <ui/Fence.h>
#include <ui/FrameStats.h>
#include <utils/String8.h>
@@ -48,9 +47,10 @@ void FrameTracker::setFrameReadyTime(nsecs_t readyTime) {
mFrameRecords[mOffset].frameReadyTime = readyTime;
}
-void FrameTracker::setFrameReadyFence(const sp<Fence>& readyFence) {
+void FrameTracker::setFrameReadyFence(
+ std::shared_ptr<FenceTime>&& readyFence) {
Mutex::Autolock lock(mMutex);
- mFrameRecords[mOffset].frameReadyFence = readyFence;
+ mFrameRecords[mOffset].frameReadyFence = std::move(readyFence);
mNumFences++;
}
@@ -59,9 +59,10 @@ void FrameTracker::setActualPresentTime(nsecs_t presentTime) {
mFrameRecords[mOffset].actualPresentTime = presentTime;
}
-void FrameTracker::setActualPresentFence(const sp<Fence>& readyFence) {
+void FrameTracker::setActualPresentFence(
+ std::shared_ptr<FenceTime>&& readyFence) {
Mutex::Autolock lock(mMutex);
- mFrameRecords[mOffset].actualPresentFence = readyFence;
+ mFrameRecords[mOffset].actualPresentFence = std::move(readyFence);
mNumFences++;
}
@@ -95,10 +96,6 @@ void FrameTracker::advanceFrame() {
mFrameRecords[mOffset].actualPresentFence = NULL;
mNumFences--;
}
-
- // Clean up the signaled fences to keep the number of open fence FDs in
- // this process reasonable.
- processFencesLocked();
}
void FrameTracker::clearStats() {
@@ -107,8 +104,8 @@ void FrameTracker::clearStats() {
mFrameRecords[i].desiredPresentTime = 0;
mFrameRecords[i].frameReadyTime = 0;
mFrameRecords[i].actualPresentTime = 0;
- mFrameRecords[i].frameReadyFence.clear();
- mFrameRecords[i].actualPresentFence.clear();
+ mFrameRecords[i].frameReadyFence.reset();
+ mFrameRecords[i].actualPresentFence.reset();
}
mNumFences = 0;
mFrameRecords[mOffset].desiredPresentTime = INT64_MAX;
@@ -156,7 +153,7 @@ void FrameTracker::processFencesLocked() const {
size_t idx = (mOffset+NUM_FRAME_RECORDS-i) % NUM_FRAME_RECORDS;
bool updated = false;
- const sp<Fence>& rfence = records[idx].frameReadyFence;
+ const std::shared_ptr<FenceTime>& rfence = records[idx].frameReadyFence;
if (rfence != NULL) {
records[idx].frameReadyTime = rfence->getSignalTime();
if (records[idx].frameReadyTime < INT64_MAX) {
@@ -166,7 +163,8 @@ void FrameTracker::processFencesLocked() const {
}
}
- const sp<Fence>& pfence = records[idx].actualPresentFence;
+ const std::shared_ptr<FenceTime>& pfence =
+ records[idx].actualPresentFence;
if (pfence != NULL) {
records[idx].actualPresentTime = pfence->getSignalTime();
if (records[idx].actualPresentTime < INT64_MAX) {