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