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>
(cherry picked from commit 7e3a788bd3)
This commit is contained in:
Rob Clark 2020-08-18 15:12:06 -07:00 committed by Dylan Baker
parent 99d5727d2d
commit fc698d8ce7
2 changed files with 4 additions and 4 deletions

View file

@ -1183,7 +1183,7 @@
"description": "freedreno/a6xx: fix occlusion query with more than one tile",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "13fc03f4c0e709f6d1a8d811f9bc8a0c8c42943c"
},

View file

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