freedreno/a4xx: invalidate cache when vbo's change
[mesa.git] / src / gallium / drivers / freedreno / a4xx / fd4_emit.c
index 3f51e502d0af110ac529d695fc6879e8924c6e3b..44a824ab164a677deb32fe127da55f5cc0dc35e6 100644 (file)
@@ -328,6 +328,13 @@ fd4_emit_vertex_bufs(struct fd_ringbuffer *ring, struct fd4_emit *emit)
        OUT_RING(ring, 0x00000000);   /* XXX VFD_CONTROL_2 */
        OUT_RING(ring, 0x0000fc00);   /* XXX VFD_CONTROL_3 */
        OUT_RING(ring, 0x00000000);   /* XXX VFD_CONTROL_4 */
+
+       /* cache invalidate, otherwise vertex fetch could see
+        * stale vbo contents:
+        */
+       OUT_PKT0(ring, REG_A4XX_UCHE_INVALIDATE0, 2);
+       OUT_RING(ring, 0x00000000);
+       OUT_RING(ring, 0x00000012);
 }
 
 void