Comment 180 for bug 1098489

Revision history for this message
In , Edward Sheldrake (ejs1920) wrote :

(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.