From 46a1c729b8eb9b323c4dbfd1da425d0b1daf5c2d Mon Sep 17 00:00:00 2001 From: Deepak Rawat Date: Tue, 24 Jul 2018 14:13:34 -0700 Subject: [PATCH] compositor-drm: Set damage for scanout plane Copy the damage region to scanout drm_plane_state which will be sent to kernel during atomic state update. Signed-off-by: Deepak Rawat --- libweston/compositor-drm.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 4171467c..4387ec0e 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -2191,6 +2191,21 @@ drm_output_render(struct drm_output_state *state, pixman_region32_t *damage) scanout_state->dest_w = scanout_state->src_w >> 16; scanout_state->dest_h = scanout_state->src_h >> 16; + pixman_region32_copy(&scanout_state->damage, damage); + if (output->base.zoom.active) { + weston_matrix_transform_region(&scanout_state->damage, + &output->base.matrix, + &scanout_state->damage); + } else { + pixman_region32_translate(&scanout_state->damage, + -output->base.x, -output->base.y); + weston_transformed_region(output->base.width, + output->base.height, + output->base.transform, + output->base.current_scale, + &scanout_state->damage, + &scanout_state->damage); + } pixman_region32_subtract(&c->primary_plane.damage, &c->primary_plane.damage, damage);