diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-05-18 22:16:17 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-05-23 18:43:29 +0100 |
commit | e5c971e7639095d38da3518a5dc404b708d45cfb (patch) | |
tree | e63d12aec9842acc42480064a6e4924f045fc402 /uxa/uxa-render.c | |
parent | 509df27c7401e96d3062890da73f6af6629adef4 (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>
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 726079a5..68e36515 100644 --- a/uxa/uxa-render.c +++ b/uxa/uxa-render.c @@ -251,7 +251,7 @@ uxa_get_pixel_from_rgba(CARD32 * pixel, return TRUE; } -static Bool +Bool uxa_get_rgba_from_pixel(CARD32 pixel, CARD16 * red, CARD16 * green, @@ -607,7 +607,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); @@ -974,17 +974,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; |