loader/dri3: Make sure we invalidate a drawable on size change
authorThomas Hellstrom <thellstrom@vmware.com>
Tue, 5 Sep 2017 08:07:13 +0000 (10:07 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Thu, 7 Sep 2017 10:43:29 +0000 (12:43 +0200)
If we're seeing a drawable size change, in particular after processing a
configure notify event, make sure we invalidate so that the state tracker
picks up the new geometry.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
src/loader/loader_dri3_helper.c

index 51e4e97fb25f6b403551df08409456c3a68068ca..bcd5a66ad2a61c18af87fdaf1d9d3f61959edadf 100644 (file)
@@ -348,6 +348,7 @@ dri3_handle_present_event(struct loader_dri3_drawable *draw,
       draw->width = ce->width;
       draw->height = ce->height;
       draw->vtable->set_drawable_size(draw, draw->width, draw->height);
       draw->width = ce->width;
       draw->height = ce->height;
       draw->vtable->set_drawable_size(draw, draw->width, draw->height);
+      draw->ext->flush->invalidate(draw->dri_drawable);
       break;
    }
    case XCB_PRESENT_COMPLETE_NOTIFY: {
       break;
    }
    case XCB_PRESENT_COMPLETE_NOTIFY: {
@@ -1592,6 +1593,7 @@ loader_dri3_update_drawable_geometry(struct loader_dri3_drawable *draw)
       draw->width = geom_reply->width;
       draw->height = geom_reply->height;
       draw->vtable->set_drawable_size(draw, draw->width, draw->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);
 
       free(geom_reply);
    }
 
       free(geom_reply);
    }