diff --git a/src/freedreno/computerator/main.c b/src/freedreno/computerator/main.c index 82b2d55de9e..42f0484f353 100644 --- a/src/freedreno/computerator/main.c +++ b/src/freedreno/computerator/main.c @@ -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); diff --git a/src/freedreno/perfcntrs/fdperf.c b/src/freedreno/perfcntrs/fdperf.c index 2789cc6bd87..a9645977b37 100644 --- a/src/freedreno/perfcntrs/fdperf.c +++ b/src/freedreno/perfcntrs/fdperf.c @@ -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);