| From 090a7ac43a4ee42a092580a4339d51e66e0cab7a Mon Sep 17 00:00:00 2001 |
| From: Pierre-Hugues Husson <phh@phh.me> |
| Date: Sat, 25 Aug 2018 02:13:29 -0400 |
| Subject: [PATCH 3/4] Revert "sf: Fix damage for Huawei compositor" |
| |
| This reverts commit 508eeaea266bc018bf1265f789ed858b73dd7079. |
| --- |
| services/surfaceflinger/BufferLayer.cpp | 35 +--------------------- |
| services/surfaceflinger/SurfaceFlinger.cpp | 8 ----- |
| services/surfaceflinger/SurfaceFlinger.h | 2 -- |
| 3 files changed, 1 insertion(+), 44 deletions(-) |
| |
| diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp |
| index 264d35aed..7ac143219 100644 |
| --- a/services/surfaceflinger/BufferLayer.cpp |
| +++ b/services/surfaceflinger/BufferLayer.cpp |
| @@ -631,40 +631,7 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) |
| visible.dump(LOG_TAG); |
| } |
| |
| - if(mFlinger->mDamageUsesScreenReference) { |
| - const Rect& frame = hwcInfo.displayFrame; |
| - int32_t left = frame.left; |
| - int32_t top = frame.top; |
| - int32_t right = frame.right; |
| - int32_t bottom = frame.bottom; |
| - if(surfaceDamageRegion.getBounds() == Rect::INVALID_RECT) { |
| - auto fullSource = Region(Rect(left, top, right, bottom)); |
| - error = hwcLayer->setSurfaceDamage(fullSource); |
| - } else { |
| - //There is no easy way to scale, so just scale the bounds |
| - const Rect& preDamageRect = surfaceDamageRegion.bounds(); |
| - const FloatRect& crop = hwcInfo.sourceCrop; |
| - |
| - float frameWidth = right - left; |
| - float frameHeight = bottom - top; |
| - |
| - float cropWidth = crop.right - crop.left; |
| - float cropHeight = crop.bottom - crop.top; |
| - |
| - float wFactor = frameWidth / cropWidth; |
| - float hFactor = frameHeight / cropHeight; |
| - |
| - Rect scaledDamageRect = Rect( |
| - (int)(preDamageRect.left * wFactor), |
| - (int)(preDamageRect.top * hFactor), |
| - (int)(preDamageRect.right * wFactor), |
| - (int)(preDamageRect.bottom * hFactor)); |
| - Region realDamage = Region(scaledDamageRect).translate(frame.left, frame.top); |
| - error = hwcLayer->setSurfaceDamage(realDamage); |
| - } |
| - } else { |
| - error = hwcLayer->setSurfaceDamage(surfaceDamageRegion); |
| - } |
| + error = hwcLayer->setSurfaceDamage(surfaceDamageRegion); |
| if (error != HWC2::Error::None) { |
| ALOGE("[%s] Failed to set surface damage: %s (%d)", mName.string(), |
| to_string(error).c_str(), static_cast<int32_t>(error)); |
| diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp |
| index cb3fa9ec1..0580b4bfc 100644 |
| --- a/services/surfaceflinger/SurfaceFlinger.cpp |
| +++ b/services/surfaceflinger/SurfaceFlinger.cpp |
| @@ -384,14 +384,6 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) { |
| // for production purposes later on. |
| setenv("TREBLE_TESTING_OVERRIDE", "true", true); |
| } |
| - |
| - property_get("ro.hardware", value, ""); |
| - if (!strcmp(value, "hi3660") || |
| - !strcmp(value, "hi6250") || |
| - !strcmp(value, "hi3670") || |
| - !strcmp(value, "kirin970")) { |
| - mDamageUsesScreenReference = true; |
| - } |
| } |
| |
| void SurfaceFlinger::onFirstRef() |
| diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h |
| index 7a8762b83..0148ab675 100644 |
| --- a/services/surfaceflinger/SurfaceFlinger.h |
| +++ b/services/surfaceflinger/SurfaceFlinger.h |
| @@ -852,8 +852,6 @@ private: |
| // Restrict layers to use two buffers in their bufferqueues. |
| bool mLayerTripleBufferingDisabled = false; |
| |
| - bool mDamageUsesScreenReference; |
| - |
| // these are thread safe |
| mutable std::unique_ptr<MessageQueue> mEventQueue{std::make_unique<impl::MessageQueue>()}; |
| FrameTracker mAnimFrameTracker; |
| -- |
| 2.17.1 |
| |