Add setFrameRateCategory surface API
Bug: 284911776
Test: atest CtsSurfaceControlTestsStaging
Test: atest libsurfaceflinger_unittest
Change-Id: Ia804a63198ff096d1e5ffedf6046a0350963b8ed
diff --git a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp
index d979c46..43800e2 100644
--- a/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp
+++ b/services/surfaceflinger/FrontEnd/RequestedLayerState.cpp
@@ -24,6 +24,8 @@
#include <private/android_filesystem_config.h>
#include <sys/types.h>
+#include <scheduler/Fps.h>
+
#include "Layer.h"
#include "LayerCreationArgs.h"
#include "LayerLog.h"
@@ -123,6 +125,7 @@
dimmingEnabled = true;
defaultFrameRateCompatibility =
static_cast<int8_t>(scheduler::LayerInfo::FrameRateCompatibility::Default);
+ frameRateCategory = static_cast<int8_t>(FrameRateCategory::Default);
dataspace = ui::Dataspace::V0_SRGB;
gameMode = gui::GameMode::Unsupported;
requestedFrameRate = {};
@@ -319,8 +322,14 @@
Layer::FrameRate::convertCompatibility(clientState.frameRateCompatibility);
const auto strategy = Layer::FrameRate::convertChangeFrameRateStrategy(
clientState.changeFrameRateStrategy);
- requestedFrameRate =
- Layer::FrameRate(Fps::fromValue(clientState.frameRate), compatibility, strategy);
+ requestedFrameRate.vote =
+ Layer::FrameRate::FrameRateVote(Fps::fromValue(clientState.frameRate),
+ compatibility, strategy);
+ changes |= RequestedLayerState::Changes::FrameRate;
+ }
+ if (clientState.what & layer_state_t::eFrameRateCategoryChanged) {
+ const auto category = Layer::FrameRate::convertCategory(clientState.frameRateCategory);
+ requestedFrameRate.category = category;
changes |= RequestedLayerState::Changes::FrameRate;
}
}