SurfaceFlinger: handle wallpaper scenario in Scheduler

Use the fact that a layer contains wallpaper in Scheduler's
algorithm when picking a refresh rate. Wallpaper should be presented
in the lowest active refresh rate to preserve power.

Test: systrace during wallpaper
Bug: 124065567
Change-Id: Ibb18e62eaf1a6b9b3ab1ec18a3135fb17c8f57fc
diff --git a/services/surfaceflinger/Scheduler/Scheduler.cpp b/services/surfaceflinger/Scheduler/Scheduler.cpp
index 9f92d92..073a2db 100644
--- a/services/surfaceflinger/Scheduler/Scheduler.cpp
+++ b/services/surfaceflinger/Scheduler/Scheduler.cpp
@@ -28,6 +28,7 @@
 #include <android/hardware/configstore/1.1/ISurfaceFlingerConfigs.h>
 #include <configstore/Utils.h>
 #include <cutils/properties.h>
+#include <input/InputWindow.h>
 #include <system/window.h>
 #include <ui/DisplayStatInfo.h>
 #include <utils/Timers.h>
@@ -301,8 +302,10 @@
 }
 
 std::unique_ptr<scheduler::LayerHistory::LayerHandle> Scheduler::registerLayer(
-        const std::string name) {
-    RefreshRateType refreshRateType = RefreshRateType::PERFORMANCE;
+        std::string const& name, int windowType) {
+    RefreshRateType refreshRateType = (windowType == InputWindowInfo::TYPE_WALLPAPER)
+            ? RefreshRateType::DEFAULT
+            : RefreshRateType::PERFORMANCE;
 
     const auto refreshRate = mRefreshRateConfigs.getRefreshRate(refreshRateType);
     const uint32_t fps = (refreshRate) ? refreshRate->fps : 0;