Skip to content

Commit 0ba3f3e

Browse files
committed
DO NOT MERGE Revert "DO NOT MERGE Extend mPreviousPresentFences for high refresh rate"
This reverts commit 73e9ae3. Reason for revert: http://b/361358860 Change-Id: I7d38f19a5514ff70ea43a3533b45f3c6bf4e83c9
1 parent 73e9ae3 commit 0ba3f3e

2 files changed

Lines changed: 5 additions & 24 deletions

File tree

services/surfaceflinger/Scheduler/include/scheduler/FrameTargeter.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ class FrameTarget {
106106
FenceTimePtr fenceTime = FenceTime::NO_FENCE;
107107
TimePoint expectedPresentTime = TimePoint();
108108
};
109-
// size should be longest sf-duration / shortest vsync period and round up
110-
std::array<FenceWithFenceTime, 5> mPresentFences; // currently consider 166hz.
109+
std::array<FenceWithFenceTime, 2> mPresentFences;
111110
utils::RingBuffer<FenceWithFenceTime, 5> mFenceWithFenceTimes;
112111

113112
TimePoint mLastSignaledFrameTime;

services/surfaceflinger/Scheduler/src/FrameTargeter.cpp

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,6 @@
2020
#include <scheduler/FrameTargeter.h>
2121
#include <scheduler/IVsyncSource.h>
2222

23-
namespace {
24-
size_t getPresentFenceShift(Period minFramePeriod) {
25-
const bool isTwoVsyncsAhead = targetsVsyncsAhead<2>(minFramePeriod);
26-
size_t shift = 0;
27-
if (isTwoVsyncsAhead) {
28-
shift = static_cast<size_t>(expectedFrameDuration.ns() / minFramePeriod.ns());
29-
if (shift >= mPresentFences.size()) {
30-
shift = mPresentFences.size() - 1;
31-
}
32-
}
33-
return shift;
34-
}
35-
} // namespace
36-
3723
namespace android::scheduler {
3824

3925
FrameTarget::FrameTarget(const std::string& displayLabel)
@@ -44,18 +30,16 @@ FrameTarget::FrameTarget(const std::string& displayLabel)
4430

4531
TimePoint FrameTarget::pastVsyncTime(Period minFramePeriod) const {
4632
// TODO(b/267315508): Generalize to N VSYNCs.
47-
const size_t shift = getPresentFenceShift(minFramePeriod);
33+
const int shift = static_cast<int>(targetsVsyncsAhead<2>(minFramePeriod));
4834
return mExpectedPresentTime - Period::fromNs(minFramePeriod.ns() << shift);
4935
}
5036

5137
FenceTimePtr FrameTarget::presentFenceForPastVsync(Period minFramePeriod) const {
5238
if (FlagManager::getInstance().allow_n_vsyncs_in_targeter()) {
5339
return pastVsyncTimePtr();
5440
}
55-
56-
const size_t shift = getPresentFenceShift(minFramePeriod);
57-
ATRACE_FORMAT("mPresentFences shift=%zu", shift);
58-
return mPresentFences[shift].fenceTime;
41+
const size_t i = static_cast<size_t>(targetsVsyncsAhead<2>(minFramePeriod));
42+
return mPresentFences[i].fenceTime;
5943
}
6044

6145
bool FrameTarget::wouldPresentEarly(Period minFramePeriod) const {
@@ -167,9 +151,7 @@ FenceTimePtr FrameTargeter::setPresentFence(sp<Fence> presentFence, FenceTimePtr
167151
if (FlagManager::getInstance().allow_n_vsyncs_in_targeter()) {
168152
addFence(std::move(presentFence), presentFenceTime, mExpectedPresentTime);
169153
} else {
170-
for (size_t i = mPreviousPresentFences.size()-1; i >= 1; i--) {
171-
mPresentFences[i] = mPresentFences[i-1];
172-
}
154+
mPresentFences[1] = mPresentFences[0];
173155
mPresentFences[0] = {std::move(presentFence), presentFenceTime, mExpectedPresentTime};
174156
}
175157
return presentFenceTime;

0 commit comments

Comments
 (0)