diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-05-18 22:16:17 +0100 |
---|---|---|
committer | Owain G. Ainsworth <oga@openbsd.org> | 2010-05-25 16:23:09 +0100 |
commit | e2dabf379d9c1ed95899b3658661c6c57acbb509 (patch) | |
tree | 79ace86075d48b52aab9179ccced7858b5c7739f /uxa/uxa-render.c | |
parent | c08c71f548585248d3f8fed12e223eb2ef1b14e7 (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.c | 22 |
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; |