sna/gen6+: Do not call sna_blt_composite() after prepping the composite op
As sna_blt_composite() will overwrite parts of the composite op as it checks whether or not it can execute that operation, it will lead to a crash as the normal render path finds the op corrupt. (The BLT conversion functions cater for the cases where we may wish to switch pipelines after choosing src/dst bo.) Reported-by: rei4dan@gmail.com Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
cbbe7727e7
commit
8e10a5b348
|
|
@ -2685,15 +2685,6 @@ gen6_render_composite(struct sna *sna,
|
|||
if (!gen6_composite_set_target(sna, tmp, dst))
|
||||
return false;
|
||||
|
||||
if (mask == NULL && sna->kgem.mode == KGEM_BLT &&
|
||||
sna_blt_composite(sna, op,
|
||||
src, dst,
|
||||
src_x, src_y,
|
||||
dst_x, dst_y,
|
||||
width, height,
|
||||
tmp, false))
|
||||
return true;
|
||||
|
||||
sna_render_reduce_damage(tmp, dst_x, dst_y, width, height);
|
||||
|
||||
if (too_large(tmp->dst.width, tmp->dst.height)) {
|
||||
|
|
|
|||
|
|
@ -2788,16 +2788,6 @@ gen7_render_composite(struct sna *sna,
|
|||
if (!gen7_composite_set_target(sna, tmp, dst))
|
||||
return false;
|
||||
|
||||
if (mask == NULL &&
|
||||
sna->kgem.mode == KGEM_BLT &&
|
||||
sna_blt_composite(sna, op,
|
||||
src, dst,
|
||||
src_x, src_y,
|
||||
dst_x, dst_y,
|
||||
width, height,
|
||||
tmp, false))
|
||||
return true;
|
||||
|
||||
sna_render_reduce_damage(tmp, dst_x, dst_y, width, height);
|
||||
|
||||
if (too_large(tmp->dst.width, tmp->dst.height)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue