freedreno/tools: Fix async flush vs fdperf/computerator

They need to wait on the ready fence to ensure the submit has been
flushed to the kernel.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10626>
This commit is contained in:
Rob Clark 2021-05-04 09:03:43 -07:00 committed by Marge Bot
parent a1c56b8091
commit b447db41fc
2 changed files with 11 additions and 1 deletions

View File

@ -284,7 +284,12 @@ main(int argc, char **argv)
backend->emit_grid(kernel, grid, submit);
fd_submit_flush(submit, -1, NULL);
struct fd_submit_fence fence = {};
util_queue_fence_init(&fence.ready);
fd_submit_flush(submit, -1, &fence);
util_queue_fence_wait(&fence.ready);
for (int i = 0; i < kernel->num_bufs; i++) {
fd_bo_cpu_prep(kernel->bufs[i], pipe, FD_BO_PREP_READ);

View File

@ -173,9 +173,14 @@ flush_ring(void)
if (!dev.submit)
return;
struct fd_submit_fence fence = {};
util_queue_fence_init(&fence.ready);
ret = fd_submit_flush(dev.submit, -1, NULL);
if (ret)
errx(1, "submit failed: %d", ret);
util_queue_fence_wait(&fence.ready);
fd_ringbuffer_del(dev.ring);
fd_submit_del(dev.submit);