diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-05-10 10:19:28 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-05-10 10:36:15 +0100 |
commit | 21c1c3c7f6eb2b5070d2153b15a8fb1afe938bbb (patch) | |
tree | 7d1491732aed31217c0b84c65a1e75f413608a54 | |
parent | f52b6e832292c02c0010b19882e38e1097beeda0 (diff) |
i915: Use 1x1R pixmap for solid drawables
x11perf has a regression
https://bugs.freedesktop.org/show_bug.cgi?id=25068
caused by
commit e581ceb7381e29ecc1a172597d258824f6a1d2d3
i915: Use the color channels to pass along solid sources and masks.
Do not convert 1x1R pixmaps into a solid color as the readback from the
bo negates all the performances advantages of using a smaller vertex
buffer and fewer samplers.
Before (PineView):
aa=66800 glyph/s, rgb=28800 glyphs/s
Now:
aa=96800 glyphs/s, rgb=48500 glyphs/s
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/i915_render.c | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/src/i915_render.c b/src/i915_render.c index 36f50d47..25ad51ce 100644 --- a/src/i915_render.c +++ b/src/i915_render.c @@ -393,19 +393,6 @@ i915_prepare_composite(int op, PicturePtr source_picture, intel->render_source_is_solid = TRUE; intel->render_source_solid = source->solidFill.color; } - } else if (source_picture->pDrawable) { - intel->render_source_is_solid = - source_picture->pDrawable->width == 1 && - source_picture->pDrawable->height == 1 && - source_picture->repeat; - - if (intel->render_source_is_solid) { - if (! uxa_get_color_for_pixmap (source, - source_picture->format, - PICT_a8r8g8b8, - &intel->render_source_solid)) - intel->render_source_is_solid = FALSE; - } } if (!intel->render_source_is_solid && !intel_check_pitch_3d(source)) return FALSE; @@ -418,18 +405,6 @@ i915_prepare_composite(int op, PicturePtr source_picture, intel->render_mask_is_solid = TRUE; intel->render_mask_solid = source->solidFill.color; } - } else if (mask_picture->pDrawable) { - intel->render_mask_is_solid = - mask_picture->pDrawable->width == 1 && - mask_picture->pDrawable->height == 1 && - mask_picture->repeat; - if (intel->render_mask_is_solid) { - if (! uxa_get_color_for_pixmap (mask, - mask_picture->format, - PICT_a8r8g8b8, - &intel->render_mask_solid)) - intel->render_mask_is_solid = FALSE; - } } if (!intel->render_mask_is_solid && !intel_check_pitch_3d(mask)) return FALSE; |