[Intel-gfx] [PATCH xf86-video-intel] sna: Replace the blt SYNC_COPY assert with a check

Ville Syrjala ville.syrjala at linux.intel.com
Mon Jun 18 17:39:43 UTC 2018


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

My IVB hits the SYNC_COPY assert in prefer_blt_copy() when I force the
use of the software cursor and I move the cursor on top of a dri2
window. Looks like any platform with sna_wait_for_scanline() implemented
should be capable of tripping this assert.

Let's just replace the assert with a check, which is what gen6 already
does. IVB/HSW/BDW have sna_wait_for_scanline() so we'll have to change
the gen7 and gen8 code at least. gen9+ doesn't have sna_wait_for_scanline()
so in theory we could leave that one be, but I like consistency so let's
change that one too.

Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
 src/sna/gen7_render.c | 5 +++--
 src/sna/gen8_render.c | 5 +++--
 src/sna/gen9_render.c | 5 +++--
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 0a3bda768100..68002409a73d 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2957,11 +2957,12 @@ prefer_blt_copy(struct sna *sna,
 		struct kgem_bo *dst_bo,
 		unsigned flags)
 {
+	if (flags & COPY_SYNC)
+		return false;
+
 	if (sna->kgem.mode == KGEM_BLT)
 		return true;
 
-	assert((flags & COPY_SYNC) == 0);
-
 	if (untiled_tlb_miss(src_bo) ||
 	    untiled_tlb_miss(dst_bo))
 		return true;
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index 69617da561b6..69c29bc6d901 100644
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
@@ -2796,11 +2796,12 @@ prefer_blt_copy(struct sna *sna,
 		struct kgem_bo *dst_bo,
 		unsigned flags)
 {
+	if (flags & COPY_SYNC)
+		return false;
+
 	if (sna->kgem.mode == KGEM_BLT)
 		return true;
 
-	assert((flags & COPY_SYNC) == 0);
-
 	if (untiled_tlb_miss(src_bo) ||
 	    untiled_tlb_miss(dst_bo))
 		return true;
diff --git a/src/sna/gen9_render.c b/src/sna/gen9_render.c
index 505b98afa38c..b9622437897a 100644
--- a/src/sna/gen9_render.c
+++ b/src/sna/gen9_render.c
@@ -2859,11 +2859,12 @@ prefer_blt_copy(struct sna *sna,
 		struct kgem_bo *dst_bo,
 		unsigned flags)
 {
+	if (flags & COPY_SYNC)
+		return false;
+
 	if (sna->kgem.mode == KGEM_BLT)
 		return true;
 
-	assert((flags & COPY_SYNC) == 0);
-
 	if (untiled_tlb_miss(src_bo) ||
 	    untiled_tlb_miss(dst_bo))
 		return true;
-- 
2.16.4



More information about the Intel-gfx mailing list