GSI updates for frameworks/native
Change-Id: I37d241a88c7bbe3c4a1a237ffe83a6d5f57129b8
diff --git a/patches/frameworks/native/0003-Revert-sf-Fix-damage-for-Huawei-compositor.patch b/patches/frameworks/native/0003-Revert-sf-Fix-damage-for-Huawei-compositor.patch
new file mode 100644
index 0000000..7b44a7e
--- /dev/null
+++ b/patches/frameworks/native/0003-Revert-sf-Fix-damage-for-Huawei-compositor.patch
@@ -0,0 +1,93 @@
+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
+