summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-01-29 05:40:00 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2014-01-29 05:40:00 +0000
commit872468a059e164235527d1501940b2740d3da2ff (patch)
treee4df46e93ec09f91ec54be025bf290056a38de79
parent4b73a0ea22b43807c0118f4d7e9dcac3f0626463 (diff)
sna/gen6+: Encourage inplace uploads for Composite
First try using the blt path for a potential inplace upload for a simple composite operation copying from a ShmPixmap. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/gen6_render.c4
-rw-r--r--src/sna/gen7_render.c4
-rw-r--r--src/sna/gen8_render.c4
3 files changed, 9 insertions, 3 deletions
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index a117bf80..cf417d4c 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -1901,7 +1901,9 @@ try_blt(struct sna *sna,
if (src->pDrawable) {
bo = __sna_drawable_peek_bo(src->pDrawable);
- if (bo && bo->rq)
+ if (bo == NULL)
+ return true;
+ else if (bo->rq)
return RQ_IS_BLT(bo->rq);
}
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index eec6d650..f15e057f 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2182,7 +2182,9 @@ try_blt(struct sna *sna,
if (src->pDrawable) {
bo = __sna_drawable_peek_bo(src->pDrawable);
- if (bo && bo->rq)
+ if (bo == NULL)
+ return true;
+ else if (bo->rq)
return RQ_IS_BLT(bo->rq);
}
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index fcc37abd..25fd5285 100644
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
@@ -1933,7 +1933,9 @@ try_blt(struct sna *sna,
if (src->pDrawable) {
bo = __sna_drawable_peek_bo(src->pDrawable);
- if (bo && bo->rq)
+ if (bo == NULL)
+ return true;
+ else if (bo->rq)
return RQ_IS_BLT(bo->rq);
}