sna/gen6+: Tweak consideration of compositing on BLT

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2014-07-02 11:31:54 +01:00
parent 732cd11cf0
commit 2bf36d54eb
3 changed files with 20 additions and 11 deletions

View File

@ -1943,18 +1943,21 @@ try_blt(struct sna *sna,
}
bo = __sna_drawable_peek_bo(dst->pDrawable);
if (bo && bo->rq)
if (bo == NULL)
return true;
if (bo->rq)
return RQ_IS_BLT(bo->rq);
if (sna_picture_is_solid(src, NULL) && can_switch_to_blt(sna, NULL, 0))
if (sna_picture_is_solid(src, NULL) && can_switch_to_blt(sna, bo, 0))
return true;
if (src->pDrawable) {
bo = __sna_drawable_peek_bo(src->pDrawable);
if (bo == NULL)
return true;
else if (bo->rq)
return RQ_IS_BLT(bo->rq);
if (prefer_blt_bo(sna, bo))
return true;
}
if (sna->kgem.ring == KGEM_BLT) {

View File

@ -2195,18 +2195,21 @@ try_blt(struct sna *sna,
}
bo = __sna_drawable_peek_bo(dst->pDrawable);
if (bo && bo->rq)
if (bo == NULL)
return true;
if (bo->rq)
return RQ_IS_BLT(bo->rq);
if (sna_picture_is_solid(src, NULL) && can_switch_to_blt(sna, NULL, 0))
if (sna_picture_is_solid(src, NULL) && can_switch_to_blt(sna, bo, 0))
return true;
if (src->pDrawable) {
bo = __sna_drawable_peek_bo(src->pDrawable);
if (bo == NULL)
return true;
else if (bo->rq)
return RQ_IS_BLT(bo->rq);
if (prefer_blt_bo(sna, bo))
return true;
}
if (sna->kgem.ring == KGEM_BLT) {

View File

@ -2012,17 +2012,20 @@ try_blt(struct sna *sna,
}
bo = __sna_drawable_peek_bo(dst->pDrawable);
if (bo && bo->rq)
if (bo == NULL)
return true;
if (bo->rq)
return RQ_IS_BLT(bo->rq);
if (sna_picture_is_solid(src, NULL) && can_switch_to_blt(sna, NULL, 0))
if (sna_picture_is_solid(src, NULL) && can_switch_to_blt(sna, bo, 0))
return true;
if (src->pDrawable) {
bo = __sna_drawable_peek_bo(src->pDrawable);
if (bo == NULL)
return true;
else if (bo->rq)
if (prefer_blt_bo(sna, bo))
return RQ_IS_BLT(bo->rq);
}