st/xorg: Use pipe clear hook for solid fills of whole pixmaps.
authorMichel Dänzer <daenzer@vmware.com>
Thu, 26 Nov 2009 15:46:13 +0000 (16:46 +0100)
committerMichel Dänzer <daenzer@vmware.com>
Thu, 26 Nov 2009 15:46:13 +0000 (16:46 +0100)
Can give a little boost e.g. for anti-aliased text rendering.

src/gallium/state_trackers/xorg/xorg_exa.c

index 66315e257b4092f3ae9c3b6d5608cbe90124dec4..9a7384da88bd32f92722adce6566f681767c8e52 100644 (file)
@@ -368,6 +368,12 @@ ExaSolid(PixmapPtr pPixmap, int x0, int y0, int x1, int y1)
     debug_printf("\tExaSolid(%d, %d, %d, %d)\n", x0, y0, x1, y1);
 #endif
 
+    if (x0 == 0 && y0 == 0 &&
+        x1 == pPixmap->drawable.width && y1 == pPixmap->drawable.height) {
+       exa->pipe->clear(exa->pipe, PIPE_CLEAR_COLOR, exa->solid_color, 0.0, 0);
+       return;
+    }
+
     xorg_solid(exa, priv, x0, y0, x1, y1) ;
 }