Mesa (master): freedreno/a6xx: fix occlusion query with more than one tile

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 19 14:21:25 UTC 2020


Module: Mesa
Branch: master
Commit: 7e3a788bd30664e178e1e928719bc8b9bef3a46d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e3a788bd30664e178e1e928719bc8b9bef3a46d

Author: Rob Clark <robdclark at chromium.org>
Date:   Tue Aug 18 15:12:06 2020 -0700

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 <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6376>

---

 src/gallium/drivers/freedreno/a6xx/fd6_gmem.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

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);
 



More information about the mesa-commit mailing list