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:
parent
3072e9633b
commit
271d9d58a1
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue