diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-18 14:43:37 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-10-18 14:43:37 +0100 |
commit | 0b83abfb2bc3f65447205048ae0af1a94fa9ef15 (patch) | |
tree | 08a6e9e196c6e60aeabe8b041ced6d7e043fa1b1 /src/sna/gen6_render.c | |
parent | ae7bd2bf70b42b8c12e5e5ae074891595827a1c0 (diff) |
sna/gen6: Don't modify composite arguments whilst checking for BLT
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/gen6_render.c')
-rw-r--r-- | src/sna/gen6_render.c | 13 |
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, |