hwc: Start with ROI set to destination

Some layers will not have surfaceDamage information,
like video and CPU rendered, so consider their destination
as the surfaceDamage. For other layers start with destination
will be calculated based on the surfaceDamage

Bug: 23218645
Bug: 28447536

Change-Id: Ic7308bf9dfb7d062596873963c738f644b1c1a84
This commit is contained in:
Arun Kumar K.R 2015-08-12 22:50:01 -07:00 committed by Steve Pfetsch
parent 3072e9633b
commit 271d9d58a1
1 changed files with 8 additions and 3 deletions

View File

@ -505,9 +505,11 @@ void MDPCompNonSplit::generateROI(hwc_context_t *ctx,
for(int index = 0; index < numAppLayers; index++ ) {
hwc_layer_1_t* layer = &list->hwLayers[index];
if (layerUpdating(layer) ||
isYuvBuffer((private_handle_t *)layer->handle)) {
hwc_rect_t dirtyRect = (struct hwc_rect){0, 0, 0, 0};;
hwc_rect_t dirtyRect = getIntersection(layer->displayFrame,
fullFrame);
if(!needsScaling(layer) && !layer->transform) {
dirtyRect = calculateDirtyRect(layer, fullFrame);
}
@ -612,9 +614,12 @@ void MDPCompSplit::generateROI(hwc_context_t *ctx,
for(int index = 0; index < numAppLayers; index++ ) {
hwc_layer_1_t* layer = &list->hwLayers[index];
private_handle_t *hnd = (private_handle_t *)layer->handle;
if (layerUpdating(layer) || isYuvBuffer(hnd)) {
hwc_rect_t l_dirtyRect = (struct hwc_rect){0, 0, 0, 0};
hwc_rect_t r_dirtyRect = (struct hwc_rect){0, 0, 0, 0};
hwc_rect_t l_dirtyRect = getIntersection(layer->displayFrame,
l_frame);
hwc_rect_t r_dirtyRect = getIntersection(layer->displayFrame,
r_frame);
if(!needsScaling(layer) && !layer->transform) {
l_dirtyRect = calculateDirtyRect(layer, l_frame);