Module: Mesa Branch: staging/23.2 Commit: addba377e1a0bb9dd9520e036563e3b8ee977d99 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=addba377e1a0bb9dd9520e036563e3b8ee977d99
Author: Alyssa Rosenzweig <[email protected]> Date: Mon Jul 17 16:54:58 2023 -0400 panfrost: Fix transform feedback on v9 We were using a stale FAU buffer which meant we wrote to garbage addresses. I'm guessing this was fallout from the big sysval rework but not 100% sure. Signed-off-by: Alyssa Rosenzweig <[email protected]> Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24199> (cherry picked from commit c282f80c98831a2c41792eae39e843e9c3fb4809) --- .pick_status.json | 2 +- src/gallium/drivers/panfrost/pan_cmdstream.c | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 405994c10c2..760f98535d5 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1374,7 +1374,7 @@ "description": "panfrost: Fix transform feedback on v9", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index 0f887926139..83d511d68d3 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -3436,6 +3436,10 @@ panfrost_launch_xfb(struct panfrost_batch *batch, batch->rsd[PIPE_SHADER_VERTEX] = panfrost_emit_compute_shader_meta(batch, PIPE_SHADER_VERTEX); + batch->uniform_buffers[PIPE_SHADER_VERTEX] = + panfrost_emit_const_buf(batch, PIPE_SHADER_VERTEX, NULL, + &batch->push_uniforms[PIPE_SHADER_VERTEX], NULL); + #if PAN_ARCH >= 9 pan_section_pack(t.cpu, COMPUTE_JOB, PAYLOAD, cfg) { cfg.workgroup_size_x = 1; @@ -3466,10 +3470,6 @@ panfrost_launch_xfb(struct panfrost_batch *batch, info->instance_count, 1, 1, 1, PAN_ARCH <= 5, false); - batch->uniform_buffers[PIPE_SHADER_VERTEX] = - panfrost_emit_const_buf(batch, PIPE_SHADER_VERTEX, NULL, - &batch->push_uniforms[PIPE_SHADER_VERTEX], NULL); - panfrost_draw_emit_vertex(batch, info, &invocation, 0, 0, attribs, attrib_bufs, t.cpu); #endif
