sna/gen4+: Refine test for preferring GPU spans
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
c8f622726a
commit
3e82fcc8d2
|
|
@ -2680,7 +2680,17 @@ gen4_check_composite_spans(struct sna *sna,
|
|||
return FORCE_SPANS > 0;
|
||||
|
||||
if ((flags & COMPOSITE_SPANS_RECTILINEAR) == 0) {
|
||||
DBG(("%s: fallback, non-rectilinear spans\n",
|
||||
if ((flags & COMPOSITE_SPANS_INPLACE_HINT) == 0) {
|
||||
struct sna_pixmap *priv = sna_pixmap_from_drawable(dst->pDrawable);
|
||||
assert(priv);
|
||||
|
||||
if ((priv->cpu_bo && kgem_bo_is_busy(priv->cpu_bo)) ||
|
||||
(priv->gpu_bo && kgem_bo_is_busy(priv->gpu_bo))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
DBG(("%s: fallback, non-rectilinear spans to idle bo\n",
|
||||
__FUNCTION__));
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2692,13 +2692,15 @@ gen5_check_composite_spans(struct sna *sna,
|
|||
return false;
|
||||
}
|
||||
|
||||
if ((flags & (COMPOSITE_SPANS_RECTILINEAR | COMPOSITE_SPANS_INPLACE_HINT)) == 0) {
|
||||
struct sna_pixmap *priv = sna_pixmap_from_drawable(dst->pDrawable);
|
||||
assert(priv);
|
||||
if ((flags & COMPOSITE_SPANS_RECTILINEAR) == 0) {
|
||||
if ((flags & COMPOSITE_SPANS_INPLACE_HINT) == 0) {
|
||||
struct sna_pixmap *priv = sna_pixmap_from_drawable(dst->pDrawable);
|
||||
assert(priv);
|
||||
|
||||
if ((priv->cpu_bo && kgem_bo_is_busy(priv->cpu_bo)) ||
|
||||
(priv->gpu_bo && kgem_bo_is_busy(priv->gpu_bo))) {
|
||||
return true;
|
||||
if ((priv->cpu_bo && kgem_bo_is_busy(priv->cpu_bo)) ||
|
||||
(priv->gpu_bo && kgem_bo_is_busy(priv->gpu_bo))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
DBG(("%s: fallback, non-rectilinear spans to idle bo\n",
|
||||
|
|
|
|||
|
|
@ -3123,13 +3123,15 @@ gen6_check_composite_spans(struct sna *sna,
|
|||
return false;
|
||||
}
|
||||
|
||||
if ((flags & (COMPOSITE_SPANS_RECTILINEAR | COMPOSITE_SPANS_INPLACE_HINT)) == 0) {
|
||||
struct sna_pixmap *priv = sna_pixmap_from_drawable(dst->pDrawable);
|
||||
assert(priv);
|
||||
if ((flags & COMPOSITE_SPANS_RECTILINEAR) == 0) {
|
||||
if ((flags & COMPOSITE_SPANS_INPLACE_HINT) == 0) {
|
||||
struct sna_pixmap *priv = sna_pixmap_from_drawable(dst->pDrawable);
|
||||
assert(priv);
|
||||
|
||||
if ((priv->cpu_bo && kgem_bo_is_busy(priv->cpu_bo)) ||
|
||||
(priv->gpu_bo && kgem_bo_is_busy(priv->gpu_bo))) {
|
||||
return true;
|
||||
if ((priv->cpu_bo && kgem_bo_is_busy(priv->cpu_bo)) ||
|
||||
(priv->gpu_bo && kgem_bo_is_busy(priv->gpu_bo))) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
DBG(("%s: fallback, non-rectilinear spans to idle bo\n",
|
||||
|
|
|
|||
Loading…
Reference in New Issue