From: Rob Clark Date: Tue, 18 Aug 2020 22:12:06 +0000 (-0700) Subject: freedreno/a6xx: fix occlusion query with more than one tile X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7e3a788bd30664e178e1e928719bc8b9bef3a46d;p=mesa.git freedreno/a6xx: fix occlusion query with more than one tile We need to emit epilogue after each tile, not just after the last tile. Fixes: 13fc03f4c0e ("freedreno/a6xx: Avoid stalling for occlusion queries") Signed-off-by: Rob Clark Part-of: --- diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c index a07e02c4af5..236151e01a7 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_gmem.c @@ -1226,6 +1226,9 @@ fd6_emit_tile(struct fd_batch *batch, const struct fd_tile *tile) } else { emit_conditional_ib(batch, tile, batch->draw); } + + if (batch->epilogue) + fd6_emit_ib(batch->gmem, batch->epilogue); } static void @@ -1267,9 +1270,6 @@ fd6_emit_tile_fini(struct fd_batch *batch) { struct fd_ringbuffer *ring = batch->gmem; - if (batch->epilogue) - fd6_emit_ib(batch->gmem, batch->epilogue); - OUT_PKT4(ring, REG_A6XX_GRAS_LRZ_CNTL, 1); OUT_RING(ring, A6XX_GRAS_LRZ_CNTL_ENABLE);