Merge "hwc: mdpcomp: Remove pipe estimation blocks"
diff --git a/libgralloc/alloc_controller.cpp b/libgralloc/alloc_controller.cpp
index 5360554..42f3c77 100644
--- a/libgralloc/alloc_controller.cpp
+++ b/libgralloc/alloc_controller.cpp
@@ -508,6 +508,7 @@
case HAL_PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:
case HAL_PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
case HAL_PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
+ case HAL_PIXEL_FORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
size = alignedw * alignedh * ASTC_BLOCK_SIZE;
break;
default:
diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index 5c9f2d1..f157f6b 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -471,6 +471,9 @@
case HWC_COLOR_FILL:
value[0] = 1;
break;
+ case HWC_MAX_WRITEBACK_WIDTH:
+ value[0] = qdutils::MAX_DISPLAY_DIM;
+ break;
default:
return -EINVAL;
}
diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index 7be2f78..364dc02 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -233,7 +233,7 @@
fbCount = numLayers;
mdpCount = 0;
needsRedraw = true;
- fbZ = 0;
+ fbZ = -1;
}
void MDPComp::FrameInfo::map() {
@@ -630,7 +630,6 @@
}
mCurrentFrame.fbCount = 0;
- mCurrentFrame.fbZ = -1;
memcpy(&mCurrentFrame.isFBComposed, &mCurrentFrame.drop,
sizeof(mCurrentFrame.isFBComposed));
mCurrentFrame.mdpCount = mCurrentFrame.layerCount - mCurrentFrame.fbCount -
@@ -1120,14 +1119,14 @@
int maxBatchCount = 0;
int fbZ = -1;
- /* All or Nothing is cached. No batching needed */
- if(!mCurrentFrame.fbCount) {
- mCurrentFrame.fbZ = -1;
+ /* Nothing is cached. No batching needed */
+ if(mCurrentFrame.fbCount == 0) {
return true;
}
- if(!mCurrentFrame.mdpCount) {
- mCurrentFrame.fbZ = 0;
- return true;
+
+ /* No MDP comp layers, try to use other comp modes */
+ if(mCurrentFrame.mdpCount == 0) {
+ return false;
}
fbZ = getBatch(list, maxBatchStart, maxBatchEnd, maxBatchCount);
diff --git a/libhwcomposer/hwc_utils.cpp b/libhwcomposer/hwc_utils.cpp
index d30984b..d94e0e9 100644
--- a/libhwcomposer/hwc_utils.cpp
+++ b/libhwcomposer/hwc_utils.cpp
@@ -1250,15 +1250,14 @@
}
}
- //Accumulate acquireFenceFds for MDP
+ //Accumulate acquireFenceFds for MDP Overlays
if(list->outbufAcquireFenceFd >= 0) {
//Writeback output buffer
acquireFd[count++] = list->outbufAcquireFenceFd;
}
for(uint32_t i = 0; i < list->numHwLayers; i++) {
- if((list->hwLayers[i].compositionType == HWC_OVERLAY ||
- list->hwLayers[i].compositionType == HWC_BLIT) &&
+ if(list->hwLayers[i].compositionType == HWC_OVERLAY &&
list->hwLayers[i].acquireFenceFd >= 0) {
if(UNLIKELY(swapzero))
acquireFd[count++] = -1;
@@ -1314,7 +1313,13 @@
!(layerProp[i].mFlags & HWC_VPUCOMP)) {
//If rotator has not already populated this field
// & if it's a not VPU layer
- list->hwLayers[i].releaseFenceFd = dup(releaseFd);
+ if(list->hwLayers[i].compositionType == HWC_BLIT) {
+ //For Blit, the app layers should be released when the Blit is
+ //complete. This fd was passed from copybit->draw
+ list->hwLayers[i].releaseFenceFd = dup(fd);
+ } else {
+ list->hwLayers[i].releaseFenceFd = dup(releaseFd);
+ }
}
}
}
diff --git a/libqservice/QServiceUtils.h b/libqservice/QServiceUtils.h
index a5f4f7f..699164d 100644
--- a/libqservice/QServiceUtils.h
+++ b/libqservice/QServiceUtils.h
@@ -49,7 +49,7 @@
}
inline android::status_t sendSingleParam(uint32_t command, uint32_t value) {
- android::status_t err = (status_t) android::FAILED_TRANSACTION;
+ android::status_t err = (android::status_t) android::FAILED_TRANSACTION;
android::sp<qService::IQService> binder = getBinder();
android::Parcel inParcel, outParcel;
inParcel.writeInt32(value);