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-
3723namespace android ::scheduler {
3824
3925FrameTarget::FrameTarget (const std::string& displayLabel)
@@ -44,18 +30,16 @@ FrameTarget::FrameTarget(const std::string& displayLabel)
4430
4531TimePoint 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
5137FenceTimePtr 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
6145bool 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