Ok, we are now into the realms of a missing GPU flush, or rather a missing workaround.
Can you please try:
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c index ceef528..9d298dd 100644 --- a/src/sna/gen4_render.c +++ b/src/sna/gen4_render.c @@ -1265,6 +1265,7 @@ gen4_emit_pipelined_pointers(struct sna *sna, if (key == sna->render_state.gen4.last_pipelined_pointers) return;
+ OUT_BATCH(MI_FLUSH | MI_INHIBIT_RENDER_CACHE_FLUSH); OUT_BATCH(GEN4_3DSTATE_PIPELINED_POINTERS | 5); OUT_BATCH(sna->render_state.gen4.vs); OUT_BATCH(GEN4_GS_DISABLE); /* passthrough */
with everything else back to normal.
Ok, we are now into the realms of a missing GPU flush, or rather a missing workaround.
Can you please try:
diff --git a/src/sna/ gen4_render. c b/src/sna/ gen4_render. c gen4_render. c gen4_render. c pipelined_ pointers( struct sna *sna, state.gen4. last_pipelined_ pointers)
return;
index ceef528..9d298dd 100644
--- a/src/sna/
+++ b/src/sna/
@@ -1265,6 +1265,7 @@ gen4_emit_
if (key == sna->render_
+ OUT_BATCH(MI_FLUSH | MI_INHIBIT_ RENDER_ CACHE_FLUSH) ;
OUT_BATCH( GEN4_3DSTATE_ PIPELINED_ POINTERS | 5);
OUT_BATCH( sna->render_ state.gen4. vs);
OUT_BATCH( GEN4_GS_ DISABLE) ; /* passthrough */
with everything else back to normal.