diff options
| author | 2023-11-30 18:18:06 -0800 | |
|---|---|---|
| committer | 2023-12-01 02:22:47 +0000 | |
| commit | 3f84c50c32bd0b37c4ecf3a62dcf7134cf815234 (patch) | |
| tree | d81ae8a02b19244efe7665a7ea082ed05ec7bcc1 | |
| parent | d7d9de5a1423784eb3281b1509b5666fdf4fae2e (diff) | |
SF: enable touch timer and content detection by default
Those features are required for frame rate override to work properly,
and frame rate override is enabled by default
Bug: 314217419
Test: manual
Change-Id: Iffdc24f0efad14d1dd35d650dcb0198ab9606652
5 files changed, 20 insertions, 2 deletions
diff --git a/services/surfaceflinger/Scheduler/Scheduler.cpp b/services/surfaceflinger/Scheduler/Scheduler.cpp index 6eea7f1aa1..738fd4ea9c 100644 --- a/services/surfaceflinger/Scheduler/Scheduler.cpp +++ b/services/surfaceflinger/Scheduler/Scheduler.cpp @@ -92,7 +92,12 @@ void Scheduler::startTimers() { using namespace sysprop; using namespace std::string_literals; - if (const int64_t millis = set_touch_timer_ms(0); millis > 0) { + const int32_t defaultTouchTouchTimerValue = + FlagManager::getInstance().enable_fro_dependent_features() && + sysprop::enable_frame_rate_override(true) + ? 200 + : 0; + if (const int32_t millis = set_touch_timer_ms(defaultTouchTouchTimerValue); millis > 0) { // Touch events are coming to SF every 100ms, so the timer needs to be higher than that mTouchTimer.emplace( "TouchTimer", std::chrono::milliseconds(millis), diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 85c16b716d..6b6427f56b 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -4087,7 +4087,10 @@ void SurfaceFlinger::initScheduler(const sp<const DisplayDevice>& display) { FeatureFlags features; - if (sysprop::use_content_detection_for_refresh_rate(false)) { + const auto defaultContentDetectionValue = + FlagManager::getInstance().enable_fro_dependent_features() && + sysprop::enable_frame_rate_override(true); + if (sysprop::use_content_detection_for_refresh_rate(defaultContentDetectionValue)) { features |= Feature::kContentDetection; if (FlagManager::getInstance().enable_small_area_detection()) { features |= Feature::kSmallDirtyContentDetection; diff --git a/services/surfaceflinger/common/FlagManager.cpp b/services/surfaceflinger/common/FlagManager.cpp index a5822323ce..07a606c9ed 100644 --- a/services/surfaceflinger/common/FlagManager.cpp +++ b/services/surfaceflinger/common/FlagManager.cpp @@ -123,6 +123,7 @@ void FlagManager::dump(std::string& result) const { DUMP_READ_ONLY_FLAG(add_sf_skipped_frames_to_trace); DUMP_READ_ONLY_FLAG(use_known_refresh_rate_for_fps_consistency); DUMP_READ_ONLY_FLAG(cache_if_source_crop_layer_only_moved); + DUMP_READ_ONLY_FLAG(enable_fro_dependent_features); #undef DUMP_READ_ONLY_FLAG #undef DUMP_SERVER_FLAG @@ -195,6 +196,7 @@ FLAG_MANAGER_READ_ONLY_FLAG(add_sf_skipped_frames_to_trace, "") FLAG_MANAGER_READ_ONLY_FLAG(use_known_refresh_rate_for_fps_consistency, "") FLAG_MANAGER_READ_ONLY_FLAG(cache_if_source_crop_layer_only_moved, "debug.sf.cache_source_crop_only_moved") +FLAG_MANAGER_READ_ONLY_FLAG(enable_fro_dependent_features, "") /// Trunk stable server flags /// FLAG_MANAGER_SERVER_FLAG(late_boot_misc2, "") diff --git a/services/surfaceflinger/common/include/common/FlagManager.h b/services/surfaceflinger/common/include/common/FlagManager.h index 15ca345502..38cb43a269 100644 --- a/services/surfaceflinger/common/include/common/FlagManager.h +++ b/services/surfaceflinger/common/include/common/FlagManager.h @@ -62,6 +62,7 @@ public: bool add_sf_skipped_frames_to_trace() const; bool use_known_refresh_rate_for_fps_consistency() const; bool cache_if_source_crop_layer_only_moved() const; + bool enable_fro_dependent_features() const; protected: // overridden for unit tests diff --git a/services/surfaceflinger/surfaceflinger_flags.aconfig b/services/surfaceflinger/surfaceflinger_flags.aconfig index 3fb763ec12..fcb52c72f4 100644 --- a/services/surfaceflinger/surfaceflinger_flags.aconfig +++ b/services/surfaceflinger/surfaceflinger_flags.aconfig @@ -98,5 +98,12 @@ flag { namespace: "core_graphics" description: "do not flatten layers if source crop is only moved" bug: "305718400" +} + +flag { + name: "enable_fro_dependent_features" + namespace: "core_graphics" + description: "enable frame rate override dependent features by default" + bug: "314217419" is_fixed_read_only: true } |