From 4ed569eed771a1b70b485430c8b595d817232b1c Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Sun, 25 Aug 2019 17:24:26 +0800 Subject: [PATCH] lima: don't use damage system when full damage Some time weston set full damage region. It is more effient to use the cached pp stream instead of dynamically create one. Reviewed-and-Tested-by: Vasily Khoruzhick Signed-off-by: Qiang Yu --- src/gallium/drivers/lima/lima_resource.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/gallium/drivers/lima/lima_resource.c b/src/gallium/drivers/lima/lima_resource.c index b2e33f4..2f9081c 100644 --- a/src/gallium/drivers/lima/lima_resource.c +++ b/src/gallium/drivers/lima/lima_resource.c @@ -365,6 +365,20 @@ lima_resource_set_damage_region(struct pipe_screen *pscreen, if (!nrects) return; + /* check full damage + * + * TODO: currently only check if there is any single damage + * region that can cover the full render target; there may + * be some accurate way, but a single window size damage + * region is most of the case from weston + */ + for (i = 0; i < nrects; i++) { + if (rects[i].x <= 0 && rects[i].y <= 0 && + rects[i].x + rects[i].width >= pres->width0 && + rects[i].y + rects[i].height >= pres->height0) + return; + } + damage->region = CALLOC(nrects, sizeof(*damage->region)); if (!damage->region) return; -- 2.7.4