summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
diff options
context:
space:
mode:
authorMichel Dänzer <[email protected]>2009-11-26 16:46:13 +0100
committerMichel Dänzer <[email protected]>2009-11-26 16:46:13 +0100
commit42db8c8cdb28bd5f83dd57f5d9a70fb5b94dd14e (patch)
tree4c432a9006de32a982636a0805779eea0ab607a8 /src/gallium/state_trackers
parentb96218c65622a7814ff8154a91874a5e5a9dc773 (diff)
st/xorg: Use pipe clear hook for solid fills of whole pixmaps.
Can give a little boost e.g. for anti-aliased text rendering.
Diffstat (limited to 'src/gallium/state_trackers')
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
index 66315e257b4..9a7384da88b 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa.c
+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
@@ -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) ;
}