summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-05-10 10:19:28 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2010-05-10 10:36:15 +0100
commit21c1c3c7f6eb2b5070d2153b15a8fb1afe938bbb (patch)
tree7d1491732aed31217c0b84c65a1e75f413608a54
parentf52b6e832292c02c0010b19882e38e1097beeda0 (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.c25
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;