xf86-video-intel: src/sna/kgem.c
Chris Wilson
ickle at kemper.freedesktop.org
Sat Feb 13 08:45:46 UTC 2016
src/sna/kgem.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
New commits:
commit 9df8119e1e8216d11a116fdc28c1b499a521ef8b
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Feb 13 08:44:15 2016 +0000
sna: Reorder busyness checks after finding the proxy's parents
Due to the way request tracking on proxies work, we need to inspect the
parent and not the proxy itself.
Reported-by: Matti Hämäläinen <ccr at tnsp.org>
References: https://bugs.freedesktop.org/show_bug.cgi?id=94125
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 8e5ec51..3656d5f 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -7003,9 +7003,6 @@ void kgem_bo_sync__cpu(struct kgem *kgem, struct kgem_bo *bo)
assert(!bo->scanout);
assert_tiling(kgem, bo);
- if (bo->rq == NULL && (kgem->has_llc || bo->snoop))
- return;
-
kgem_bo_submit(kgem, bo);
/* SHM pixmaps use proxies for subpage offsets */
@@ -7014,6 +7011,9 @@ void kgem_bo_sync__cpu(struct kgem *kgem, struct kgem_bo *bo)
bo = bo->proxy;
assert(!bo->purged);
+ if (bo->rq == NULL && (kgem->has_llc || bo->snoop))
+ return;
+
if (bo->domain != DOMAIN_CPU || FORCE_MMAP_SYNC & (1 << DOMAIN_CPU)) {
struct drm_i915_gem_set_domain set_domain;
@@ -7043,9 +7043,6 @@ void kgem_bo_sync__cpu_full(struct kgem *kgem, struct kgem_bo *bo, bool write)
assert(!bo->scanout || !write);
assert_tiling(kgem, bo);
- if (bo->rq == NULL && (kgem->has_llc || bo->snoop))
- return;
-
if (write || bo->needs_flush)
kgem_bo_submit(kgem, bo);
@@ -7057,6 +7054,9 @@ void kgem_bo_sync__cpu_full(struct kgem *kgem, struct kgem_bo *bo, bool write)
assert(bo->refcnt);
assert(!bo->purged);
+ if (bo->rq == NULL && (kgem->has_llc || bo->snoop))
+ return;
+
if (bo->domain != DOMAIN_CPU || FORCE_MMAP_SYNC & (1 << DOMAIN_CPU)) {
struct drm_i915_gem_set_domain set_domain;
More information about the xorg-commit
mailing list