blob: 7b44a7e5330538da3ce6456cff85991c85cc4ce7 [file] [log] [blame]
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