From 1e46ca673cd038b0d2c0002c6dcaabdaf1dcdc85 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 14 Jun 2023 11:34:28 -0400 Subject: [PATCH] dri3: only invalidate drawables on geometry change if geometry has changed this is otherwise pointless Acked-by: Daniel Stone Part-of: --- src/loader/loader_dri3_helper.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c index d25b1b3a687..32135770e9d 100644 --- a/src/loader/loader_dri3_helper.c +++ b/src/loader/loader_dri3_helper.c @@ -2326,10 +2326,13 @@ loader_dri3_update_drawable_geometry(struct loader_dri3_drawable *draw) geom_reply = xcb_get_geometry_reply(draw->conn, geom_cookie, NULL); if (geom_reply) { + bool changed = draw->width != geom_reply->width || draw->height != geom_reply->height; draw->width = geom_reply->width; draw->height = geom_reply->height; - draw->vtable->set_drawable_size(draw, draw->width, draw->height); - draw->ext->flush->invalidate(draw->dri_drawable); + if (changed) { + draw->vtable->set_drawable_size(draw, draw->width, draw->height); + draw->ext->flush->invalidate(draw->dri_drawable); + } free(geom_reply); }