summaryrefslogtreecommitdiff
path: root/uxa/uxa-render.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-18 22:16:17 +0100
committerOwain G. Ainsworth <oga@openbsd.org>2010-05-25 16:23:09 +0100
commite2dabf379d9c1ed95899b3658661c6c57acbb509 (patch)
tree79ace86075d48b52aab9179ccced7858b5c7739f /uxa/uxa-render.c
parentc08c71f548585248d3f8fed12e223eb2ef1b14e7 (diff)
uxa: Spans! OMG!
Use composite rather than solid blits in order to bring performance on a par with the CPU when using GEM and relocations. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (cherry picked from commit e5c971e7639095d38da3518a5dc404b708d45cfb) Signed-off-by: Owain G. Ainsworth <oga@openbsd.org>
Diffstat (limited to 'uxa/uxa-render.c')
-rw-r--r--uxa/uxa-render.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/uxa/uxa-render.c b/uxa/uxa-render.c
index 8c02deda..0ea6acff 100644
--- a/uxa/uxa-render.c
+++ b/uxa/uxa-render.c
@@ -241,7 +241,7 @@ uxa_get_pixel_from_rgba(CARD32 * pixel,
return TRUE;
}
-static Bool
+Bool
uxa_get_rgba_from_pixel(CARD32 pixel,
CARD16 * red,
CARD16 * green,
@@ -570,7 +570,7 @@ uxa_solid_clear(ScreenPtr screen)
return picture;
}
-static PicturePtr
+PicturePtr
uxa_acquire_solid(ScreenPtr screen, SourcePict *source)
{
uxa_screen_t *uxa_screen = uxa_get_screen(screen);
@@ -937,17 +937,13 @@ uxa_solid_rects (CARD8 op,
!uxa_screen->info->check_solid(&dst_pixmap->drawable, GXcopy, FB_ALLONES))
goto err_region;
- if (op == PictOpClear) {
- pixel = 0;
- } else {
- if (!uxa_get_pixel_from_rgba(&pixel,
- color->red,
- color->green,
- color->blue,
- color->alpha,
- dst->format))
- goto err_region;
- }
+ if (!uxa_get_pixel_from_rgba(&pixel,
+ color->red,
+ color->green,
+ color->blue,
+ color->alpha,
+ dst->format))
+ goto err_region;
if (!uxa_screen->info->prepare_solid(dst_pixmap, GXcopy, FB_ALLONES, pixel))
goto err_region;