From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxx> --- 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 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx