Last active
December 30, 2015 21:59
-
-
Save pawitp/7891444 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From b8f9e36338d1b7812b9e6a43ca69ec3483aecda2 Mon Sep 17 00:00:00 2001 | |
From: Pawit Pornkitprasan <p.pawit@gmail.com> | |
Date: Tue, 10 Dec 2013 19:38:17 +0700 | |
Subject: [PATCH 1/4] binder: add compat symbols | |
Required for libtvservice_binder.so on I9082 | |
Change-Id: I059e92f19e4c5a911d38faa9c4df549c75c90761 | |
--- | |
libs/binder/Parcel.cpp | 12 ++++++++++++ | |
1 file changed, 12 insertions(+) | |
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp | |
index 38e019c..26e54f1 100644 | |
--- a/libs/binder/Parcel.cpp | |
+++ b/libs/binder/Parcel.cpp | |
@@ -808,6 +808,12 @@ status_t Parcel::writeBlob(size_t len, WritableBlob* outBlob) | |
return status; | |
} | |
+extern "C" status_t _ZN7android6Parcel5writeERKNS0_26FlattenableHelperInterfaceE(void *parcel, void *val); | |
+ | |
+extern "C" status_t _ZN7android6Parcel5writeERKNS_11FlattenableE(void *parcel, void *val) { | |
+ return _ZN7android6Parcel5writeERKNS0_26FlattenableHelperInterfaceE(parcel, val); | |
+} | |
+ | |
status_t Parcel::write(const FlattenableHelperInterface& val) | |
{ | |
status_t err; | |
@@ -1184,6 +1190,12 @@ status_t Parcel::readBlob(size_t len, ReadableBlob* outBlob) const | |
return NO_ERROR; | |
} | |
+extern "C" status_t _ZNK7android6Parcel4readERNS0_26FlattenableHelperInterfaceE(void *parcel, void *val); | |
+ | |
+extern "C" status_t _ZNK7android6Parcel4readERNS_11FlattenableE(void *parcel, void *val) { | |
+ return _ZNK7android6Parcel4readERNS0_26FlattenableHelperInterfaceE(parcel, val); | |
+} | |
+ | |
status_t Parcel::read(FlattenableHelperInterface& val) const | |
{ | |
// size | |
-- | |
1.8.3.4 (Apple Git-47) | |
From 3018d04dcdb261b174b7a22787c32c3e3e91f52c Mon Sep 17 00:00:00 2001 | |
From: Pawit Pornkitprasan <p.pawit@gmail.com> | |
Date: Tue, 10 Dec 2013 19:37:23 +0700 | |
Subject: [PATCH 2/4] SurfaceFlinger: ifdef EVENT_ORIENTATION | |
Some HWC implementation spam the log on unknown event | |
Change-Id: I3cdbd51f8badc195a14ff2b979d78c363e525207 | |
--- | |
services/surfaceflinger/SurfaceFlinger.cpp | 4 ++++ | |
1 file changed, 4 insertions(+) | |
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp | |
index 822130b..8583393 100644 | |
--- a/services/surfaceflinger/SurfaceFlinger.cpp | |
+++ b/services/surfaceflinger/SurfaceFlinger.cpp | |
@@ -1103,6 +1103,7 @@ void SurfaceFlinger::setUpHWComposer() { | |
sp<const DisplayDevice> hw(mDisplays[dpy]); | |
const int32_t id = hw->getHwcDisplayId(); | |
if (id >= 0) { | |
+#ifdef QCOM_HARDWARE | |
// Get the layers in the current drawying state | |
const LayerVector& layers(mDrawingState.layersSortedByZ); | |
bool freezeSurfacePresent = false; | |
@@ -1122,6 +1123,7 @@ void SurfaceFlinger::setUpHWComposer() { | |
} | |
} | |
} | |
+#endif | |
const Vector< sp<Layer> >& currentLayers( | |
hw->getVisibleLayersSortedByZ()); | |
@@ -1135,6 +1137,7 @@ void SurfaceFlinger::setUpHWComposer() { | |
*/ | |
const sp<Layer>& layer(currentLayers[i]); | |
layer->setPerFrameData(hw, *cur); | |
+#ifdef QCOM_HARDWARE | |
if(freezeSurfacePresent) { | |
// if freezeSurfacePresent, set ANIMATING flag | |
cur->setAnimating(true); | |
@@ -1155,6 +1158,7 @@ void SurfaceFlinger::setUpHWComposer() { | |
} | |
} | |
} | |
+#endif | |
} | |
} | |
} | |
-- | |
1.8.3.4 (Apple Git-47) | |
From 8a097001d151587a4d4e5205fe92b88d905281fe Mon Sep 17 00:00:00 2001 | |
From: Pawit Pornkitprasan <p.pawit@gmail.com> | |
Date: Tue, 10 Dec 2013 19:38:42 +0700 | |
Subject: [PATCH 3/4] sf: add CAPRI_HWC compatibility | |
Change-Id: Iaaba61dc661fcb801ea11db58d129a01105648a3 | |
--- | |
services/surfaceflinger/DisplayHardware/HWComposer.cpp | 5 +++++ | |
services/surfaceflinger/Layer.cpp | 3 +++ | |
2 files changed, 8 insertions(+) | |
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp | |
index eead7f1..7c5be2f 100644 | |
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp | |
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp | |
@@ -1132,13 +1132,18 @@ public: | |
//getLayer()->compositionType = HWC_FRAMEBUFFER; | |
} | |
virtual void setPlaneAlpha(uint8_t alpha) { | |
+// CAPRI_HWC does not respect planeAlpha despite being v1.2 | |
+#ifndef CAPRI_HWC | |
if (hwcHasApiVersion(mHwc, HWC_DEVICE_API_VERSION_1_2)) { | |
getLayer()->planeAlpha = alpha; | |
} else { | |
+#endif | |
if (alpha < 0xFF) { | |
getLayer()->flags |= HWC_SKIP_LAYER; | |
} | |
+#ifndef CAPRI_HWC | |
} | |
+#endif | |
} | |
virtual void setDefaultState() { | |
hwc_layer_1_t* const l = getLayer(); | |
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp | |
index dd66f0b..2235cd5 100644 | |
--- a/services/surfaceflinger/Layer.cpp | |
+++ b/services/surfaceflinger/Layer.cpp | |
@@ -1172,6 +1172,8 @@ uint32_t Layer::getEffectiveUsage(uint32_t usage) const | |
void Layer::updateTransformHint(const sp<const DisplayDevice>& hw) const { | |
uint32_t orientation = 0; | |
+// CAPRI_HWC has display problem in landscape mode when transform is used | |
+#ifndef CAPRI_HWC | |
if (!mFlinger->mDebugDisableTransformHint) { | |
// The transform hint is used to improve performance, but we can | |
// only have a single transform hint, it cannot | |
@@ -1182,6 +1184,7 @@ void Layer::updateTransformHint(const sp<const DisplayDevice>& hw) const { | |
orientation = 0; | |
} | |
} | |
+#endif | |
mSurfaceFlingerConsumer->setTransformHint(orientation); | |
} | |
-- | |
1.8.3.4 (Apple Git-47) | |
From c743a672a7b9b80f3a1765e5a5e0e9093a44a0dd Mon Sep 17 00:00:00 2001 | |
From: Pawit Pornkitprasan <p.pawit@gmail.com> | |
Date: Mon, 16 Dec 2013 15:45:42 +0700 | |
Subject: [PATCH 4/4] sf: CAPRI_HWC: fix rotation artifact | |
Change-Id: I1d9cd2a57ece5a55af318f00c7902994a77776fc | |
--- | |
services/surfaceflinger/SurfaceFlinger.cpp | 5 +++++ | |
1 file changed, 5 insertions(+) | |
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp | |
index 8583393..9688f54 100644 | |
--- a/services/surfaceflinger/SurfaceFlinger.cpp | |
+++ b/services/surfaceflinger/SurfaceFlinger.cpp | |
@@ -3134,6 +3134,11 @@ status_t SurfaceFlinger::captureScreenImplLocked( | |
{ | |
ATRACE_CALL(); | |
+// Rotation artifact problems when useReadPixels is false | |
+#ifdef CAPRI_HWC | |
+ useReadPixels = true; | |
+#endif | |
+ | |
// get screen geometry | |
const uint32_t hw_w = hw->getWidth(); | |
const uint32_t hw_h = hw->getHeight(); | |
-- | |
1.8.3.4 (Apple Git-47) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
goooooooooooooooooooood