diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c index af8899eb..257dbc87 100644 --- a/src/sna/gen6_render.c +++ b/src/sna/gen6_render.c @@ -903,7 +903,8 @@ gen6_emit_state(struct sna *sna, if (kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo)) { gen6_emit_flush(sna); kgem_clear_dirty(&sna->kgem); - kgem_bo_mark_dirty(op->dst.bo); + if (op->dst.bo->exec) + kgem_bo_mark_dirty(op->dst.bo); need_stall = false; } if (need_stall) { diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c index d34cdfa0..99296fb1 100644 --- a/src/sna/gen7_render.c +++ b/src/sna/gen7_render.c @@ -1047,7 +1047,8 @@ gen7_emit_state(struct sna *sna, need_stall = GEN7_BLEND(op->u.gen7.flags) != NO_BLEND; gen7_emit_pipe_invalidate(sna, need_stall); kgem_clear_dirty(&sna->kgem); - kgem_bo_mark_dirty(op->dst.bo); + if (op->dst.bo->exec) + kgem_bo_mark_dirty(op->dst.bo); need_stall = false; } if (need_stall)