diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index 815464d58db..1dc2c1fef7a 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -952,7 +952,11 @@ dri2_x11_swap_buffers(_EGLDisplay *disp, _EGLSurface *draw) struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); struct dri2_egl_surface *dri2_surf = dri2_egl_surface(draw); - if (!dri2_dpy->flush) { + if (dri2_dpy->kopper) { + dri2_dpy->kopper->swapBuffers(dri2_surf->dri_drawable); + return EGL_TRUE; + } else if (!dri2_dpy->flush) { + /* aka the swrast path, which does the swap in the gallium driver. */ dri2_dpy->core->swapBuffers(dri2_surf->dri_drawable); return EGL_TRUE; }