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: 13fc03f4c0
("freedreno/a6xx: Avoid stalling for occlusion queries")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6376>
This commit is contained in:
parent
5550bc0423
commit
7e3a788bd3
|
@ -1226,6 +1226,9 @@ fd6_emit_tile(struct fd_batch *batch, const struct fd_tile *tile)
|
||||||
} else {
|
} else {
|
||||||
emit_conditional_ib(batch, tile, batch->draw);
|
emit_conditional_ib(batch, tile, batch->draw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (batch->epilogue)
|
||||||
|
fd6_emit_ib(batch->gmem, batch->epilogue);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1267,9 +1270,6 @@ fd6_emit_tile_fini(struct fd_batch *batch)
|
||||||
{
|
{
|
||||||
struct fd_ringbuffer *ring = batch->gmem;
|
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_PKT4(ring, REG_A6XX_GRAS_LRZ_CNTL, 1);
|
||||||
OUT_RING(ring, A6XX_GRAS_LRZ_CNTL_ENABLE);
|
OUT_RING(ring, A6XX_GRAS_LRZ_CNTL_ENABLE);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue