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:
parent
a1c56b8091
commit
b447db41fc
|
@ -284,7 +284,12 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
backend->emit_grid(kernel, grid, submit);
|
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++) {
|
for (int i = 0; i < kernel->num_bufs; i++) {
|
||||||
fd_bo_cpu_prep(kernel->bufs[i], pipe, FD_BO_PREP_READ);
|
fd_bo_cpu_prep(kernel->bufs[i], pipe, FD_BO_PREP_READ);
|
||||||
|
|
|
@ -173,9 +173,14 @@ flush_ring(void)
|
||||||
if (!dev.submit)
|
if (!dev.submit)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
struct fd_submit_fence fence = {};
|
||||||
|
util_queue_fence_init(&fence.ready);
|
||||||
|
|
||||||
ret = fd_submit_flush(dev.submit, -1, NULL);
|
ret = fd_submit_flush(dev.submit, -1, NULL);
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
errx(1, "submit failed: %d", ret);
|
errx(1, "submit failed: %d", ret);
|
||||||
|
util_queue_fence_wait(&fence.ready);
|
||||||
fd_ringbuffer_del(dev.ring);
|
fd_ringbuffer_del(dev.ring);
|
||||||
fd_submit_del(dev.submit);
|
fd_submit_del(dev.submit);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue