freedreno/batch: replace lrz_clear with prologue
[mesa.git] / src / gallium / drivers / freedreno / a6xx / fd6_gmem.c
index eb4cbbf52df5d80cdf10d2818df8a1f53dff247f..32ea772a5bc3a407241dd76a59f3b2c3ba34e40a 100644 (file)
@@ -677,10 +677,10 @@ fd6_emit_tile_init(struct fd_batch *batch)
 
        fd6_emit_lrz_flush(ring);
 
-       if (batch->lrz_clear) {
-               fd_log(batch, "START LRZ CLEAR");
-               fd6_emit_ib(ring, batch->lrz_clear);
-               fd_log(batch, "END LRZ CLEAR");
+       if (batch->prologue) {
+               fd_log(batch, "START PROLOGUE");
+               fd6_emit_ib(ring, batch->prologue);
+               fd_log(batch, "END PROLOGUE");
        }
 
        fd6_cache_inv(batch, ring);
@@ -1364,6 +1364,13 @@ fd6_emit_sysmem_prep(struct fd_batch *batch)
        struct fd_ringbuffer *ring = batch->gmem;
 
        fd6_emit_restore(batch, ring);
+       fd6_emit_lrz_flush(ring);
+
+       if (batch->prologue) {
+               fd_log(batch, "START PROLOGUE");
+               fd6_emit_ib(ring, batch->prologue);
+               fd_log(batch, "END PROLOGUE");
+       }
 
        if (pfb->width > 0 && pfb->height > 0)
                set_scissor(ring, 0, 0, pfb->width - 1, pfb->height - 1);
@@ -1376,11 +1383,6 @@ fd6_emit_sysmem_prep(struct fd_batch *batch)
 
        emit_sysmem_clears(batch, ring);
 
-       fd6_emit_lrz_flush(ring);
-
-       if (batch->lrz_clear)
-               fd6_emit_ib(ring, batch->lrz_clear);
-
        emit_marker6(ring, 7);
        OUT_PKT7(ring, CP_SET_MARKER, 1);
        OUT_RING(ring, A6XX_CP_SET_MARKER_0_MODE(RM6_BYPASS));