From eefe34127f8e8ae2ba91a7837b9dfef999dc3f87 Mon Sep 17 00:00:00 2001 From: "Eric R. Smith" Date: Tue, 7 May 2024 16:05:02 -0300 Subject: [PATCH] panfrost: add a barrier when launching xfb jobs in CSF When we start writing to an XFB buffer we need to synchronize with any batches reading from it (because the data they need is about to be overwritten). Do this by introducing a barrier in csf_launch_xfb. This patch fixes a valhall failure in KHR-GLES31.core.vertex_attrib_binding.advanced-iterations Cc: mesa-stable Signed-off-by: Eric R. Smith Reviewed-by: Boris Brezillon Part-of: --- src/gallium/drivers/panfrost/pan_csf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/panfrost/pan_csf.c b/src/gallium/drivers/panfrost/pan_csf.c index 58d4e01d22e..b23be5221f5 100644 --- a/src/gallium/drivers/panfrost/pan_csf.c +++ b/src/gallium/drivers/panfrost/pan_csf.c @@ -671,6 +671,9 @@ GENX(csf_launch_xfb)(struct panfrost_batch *batch, csf_emit_shader_regs(batch, PIPE_SHADER_VERTEX, batch->rsd[PIPE_SHADER_VERTEX]); + /* force a barrier to avoid read/write sync issues with buffers */ + cs_wait_slot(b, 2, false); + /* XXX: Choose correctly */ cs_run_compute(b, 1, MALI_TASK_AXIS_Z, false, cs_shader_res_sel(0, 0, 0, 0)); }