Loading services/surfaceflinger/FrontEnd/RequestedLayerState.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -585,11 +585,13 @@ bool RequestedLayerState::isSimpleBufferUpdate(const layer_state_t& s) const { return false; } static constexpr uint64_t deniedFlags = layer_state_t::eProducerDisconnect | layer_state_t::eLayerChanged | layer_state_t::eRelativeLayerChanged | layer_state_t::eTransparentRegionChanged | layer_state_t::eFlagsChanged | layer_state_t::eBlurRegionsChanged | layer_state_t::eLayerStackChanged | layer_state_t::eAutoRefreshChanged | layer_state_t::eReparent; const uint64_t deniedFlags = layer_state_t::eProducerDisconnect | layer_state_t::eLayerChanged | layer_state_t::eRelativeLayerChanged | layer_state_t::eTransparentRegionChanged | layer_state_t::eFlagsChanged | layer_state_t::eBlurRegionsChanged | layer_state_t::eLayerStackChanged | layer_state_t::eReparent | (FlagManager::getInstance().latch_unsignaled_with_auto_refresh_changed() ? 0 : layer_state_t::eAutoRefreshChanged); if (s.what & deniedFlags) { ATRACE_FORMAT_INSTANT("%s: false [has denied flags 0x%" PRIx64 "]", __func__, s.what & deniedFlags); Loading services/surfaceflinger/Layer.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -3792,8 +3792,10 @@ bool Layer::isSimpleBufferUpdate(const layer_state_t& s) const { const uint64_t deniedFlags = layer_state_t::eProducerDisconnect | layer_state_t::eLayerChanged | layer_state_t::eRelativeLayerChanged | layer_state_t::eTransparentRegionChanged | layer_state_t::eFlagsChanged | layer_state_t::eBlurRegionsChanged | layer_state_t::eLayerStackChanged | layer_state_t::eAutoRefreshChanged | layer_state_t::eReparent; layer_state_t::eLayerStackChanged | layer_state_t::eReparent | (FlagManager::getInstance().latch_unsignaled_with_auto_refresh_changed() ? 0 : layer_state_t::eAutoRefreshChanged); if ((s.what & requiredFlags) != requiredFlags) { ATRACE_FORMAT_INSTANT("%s: false [missing required flags 0x%" PRIx64 "]", __func__, Loading services/surfaceflinger/common/FlagManager.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,8 @@ void FlagManager::dump(std::string& result) const { DUMP_READ_ONLY_FLAG(ce_fence_promise); 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); #undef DUMP_READ_ONLY_FLAG #undef DUMP_SERVER_FLAG #undef DUMP_FLAG_INTERVAL Loading Loading @@ -229,6 +231,7 @@ FLAG_MANAGER_READ_ONLY_FLAG(dont_skip_on_early_ro, "") 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, ""); /// Trunk stable server flags /// FLAG_MANAGER_SERVER_FLAG(refresh_rate_overlay_on_external_display, "") Loading services/surfaceflinger/common/include/common/FlagManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ public: bool ce_fence_promise() const; bool idle_screen_refresh_rate_timeout() const; bool graphite_renderengine() const; bool latch_unsignaled_with_auto_refresh_changed() const; protected: // overridden for unit tests Loading services/surfaceflinger/surfaceflinger_flags_new.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -39,4 +39,15 @@ flag { } } # frame_rate_category_mrr flag { name: "latch_unsignaled_with_auto_refresh_changed" namespace: "core_graphics" description: "Ignore eAutoRefreshChanged with latch unsignaled" bug: "331513837" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # latch_unsignaled_with_auto_refresh_changed # IMPORTANT - please keep alphabetize to reduce merge conflicts Loading
services/surfaceflinger/FrontEnd/RequestedLayerState.cpp +7 −5 Original line number Diff line number Diff line Loading @@ -585,11 +585,13 @@ bool RequestedLayerState::isSimpleBufferUpdate(const layer_state_t& s) const { return false; } static constexpr uint64_t deniedFlags = layer_state_t::eProducerDisconnect | layer_state_t::eLayerChanged | layer_state_t::eRelativeLayerChanged | layer_state_t::eTransparentRegionChanged | layer_state_t::eFlagsChanged | layer_state_t::eBlurRegionsChanged | layer_state_t::eLayerStackChanged | layer_state_t::eAutoRefreshChanged | layer_state_t::eReparent; const uint64_t deniedFlags = layer_state_t::eProducerDisconnect | layer_state_t::eLayerChanged | layer_state_t::eRelativeLayerChanged | layer_state_t::eTransparentRegionChanged | layer_state_t::eFlagsChanged | layer_state_t::eBlurRegionsChanged | layer_state_t::eLayerStackChanged | layer_state_t::eReparent | (FlagManager::getInstance().latch_unsignaled_with_auto_refresh_changed() ? 0 : layer_state_t::eAutoRefreshChanged); if (s.what & deniedFlags) { ATRACE_FORMAT_INSTANT("%s: false [has denied flags 0x%" PRIx64 "]", __func__, s.what & deniedFlags); Loading
services/surfaceflinger/Layer.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -3792,8 +3792,10 @@ bool Layer::isSimpleBufferUpdate(const layer_state_t& s) const { const uint64_t deniedFlags = layer_state_t::eProducerDisconnect | layer_state_t::eLayerChanged | layer_state_t::eRelativeLayerChanged | layer_state_t::eTransparentRegionChanged | layer_state_t::eFlagsChanged | layer_state_t::eBlurRegionsChanged | layer_state_t::eLayerStackChanged | layer_state_t::eAutoRefreshChanged | layer_state_t::eReparent; layer_state_t::eLayerStackChanged | layer_state_t::eReparent | (FlagManager::getInstance().latch_unsignaled_with_auto_refresh_changed() ? 0 : layer_state_t::eAutoRefreshChanged); if ((s.what & requiredFlags) != requiredFlags) { ATRACE_FORMAT_INSTANT("%s: false [missing required flags 0x%" PRIx64 "]", __func__, Loading
services/surfaceflinger/common/FlagManager.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -140,6 +140,8 @@ void FlagManager::dump(std::string& result) const { DUMP_READ_ONLY_FLAG(ce_fence_promise); 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); #undef DUMP_READ_ONLY_FLAG #undef DUMP_SERVER_FLAG #undef DUMP_FLAG_INTERVAL Loading Loading @@ -229,6 +231,7 @@ FLAG_MANAGER_READ_ONLY_FLAG(dont_skip_on_early_ro, "") 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, ""); /// Trunk stable server flags /// FLAG_MANAGER_SERVER_FLAG(refresh_rate_overlay_on_external_display, "") Loading
services/surfaceflinger/common/include/common/FlagManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,7 @@ public: bool ce_fence_promise() const; bool idle_screen_refresh_rate_timeout() const; bool graphite_renderengine() const; bool latch_unsignaled_with_auto_refresh_changed() const; protected: // overridden for unit tests Loading
services/surfaceflinger/surfaceflinger_flags_new.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -39,4 +39,15 @@ flag { } } # frame_rate_category_mrr flag { name: "latch_unsignaled_with_auto_refresh_changed" namespace: "core_graphics" description: "Ignore eAutoRefreshChanged with latch unsignaled" bug: "331513837" is_fixed_read_only: true metadata { purpose: PURPOSE_BUGFIX } } # latch_unsignaled_with_auto_refresh_changed # IMPORTANT - please keep alphabetize to reduce merge conflicts