(In reply to comment #148)
> Worth trying just:
>
> diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
> index 637137e..dc80de3 100644
> --- a/src/sna/gen4_render.c
> +++ b/src/sna/gen4_render.c
> @@ -660,9 +660,11 @@ inline static int gen4_get_rectangles(struct sna *sna,
> if (rem <= 0) {
> if (sna->render.vertex_offset) {
> gen4_vertex_flush(sna);
> - if (gen4_magic_ca_pass(sna, op))
> + if (gen4_magic_ca_pass(sna, op)) {
> + OUT_BATCH(MI_FLUSH |
> MI_INHIBIT_RENDER_CACHE_FLUSH);
> gen4_emit_pipelined_pointers(sna,
> op, op->op,
>
> op->u.gen4.wm_kernel);
> + }
> }
> OUT_BATCH(MI_FLUSH | MI_INHIBIT_RENDER_CACHE_FLUSH);
> rem = MAX_FLUSH_VERTICES;
>
> if you are happy that it reproduces reliably.
This change did not fully solve the problem. One text file in gedit displayed as blank initially for a bit, although things then seemed fine. But the freeze with "[drm] stuck on render ring" happened during a second run of gtkperf - while the "GtkDrawingArea - Text" test was running.
But I didn't spot any corrupted characters while running 2.99.907 with MAX_FLUSH_VERTICES set back to 6 - although I hadn't been running that for very long, and I only see a single garbled char occasionally, and I think they only appear in Firefox.
(In reply to comment #148) gen4_render. c b/src/sna/ gen4_render. c gen4_render. c gen4_render. c rectangles( struct sna *sna, vertex_ offset) { flush(sna) ; ca_pass( sna, op)) ca_pass( sna, op)) { RENDER_ CACHE_FLUSH) ; pipelined_ pointers( sna, wm_kernel) ; RENDER_ CACHE_FLUSH) ;
> Worth trying just:
>
> diff --git a/src/sna/
> index 637137e..dc80de3 100644
> --- a/src/sna/
> +++ b/src/sna/
> @@ -660,9 +660,11 @@ inline static int gen4_get_
> if (rem <= 0) {
> if (sna->render.
> gen4_vertex_
> - if (gen4_magic_
> + if (gen4_magic_
> + OUT_BATCH(MI_FLUSH |
> MI_INHIBIT_
> gen4_emit_
> op, op->op,
>
> op->u.gen4.
> + }
> }
> OUT_BATCH(MI_FLUSH | MI_INHIBIT_
> rem = MAX_FLUSH_VERTICES;
>
> if you are happy that it reproduces reliably.
This change did not fully solve the problem. One text file in gedit displayed as blank initially for a bit, although things then seemed fine. But the freeze with "[drm] stuck on render ring" happened during a second run of gtkperf - while the "GtkDrawingArea - Text" test was running.
But I didn't spot any corrupted characters while running 2.99.907 with MAX_FLUSH_VERTICES set back to 6 - although I hadn't been running that for very long, and I only see a single garbled char occasionally, and I think they only appear in Firefox.