Module: Mesa Branch: main Commit: b447db41fcea9048d5352bb9a1948a4552704d39 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b447db41fcea9048d5352bb9a1948a4552704d39
Author: Rob Clark <[email protected]> Date: Tue May 4 09:03:43 2021 -0700 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 <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10626> --- src/freedreno/computerator/main.c | 7 ++++++- src/freedreno/perfcntrs/fdperf.c | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
