--- /dev/null
+commit 2407e48f2805e27e76e2e1d7083926c4077d9032
+Author: Xiang, Haihao <haihao.xiang@intel.com>
+Date: Wed Dec 5 10:31:35 2007 +0800
+
+ Don't Swap buffer if a DRIDrawable is entirely obscured
+ by another window.
+
+diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
+index 2e2e64c..2b378a5 100644
+--- a/src/mesa/drivers/dri/common/dri_util.c
++++ b/src/mesa/drivers/dri/common/dri_util.c
+@@ -336,6 +336,9 @@ static void driSwapBuffers(__DRIdrawable *drawable)
+ __DRIdrawablePrivate *dPriv = drawable->private;
+ drm_clip_rect_t rect;
+
++ if (!dPriv->numClipRects)
++ return;
++
+ dPriv->swapBuffers(dPriv);
+
+ /* Check that we actually have the new damage report method */