summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-10-18 14:43:37 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-10-18 14:43:37 +0100
commit0b83abfb2bc3f65447205048ae0af1a94fa9ef15 (patch)
tree08a6e9e196c6e60aeabe8b041ced6d7e043fa1b1
parentae7bd2bf70b42b8c12e5e5ae074891595827a1c0 (diff)
sna/gen6: Don't modify composite arguments whilst checking for BLT
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/gen6_render.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index 2392c9ba..badade09 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -2592,18 +2592,15 @@ gen6_render_fill_boxes(struct sna *sna,
dst->drawable.width > 8192 ||
dst->drawable.height > 8192 ||
!gen6_check_dst_format(format)) {
- uint8_t alu = GXcopy;
+ uint8_t alu = -1;
- if (op == PictOpClear) {
+ if (op == PictOpClear || (op == PictOpOutReverse && color->alpha >= 0xff00))
alu = GXclear;
- pixel = 0;
- op = PictOpSrc;
- }
- if (op == PictOpOver && color->alpha >= 0xff00)
- op = PictOpSrc;
+ if (op == PictOpSrc || (op == PictOpOver && color->alpha >= 0xff00))
+ alu = GXcopy;
- if (op == PictOpSrc &&
+ if (alu != -1 &&
sna_get_pixel_from_rgba(&pixel,
color->red,
color->green,