If the source has not been verified to be clear, then using the SRC
operator will paint the wrong color.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
width, height,
tmp);
- if (op == PictOpClear)
+ if (op == PictOpClear && src == sna->clear)
op = PictOpSrc;
tmp->op = op;
if (!gen6_composite_set_target(sna, tmp, dst,
width, height,
tmp);
- if (op == PictOpClear)
+ if (op == PictOpClear && src == sna->clear)
op = PictOpSrc;
tmp->op = op;
if (!gen7_composite_set_target(sna, tmp, dst,
goto done;
}
+ if (op == PictOpClear && sna->clear)
+ src = sna->clear;
+
if (force_fallback ||
!sna->render.composite(sna, op, src, NULL, dst,
src_x, src_y,
unbounded = (!sna_drawable_is_clear(dst->pDrawable) &&
!operator_is_bounded(op));
+ if (op == PictOpClear && mono.sna->clear)
+ src = mono.sna->clear;
+
mono.sna = sna;
if (!mono.sna->render.composite(mono.sna, op, src, NULL, dst,
src_x + mono.clip.extents.x1 - dst_x - dx,