summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/DisplayHardware
diff options
context:
space:
mode:
authorBaldev Sahu <bsahu@codeaurora.org>2015-07-17 10:04:43 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2015-10-07 02:52:17 -0700
commitdfab0ee25433bca9d9158a65cf2861c28a3fd75c (patch)
treebac341bd7a54625c6fc46e1fd125e589ce43e697 /services/surfaceflinger/DisplayHardware
parent67ec1ad104583151740e866066185fdad54e82c9 (diff)
downloadframeworks_native-dfab0ee25433bca9d9158a65cf2861c28a3fd75c.zip
frameworks_native-dfab0ee25433bca9d9158a65cf2861c28a3fd75c.tar.gz
frameworks_native-dfab0ee25433bca9d9158a65cf2861c28a3fd75c.tar.bz2
SurfaceFlinger: Add support for MDP3
This change is porting of following commits related to MDP3 1) SurfaceFlinger: Change to support framebuffer flip for 2D blitters - Surfaceflinger does not flip framebuffers when there are no layers marked for HWC_FRAMEBUFFER - This change checks for the HWC_BLIT flag and will request a flip to a new FB_TARGET buffer even if there are no FRAMEBUFFER layers "Change-Id: I1cb44389a05c9ec049d7f0d39c288feccb11a91c" 2) SF: Avoid wormhole clear for BLIT calls - Do not call GPU clear from SF when composition type is BLIT as it'll be taken care in HAL. "Change-Id: Ia613eb9b824c6484ecc8c8fa4ee883545d8541b8" 3) surfaceflinger: Allow gpu to render widevine level3 - Allow gpu to render widevine level3 but keep blocking screen shots. "Change-Id: I914232a062acbb7b17901dbf2b414973230e59d9" Change-Id: I35eef9eb1597af21c195e07d5fe4c0c73ab3a269
Diffstat (limited to 'services/surfaceflinger/DisplayHardware')
-rw-r--r--services/surfaceflinger/DisplayHardware/HWComposer.cpp7
-rw-r--r--services/surfaceflinger/DisplayHardware/HWComposer.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 8331828..5bdcd7f 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -707,6 +707,9 @@ status_t HWComposer::prepare() {
if (l.compositionType == HWC_OVERLAY) {
disp.hasOvComp = true;
}
+ if (isCompositionTypeBlit(l.compositionType)) {
+ disp.hasFbComp = true;
+ }
if (l.compositionType == HWC_CURSOR_OVERLAY) {
disp.hasOvComp = true;
}
@@ -1242,7 +1245,7 @@ void HWComposer::dump(String8& result) const {
if (hwcHasApiVersion(mHwc, HWC_DEVICE_API_VERSION_1_3)) {
result.appendFormat(
" %9s | %08" PRIxPTR " | %04x | %04x | %02x | %04x | %-11s |%7.1f,%7.1f,%7.1f,%7.1f |%5d,%5d,%5d,%5d | %s\n",
- compositionTypeName[type],
+ (isCompositionTypeBlit(l.compositionType)) ? "HWC_BLIT" : compositionTypeName[type],
intptr_t(l.handle), l.hints, l.flags, l.transform, l.blending, formatStr.string(),
l.sourceCropf.left, l.sourceCropf.top, l.sourceCropf.right, l.sourceCropf.bottom,
l.displayFrame.left, l.displayFrame.top, l.displayFrame.right, l.displayFrame.bottom,
@@ -1250,7 +1253,7 @@ void HWComposer::dump(String8& result) const {
} else {
result.appendFormat(
" %9s | %08" PRIxPTR " | %04x | %04x | %02x | %04x | %-11s |%7d,%7d,%7d,%7d |%5d,%5d,%5d,%5d | %s\n",
- compositionTypeName[type],
+ (isCompositionTypeBlit(l.compositionType)) ? "HWC_BLIT" : compositionTypeName[type],
intptr_t(l.handle), l.hints, l.flags, l.transform, l.blending, formatStr.string(),
l.sourceCrop.left, l.sourceCrop.top, l.sourceCrop.right, l.sourceCrop.bottom,
l.displayFrame.left, l.displayFrame.top, l.displayFrame.right, l.displayFrame.bottom,
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h
index 952635f..ea9a208 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.h
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.h
@@ -312,6 +312,9 @@ public:
* Extensions
*/
virtual inline bool isVDSEnabled() const { return true; };
+ virtual inline bool isCompositionTypeBlit(const int32_t /*compType*/) const {
+ return false;
+ };
private:
void loadHwcModule();