Loading libs/gui/LayerState.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -684,6 +684,9 @@ void layer_state_t::merge(const layer_state_t& other) { what |= eDimmingEnabledChanged; dimmingEnabled = other.dimmingEnabled; } if (other.what & eFlushJankData) { what |= eFlushJankData; } if ((other.what & what) != other.what) { ALOGE("Unmerged SurfaceComposer Transaction properties. LayerState::merge needs updating? " "other.what=0x%" PRIX64 " what=0x%" PRIX64 " unmerged flags=0x%" PRIX64, Loading libs/gui/SurfaceComposerClient.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -1181,6 +1181,19 @@ sp<IBinder> SurfaceComposerClient::Transaction::getDefaultApplyToken() { void SurfaceComposerClient::Transaction::setDefaultApplyToken(sp<IBinder> applyToken) { sApplyToken = applyToken; } status_t SurfaceComposerClient::Transaction::sendSurfaceFlushJankDataTransaction( const sp<SurfaceControl>& sc) { Transaction t; layer_state_t* s = t.getLayerState(sc); if (!s) { return BAD_INDEX; } s->what |= layer_state_t::eFlushJankData; t.registerSurfaceControlForCallback(sc); return t.apply(/*sync=*/false, /* oneWay=*/true); } // --------------------------------------------------------------------------- sp<IBinder> SurfaceComposerClient::createDisplay(const String8& displayName, bool secure, Loading libs/gui/include/gui/LayerState.h +1 −1 Original line number Diff line number Diff line Loading @@ -170,7 +170,7 @@ struct layer_state_t { eTransparentRegionChanged = 0x00000020, eFlagsChanged = 0x00000040, eLayerStackChanged = 0x00000080, /* unused = 0x00000100, */ eFlushJankData = 0x00000100, /* unused = 0x00000200, */ eDimmingEnabledChanged = 0x00000400, eShadowRadiusChanged = 0x00000800, Loading libs/gui/include/gui/SurfaceComposerClient.h +2 −0 Original line number Diff line number Diff line Loading @@ -742,6 +742,8 @@ public: static sp<IBinder> getDefaultApplyToken(); static void setDefaultApplyToken(sp<IBinder> applyToken); static status_t sendSurfaceFlushJankDataTransaction(const sp<SurfaceControl>& sc); }; status_t clearLayerFrameStats(const sp<IBinder>& token) const; Loading services/surfaceflinger/SurfaceFlinger.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -4830,6 +4830,10 @@ uint32_t SurfaceFlinger::setClientStateLocked(const FrameTimelineInfo& frameTime s.trustedPresentationListener); } if (what & layer_state_t::eFlushJankData) { // Do nothing. Processing the transaction completed listeners currently cause the flush. } if (layer->setTransactionCompletedListeners(callbackHandles, layer->willPresentCurrentTransaction())) { flags |= eTraversalNeeded; Loading Loading
libs/gui/LayerState.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -684,6 +684,9 @@ void layer_state_t::merge(const layer_state_t& other) { what |= eDimmingEnabledChanged; dimmingEnabled = other.dimmingEnabled; } if (other.what & eFlushJankData) { what |= eFlushJankData; } if ((other.what & what) != other.what) { ALOGE("Unmerged SurfaceComposer Transaction properties. LayerState::merge needs updating? " "other.what=0x%" PRIX64 " what=0x%" PRIX64 " unmerged flags=0x%" PRIX64, Loading
libs/gui/SurfaceComposerClient.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -1181,6 +1181,19 @@ sp<IBinder> SurfaceComposerClient::Transaction::getDefaultApplyToken() { void SurfaceComposerClient::Transaction::setDefaultApplyToken(sp<IBinder> applyToken) { sApplyToken = applyToken; } status_t SurfaceComposerClient::Transaction::sendSurfaceFlushJankDataTransaction( const sp<SurfaceControl>& sc) { Transaction t; layer_state_t* s = t.getLayerState(sc); if (!s) { return BAD_INDEX; } s->what |= layer_state_t::eFlushJankData; t.registerSurfaceControlForCallback(sc); return t.apply(/*sync=*/false, /* oneWay=*/true); } // --------------------------------------------------------------------------- sp<IBinder> SurfaceComposerClient::createDisplay(const String8& displayName, bool secure, Loading
libs/gui/include/gui/LayerState.h +1 −1 Original line number Diff line number Diff line Loading @@ -170,7 +170,7 @@ struct layer_state_t { eTransparentRegionChanged = 0x00000020, eFlagsChanged = 0x00000040, eLayerStackChanged = 0x00000080, /* unused = 0x00000100, */ eFlushJankData = 0x00000100, /* unused = 0x00000200, */ eDimmingEnabledChanged = 0x00000400, eShadowRadiusChanged = 0x00000800, Loading
libs/gui/include/gui/SurfaceComposerClient.h +2 −0 Original line number Diff line number Diff line Loading @@ -742,6 +742,8 @@ public: static sp<IBinder> getDefaultApplyToken(); static void setDefaultApplyToken(sp<IBinder> applyToken); static status_t sendSurfaceFlushJankDataTransaction(const sp<SurfaceControl>& sc); }; status_t clearLayerFrameStats(const sp<IBinder>& token) const; Loading
services/surfaceflinger/SurfaceFlinger.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -4830,6 +4830,10 @@ uint32_t SurfaceFlinger::setClientStateLocked(const FrameTimelineInfo& frameTime s.trustedPresentationListener); } if (what & layer_state_t::eFlushJankData) { // Do nothing. Processing the transaction completed listeners currently cause the flush. } if (layer->setTransactionCompletedListeners(callbackHandles, layer->willPresentCurrentTransaction())) { flags |= eTraversalNeeded; Loading