diff options
Diffstat (limited to 'services/surfaceflinger/tests/unittests/VSyncDispatchRealtimeTest.cpp')
-rw-r--r-- | services/surfaceflinger/tests/unittests/VSyncDispatchRealtimeTest.cpp | 49 |
1 files changed, 19 insertions, 30 deletions
diff --git a/services/surfaceflinger/tests/unittests/VSyncDispatchRealtimeTest.cpp b/services/surfaceflinger/tests/unittests/VSyncDispatchRealtimeTest.cpp index 42b19933b4..be49ef33f2 100644 --- a/services/surfaceflinger/tests/unittests/VSyncDispatchRealtimeTest.cpp +++ b/services/surfaceflinger/tests/unittests/VSyncDispatchRealtimeTest.cpp @@ -51,8 +51,6 @@ public: void setPeriod(nsecs_t) final {} void resetModel() final {} - bool needsMoreSamples() const final { return false; } - bool isVSyncInPhase(nsecs_t, Fps) const final { return false; } void dump(std::string&) const final {} private: @@ -66,7 +64,7 @@ public: bool addVsyncTimestamp(nsecs_t) final { return true; } nsecs_t nextAnticipatedVSyncTimeFrom(nsecs_t time_point) const final { - std::lock_guard lock(mMutex); + std::lock_guard<decltype(mMutex)> lk(mMutex); auto const normalized_to_base = time_point - mBase; auto const floor = (normalized_to_base) % mPeriod; if (floor == 0) { @@ -76,20 +74,18 @@ public: } void set_interval(nsecs_t interval, nsecs_t last_known) { - std::lock_guard lock(mMutex); + std::lock_guard<decltype(mMutex)> lk(mMutex); mPeriod = interval; mBase = last_known; } nsecs_t currentPeriod() const final { - std::lock_guard lock(mMutex); + std::lock_guard<decltype(mMutex)> lk(mMutex); return mPeriod; } void setPeriod(nsecs_t) final {} void resetModel() final {} - bool needsMoreSamples() const final { return false; } - bool isVSyncInPhase(nsecs_t, Fps) const final { return false; } void dump(std::string&) const final {} private: @@ -106,36 +102,30 @@ struct VSyncDispatchRealtimeTest : testing::Test { class RepeatingCallbackReceiver { public: - RepeatingCallbackReceiver(VSyncDispatch& dispatch, nsecs_t workload, nsecs_t readyDuration) - : mWorkload(workload), - mReadyDuration(readyDuration), + RepeatingCallbackReceiver(VSyncDispatch& dispatch, nsecs_t wl) + : mWorkload(wl), mCallback( - dispatch, [&](auto time, auto, auto) { callback_called(time); }, "repeat0") {} + dispatch, [&](auto time, auto) { callback_called(time); }, "repeat0") {} void repeatedly_schedule(size_t iterations, std::function<void(nsecs_t)> const& onEachFrame) { mCallbackTimes.reserve(iterations); - mCallback.schedule( - {.workDuration = mWorkload, - .readyDuration = mReadyDuration, - .earliestVsync = systemTime(SYSTEM_TIME_MONOTONIC) + mWorkload + mReadyDuration}); + mCallback.schedule(mWorkload, systemTime(SYSTEM_TIME_MONOTONIC) + mWorkload); for (auto i = 0u; i < iterations - 1; i++) { - std::unique_lock lock(mMutex); - mCv.wait(lock, [&] { return mCalled; }); + std::unique_lock<decltype(mMutex)> lk(mMutex); + mCv.wait(lk, [&] { return mCalled; }); mCalled = false; auto last = mLastTarget; - lock.unlock(); + lk.unlock(); onEachFrame(last); - mCallback.schedule({.workDuration = mWorkload, - .readyDuration = mReadyDuration, - .earliestVsync = last + mWorkload + mReadyDuration}); + mCallback.schedule(mWorkload, last + mWorkload); } // wait for the last callback. - std::unique_lock lock(mMutex); - mCv.wait(lock, [&] { return mCalled; }); + std::unique_lock<decltype(mMutex)> lk(mMutex); + mCv.wait(lk, [&] { return mCalled; }); } void with_callback_times(std::function<void(std::vector<nsecs_t> const&)> const& fn) const { @@ -144,7 +134,7 @@ public: private: void callback_called(nsecs_t time) { - std::lock_guard lock(mMutex); + std::lock_guard<decltype(mMutex)> lk(mMutex); mCallbackTimes.push_back(time); mCalled = true; mLastTarget = time; @@ -152,7 +142,6 @@ private: } nsecs_t const mWorkload; - nsecs_t const mReadyDuration; VSyncCallbackRegistration mCallback; std::mutex mMutex; @@ -169,9 +158,9 @@ TEST_F(VSyncDispatchRealtimeTest, triple_alarm) { static size_t constexpr num_clients = 3; std::array<RepeatingCallbackReceiver, num_clients> - cb_receiver{RepeatingCallbackReceiver(dispatch, toNs(1500us), toNs(2500us)), - RepeatingCallbackReceiver(dispatch, toNs(0h), toNs(0h)), - RepeatingCallbackReceiver(dispatch, toNs(1ms), toNs(3ms))}; + cb_receiver{RepeatingCallbackReceiver(dispatch, toNs(1500us)), + RepeatingCallbackReceiver(dispatch, toNs(0h)), + RepeatingCallbackReceiver(dispatch, toNs(1ms))}; auto const on_each_frame = [](nsecs_t) {}; std::array<std::thread, num_clients> threads{ @@ -196,7 +185,7 @@ TEST_F(VSyncDispatchRealtimeTest, vascillating_vrr) { VSyncDispatchTimerQueue dispatch(std::make_unique<Timer>(), tracker, mDispatchGroupThreshold, mVsyncMoveThreshold); - RepeatingCallbackReceiver cb_receiver(dispatch, toNs(1ms), toNs(5ms)); + RepeatingCallbackReceiver cb_receiver(dispatch, toNs(1ms)); auto const on_each_frame = [&](nsecs_t last_known) { tracker.set_interval(next_vsync_interval += toNs(1ms), last_known); @@ -214,7 +203,7 @@ TEST_F(VSyncDispatchRealtimeTest, fixed_jump) { VSyncDispatchTimerQueue dispatch(std::make_unique<Timer>(), tracker, mDispatchGroupThreshold, mVsyncMoveThreshold); - RepeatingCallbackReceiver cb_receiver(dispatch, toNs(1ms), toNs(5ms)); + RepeatingCallbackReceiver cb_receiver(dispatch, toNs(1ms)); auto jump_frame_counter = 0u; auto constexpr jump_frame_at = 10u; |