diff options
| author | 2024-04-03 23:36:49 +0000 | |
|---|---|---|
| committer | 2024-04-03 23:36:49 +0000 | |
| commit | 6e62b812268de75ece585c87b81444030ef0795a (patch) | |
| tree | 34842890db45fc64cb91fb61f5b072b996a67bdb | |
| parent | d7d989ad16c4f86e4bee9fac10a0804d18135268 (diff) | |
| parent | b334758fc4f35f7c7bb772cb398407c107ac7630 (diff) | |
Merge "SF: remove usage of eVsyncSourceSurfaceFlinger" into main
4 files changed, 24 insertions, 3 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 81697da5e1..a808cd1752 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -2073,10 +2073,17 @@ status_t SurfaceFlinger::getDisplayDecorationSupport( sp<IDisplayEventConnection> SurfaceFlinger::createDisplayEventConnection( gui::ISurfaceComposer::VsyncSource vsyncSource, EventRegistrationFlags eventRegistration, const sp<IBinder>& layerHandle) { - const auto cycle = vsyncSource == gui::ISurfaceComposer::VsyncSource::eVsyncSourceSurfaceFlinger - ? scheduler::Cycle::LastComposite - : scheduler::Cycle::Render; + const auto cycle = [&] { + if (FlagManager::getInstance().deprecate_vsync_sf()) { + ALOGW_IF(vsyncSource == gui::ISurfaceComposer::VsyncSource::eVsyncSourceSurfaceFlinger, + "requested unsupported config eVsyncSourceSurfaceFlinger"); + return scheduler::Cycle::Render; + } + return vsyncSource == gui::ISurfaceComposer::VsyncSource::eVsyncSourceSurfaceFlinger + ? scheduler::Cycle::LastComposite + : scheduler::Cycle::Render; + }(); return mScheduler->createDisplayEventConnection(cycle, eventRegistration, layerHandle); } diff --git a/services/surfaceflinger/common/FlagManager.cpp b/services/surfaceflinger/common/FlagManager.cpp index 12043d428e..5a54f7d7d3 100644 --- a/services/surfaceflinger/common/FlagManager.cpp +++ b/services/surfaceflinger/common/FlagManager.cpp @@ -141,6 +141,7 @@ void FlagManager::dump(std::string& result) const { DUMP_READ_ONLY_FLAG(idle_screen_refresh_rate_timeout); DUMP_READ_ONLY_FLAG(graphite_renderengine); DUMP_READ_ONLY_FLAG(latch_unsignaled_with_auto_refresh_changed); + DUMP_READ_ONLY_FLAG(deprecate_vsync_sf); #undef DUMP_READ_ONLY_FLAG #undef DUMP_SERVER_FLAG @@ -232,6 +233,7 @@ FLAG_MANAGER_READ_ONLY_FLAG(protected_if_client, "") FLAG_MANAGER_READ_ONLY_FLAG(ce_fence_promise, ""); FLAG_MANAGER_READ_ONLY_FLAG(graphite_renderengine, "debug.renderengine.graphite") FLAG_MANAGER_READ_ONLY_FLAG(latch_unsignaled_with_auto_refresh_changed, ""); +FLAG_MANAGER_READ_ONLY_FLAG(deprecate_vsync_sf, ""); /// Trunk stable server flags /// FLAG_MANAGER_SERVER_FLAG(refresh_rate_overlay_on_external_display, "") diff --git a/services/surfaceflinger/common/include/common/FlagManager.h b/services/surfaceflinger/common/include/common/FlagManager.h index 0239eb0d21..0c1f9fb2fc 100644 --- a/services/surfaceflinger/common/include/common/FlagManager.h +++ b/services/surfaceflinger/common/include/common/FlagManager.h @@ -79,6 +79,7 @@ public: bool idle_screen_refresh_rate_timeout() const; bool graphite_renderengine() const; bool latch_unsignaled_with_auto_refresh_changed() const; + bool deprecate_vsync_sf() const; protected: // overridden for unit tests diff --git a/services/surfaceflinger/surfaceflinger_flags_new.aconfig b/services/surfaceflinger/surfaceflinger_flags_new.aconfig index 0b9fd5887c..4a609878a2 100644 --- a/services/surfaceflinger/surfaceflinger_flags_new.aconfig +++ b/services/surfaceflinger/surfaceflinger_flags_new.aconfig @@ -21,6 +21,17 @@ flag { } } # ce_fence_promise + flag { + name: "deprecate_vsync_sf" + namespace: "core_graphics" + description: "Depracate eVsyncSourceSurfaceFlinger and use vsync_app everywhere" + bug: "162235855" + is_fixed_read_only: true + metadata { + purpose: PURPOSE_BUGFIX + } +} # deprecate_vsync_sf + flag { name: "frame_rate_category_mrr" namespace: "core_graphics" |