Adding support for the setFrameRate() API to SurfaceFlinger path
- When choosing the max refresh rate in Layer History, check if
the layer has the bit set, if so use it.
- Disable touch boost/choosing config with max refresh rate,
when the layer has framerate set.
Test: Run unit test. Observe logs.
Test: Extend unit test to 10sec. Tap on screen while it's running.
Observe logs. Tap, should not reset the max refresh rate.
Change-Id: Ibe2689964c9f92788ace1b08c3521f156cb47524
diff --git a/services/surfaceflinger/Scheduler/LayerHistory.h b/services/surfaceflinger/Scheduler/LayerHistory.h
index 188fa64..f217134 100644
--- a/services/surfaceflinger/Scheduler/LayerHistory.h
+++ b/services/surfaceflinger/Scheduler/LayerHistory.h
@@ -53,6 +53,9 @@
virtual Summary summarize(nsecs_t now) = 0;
virtual void clear() = 0;
+
+ // Checks whether any of the active layers have a desired frame rate bit set on them.
+ virtual bool hasClientSpecifiedFrameRate() = 0;
};
namespace impl {
@@ -75,6 +78,10 @@
void clear() override;
+ // Traverses all active layers and checks whether any of them have a desired frame
+ // rate bit set on them.
+ bool hasClientSpecifiedFrameRate() override;
+
private:
friend class android::scheduler::LayerHistoryTest;
friend TestableScheduler;