Jon West | 569c312 | 2019-04-17 20:34:37 -0400 | [diff] [blame^] | 1 | From 090a7ac43a4ee42a092580a4339d51e66e0cab7a Mon Sep 17 00:00:00 2001 |
| 2 | From: Pierre-Hugues Husson <phh@phh.me> |
| 3 | Date: Sat, 25 Aug 2018 02:13:29 -0400 |
| 4 | Subject: [PATCH 3/4] Revert "sf: Fix damage for Huawei compositor" |
| 5 | |
| 6 | This reverts commit 508eeaea266bc018bf1265f789ed858b73dd7079. |
| 7 | --- |
| 8 | services/surfaceflinger/BufferLayer.cpp | 35 +--------------------- |
| 9 | services/surfaceflinger/SurfaceFlinger.cpp | 8 ----- |
| 10 | services/surfaceflinger/SurfaceFlinger.h | 2 -- |
| 11 | 3 files changed, 1 insertion(+), 44 deletions(-) |
| 12 | |
| 13 | diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp |
| 14 | index 264d35aed..7ac143219 100644 |
| 15 | --- a/services/surfaceflinger/BufferLayer.cpp |
| 16 | +++ b/services/surfaceflinger/BufferLayer.cpp |
| 17 | @@ -631,40 +631,7 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) |
| 18 | visible.dump(LOG_TAG); |
| 19 | } |
| 20 | |
| 21 | - if(mFlinger->mDamageUsesScreenReference) { |
| 22 | - const Rect& frame = hwcInfo.displayFrame; |
| 23 | - int32_t left = frame.left; |
| 24 | - int32_t top = frame.top; |
| 25 | - int32_t right = frame.right; |
| 26 | - int32_t bottom = frame.bottom; |
| 27 | - if(surfaceDamageRegion.getBounds() == Rect::INVALID_RECT) { |
| 28 | - auto fullSource = Region(Rect(left, top, right, bottom)); |
| 29 | - error = hwcLayer->setSurfaceDamage(fullSource); |
| 30 | - } else { |
| 31 | - //There is no easy way to scale, so just scale the bounds |
| 32 | - const Rect& preDamageRect = surfaceDamageRegion.bounds(); |
| 33 | - const FloatRect& crop = hwcInfo.sourceCrop; |
| 34 | - |
| 35 | - float frameWidth = right - left; |
| 36 | - float frameHeight = bottom - top; |
| 37 | - |
| 38 | - float cropWidth = crop.right - crop.left; |
| 39 | - float cropHeight = crop.bottom - crop.top; |
| 40 | - |
| 41 | - float wFactor = frameWidth / cropWidth; |
| 42 | - float hFactor = frameHeight / cropHeight; |
| 43 | - |
| 44 | - Rect scaledDamageRect = Rect( |
| 45 | - (int)(preDamageRect.left * wFactor), |
| 46 | - (int)(preDamageRect.top * hFactor), |
| 47 | - (int)(preDamageRect.right * wFactor), |
| 48 | - (int)(preDamageRect.bottom * hFactor)); |
| 49 | - Region realDamage = Region(scaledDamageRect).translate(frame.left, frame.top); |
| 50 | - error = hwcLayer->setSurfaceDamage(realDamage); |
| 51 | - } |
| 52 | - } else { |
| 53 | - error = hwcLayer->setSurfaceDamage(surfaceDamageRegion); |
| 54 | - } |
| 55 | + error = hwcLayer->setSurfaceDamage(surfaceDamageRegion); |
| 56 | if (error != HWC2::Error::None) { |
| 57 | ALOGE("[%s] Failed to set surface damage: %s (%d)", mName.string(), |
| 58 | to_string(error).c_str(), static_cast<int32_t>(error)); |
| 59 | diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp |
| 60 | index cb3fa9ec1..0580b4bfc 100644 |
| 61 | --- a/services/surfaceflinger/SurfaceFlinger.cpp |
| 62 | +++ b/services/surfaceflinger/SurfaceFlinger.cpp |
| 63 | @@ -384,14 +384,6 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) { |
| 64 | // for production purposes later on. |
| 65 | setenv("TREBLE_TESTING_OVERRIDE", "true", true); |
| 66 | } |
| 67 | - |
| 68 | - property_get("ro.hardware", value, ""); |
| 69 | - if (!strcmp(value, "hi3660") || |
| 70 | - !strcmp(value, "hi6250") || |
| 71 | - !strcmp(value, "hi3670") || |
| 72 | - !strcmp(value, "kirin970")) { |
| 73 | - mDamageUsesScreenReference = true; |
| 74 | - } |
| 75 | } |
| 76 | |
| 77 | void SurfaceFlinger::onFirstRef() |
| 78 | diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h |
| 79 | index 7a8762b83..0148ab675 100644 |
| 80 | --- a/services/surfaceflinger/SurfaceFlinger.h |
| 81 | +++ b/services/surfaceflinger/SurfaceFlinger.h |
| 82 | @@ -852,8 +852,6 @@ private: |
| 83 | // Restrict layers to use two buffers in their bufferqueues. |
| 84 | bool mLayerTripleBufferingDisabled = false; |
| 85 | |
| 86 | - bool mDamageUsesScreenReference; |
| 87 | - |
| 88 | // these are thread safe |
| 89 | mutable std::unique_ptr<MessageQueue> mEventQueue{std::make_unique<impl::MessageQueue>()}; |
| 90 | FrameTracker mAnimFrameTracker; |
| 91 | -- |
| 92 | 2.17.1 |
| 93 | |