Loading services/surfaceflinger/BufferLayer.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -613,14 +613,6 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) return; } // Client layers if (hwcInfo.forceClientComposition || (mActiveBuffer != nullptr && mActiveBuffer->handle == nullptr)) { ALOGV("[%s] Requesting Client composition", mName.string()); setCompositionType(hwcId, HWC2::Composition::Client); return; } // Device or Cursor layers if (mPotentialCursor) { ALOGV("[%s] Requesting Cursor composition", mName.string()); Loading services/surfaceflinger/Layer.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -621,6 +621,15 @@ void Layer::forceClientComposition(int32_t hwcId) { mHwcLayers[hwcId].forceClientComposition = true; } bool Layer::getForceClientComposition(int32_t hwcId) { if (mHwcLayers.count(hwcId) == 0) { ALOGE("getForceClientComposition: no HWC layer found (%d)", hwcId); return false; } return mHwcLayers[hwcId].forceClientComposition; } void Layer::updateCursorPosition(const sp<const DisplayDevice>& displayDevice) { auto hwcId = displayDevice->getHwcDisplayId(); if (mHwcLayers.count(hwcId) == 0 || getCompositionType(hwcId) != HWC2::Composition::Cursor) { Loading services/surfaceflinger/Layer.h +1 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,7 @@ public: void setGeometry(const sp<const DisplayDevice>& displayDevice, uint32_t z); void forceClientComposition(int32_t hwcId); bool getForceClientComposition(int32_t hwcId); virtual void setPerFrameData(const sp<const DisplayDevice>& displayDevice) = 0; // callIntoHwc exists so we can update our local state and call Loading services/surfaceflinger/SurfaceFlinger.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -1956,6 +1956,12 @@ void SurfaceFlinger::setUpHWComposer() { "display %zd: %d", displayId, result); } for (auto& layer : displayDevice->getVisibleLayersSortedByZ()) { if (layer->getForceClientComposition(hwcId)) { ALOGV("[%s] Requesting Client composition", layer->getName().string()); layer->setCompositionType(hwcId, HWC2::Composition::Client); continue; } layer->setPerFrameData(displayDevice); } Loading Loading
services/surfaceflinger/BufferLayer.cpp +0 −8 Original line number Diff line number Diff line Loading @@ -613,14 +613,6 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) return; } // Client layers if (hwcInfo.forceClientComposition || (mActiveBuffer != nullptr && mActiveBuffer->handle == nullptr)) { ALOGV("[%s] Requesting Client composition", mName.string()); setCompositionType(hwcId, HWC2::Composition::Client); return; } // Device or Cursor layers if (mPotentialCursor) { ALOGV("[%s] Requesting Cursor composition", mName.string()); Loading
services/surfaceflinger/Layer.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -621,6 +621,15 @@ void Layer::forceClientComposition(int32_t hwcId) { mHwcLayers[hwcId].forceClientComposition = true; } bool Layer::getForceClientComposition(int32_t hwcId) { if (mHwcLayers.count(hwcId) == 0) { ALOGE("getForceClientComposition: no HWC layer found (%d)", hwcId); return false; } return mHwcLayers[hwcId].forceClientComposition; } void Layer::updateCursorPosition(const sp<const DisplayDevice>& displayDevice) { auto hwcId = displayDevice->getHwcDisplayId(); if (mHwcLayers.count(hwcId) == 0 || getCompositionType(hwcId) != HWC2::Composition::Cursor) { Loading
services/surfaceflinger/Layer.h +1 −0 Original line number Diff line number Diff line Loading @@ -299,6 +299,7 @@ public: void setGeometry(const sp<const DisplayDevice>& displayDevice, uint32_t z); void forceClientComposition(int32_t hwcId); bool getForceClientComposition(int32_t hwcId); virtual void setPerFrameData(const sp<const DisplayDevice>& displayDevice) = 0; // callIntoHwc exists so we can update our local state and call Loading
services/surfaceflinger/SurfaceFlinger.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -1956,6 +1956,12 @@ void SurfaceFlinger::setUpHWComposer() { "display %zd: %d", displayId, result); } for (auto& layer : displayDevice->getVisibleLayersSortedByZ()) { if (layer->getForceClientComposition(hwcId)) { ALOGV("[%s] Requesting Client composition", layer->getName().string()); layer->setCompositionType(hwcId, HWC2::Composition::Client); continue; } layer->setPerFrameData(displayDevice); } Loading