From 5f566bed4abd8d5efedd36fa41a9aebbba2c93ef Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 20 Aug 2009 14:17:05 -0400 Subject: [PATCH] dri2: Don't crash in SwapBuffers for non DRI2_Flush drivers --- glx/glxdri2.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-) diff --git a/glx/glxdri2.c b/glx/glxdri2.c index f0df040..b408c2f 100644 --- a/glx/glxdri2.c +++ b/glx/glxdri2.c @@ -173,10 +173,15 @@ __glXDRIdrawableSwapBuffers(__GLXdrawable *drawable) __GLXDRIdrawable *priv = (__GLXDRIdrawable *) drawable; __GLXDRIscreen *screen = priv->screen; - (*screen->flush->flushInvalidate)(priv->driDrawable); - - if (DRI2SwapBuffers(drawable->pDraw) != Success) - return FALSE; + if (screen->flush) { + (*screen->flush->flushInvalidate)(priv->driDrawable); + + if (DRI2SwapBuffers(drawable->pDraw) != Success) + return FALSE; + } else { + __glXDRIdrawableCopySubBuffer(drawable, 0, 0, + priv->width, priv->height); + } return TRUE; } -- 1.6.4