SF: Move present timing to FrameTargeter
Split out from I2c27dc709afd1f33bddbf9c2ca1cd61dd335f66c. Store earliestPresentTime on the FrameTarget, like expectedPresentTime, so it can be stored per display. Add FrameTargeter::computeEarliestPresentTime. This calculation was previously done in SurfaceFlinger, using data mostly contained in the FrameTargeter. This will simplify computing this per display. Move computation of the earliestPresentTime to FrameTargeter::beginFrame. Add a scheduler::Feature to track whether ExpectedPresentTime is supported. Make previousFrameVsyncTime and wouldPresentEarly protected, now that they are only called by FrameTargeter (subclass) and tests. Make the test a friend of FrameTarget for accessing the above methods. Bug: 255601557 Bug: 256196556 Bug: 259132483 Test: atest libscheduler_test:FrameTargeterTest Test: atest libscheduler_test:FrameTargeterWithExpectedPresentSupportTest Change-Id: Ib927935de6ba2b7b8d5037b42eb635ae92019634
Showing
- services/surfaceflinger/Scheduler/Scheduler.cpp 2 additions, 1 deletionservices/surfaceflinger/Scheduler/Scheduler.cpp
- services/surfaceflinger/Scheduler/Scheduler.h 1 addition, 3 deletionsservices/surfaceflinger/Scheduler/Scheduler.h
- services/surfaceflinger/Scheduler/include/scheduler/Features.h 1 addition, 0 deletions...ces/surfaceflinger/Scheduler/include/scheduler/Features.h
- services/surfaceflinger/Scheduler/include/scheduler/FrameTargeter.h 23 additions, 10 deletions...urfaceflinger/Scheduler/include/scheduler/FrameTargeter.h
- services/surfaceflinger/Scheduler/src/FrameTargeter.cpp 12 additions, 0 deletionsservices/surfaceflinger/Scheduler/src/FrameTargeter.cpp
- services/surfaceflinger/Scheduler/tests/FrameTargeterTest.cpp 78 additions, 13 deletions...ices/surfaceflinger/Scheduler/tests/FrameTargeterTest.cpp
- services/surfaceflinger/SurfaceFlinger.cpp 6 additions, 13 deletionsservices/surfaceflinger/SurfaceFlinger.cpp
- services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h 8 additions, 1 deletion...ices/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h
- services/surfaceflinger/fuzzer/surfaceflinger_scheduler_fuzzer.cpp 11 additions, 2 deletions...surfaceflinger/fuzzer/surfaceflinger_scheduler_fuzzer.cpp
- services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h 4 additions, 3 deletions...s/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h
Loading
Please register or sign in to comment