diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index 34b12bc76dc..dab5968e8f9 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -1031,7 +1031,7 @@ dri2_setup_extensions(_EGLDisplay *disp) extensions = dri2_dpy->core->getExtensions(dri2_dpy->dri_screen_render_gpu); - if (dri2_dpy->image_driver || dri2_dpy->dri2) { + if (dri2_dpy->image_driver || dri2_dpy->dri2 || disp->Options.Zink) { if (!loader_bind_extensions(dri2_dpy, dri2_core_extensions, ARRAY_SIZE(dri2_core_extensions), extensions)) return EGL_FALSE; } else { diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index 917c82bdeb2..f2fb0231433 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -464,8 +464,11 @@ dri2_query_surface(_EGLDisplay *disp, _EGLSurface *surf, case EGL_WIDTH: case EGL_HEIGHT: if (x11_get_drawable_info(drawable, &x, &y, &w, &h, dri2_surf)) { + bool changed = surf->Width != w || surf->Height != h; surf->Width = w; surf->Height = h; + if (changed && dri2_dpy->flush) + dri2_dpy->flush->invalidate(drawable); } break; default: