From 41a2ccc117370e48e8e47ef6dca11e22e35dfdec Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Sat, 19 Apr 2025 16:53:38 +0200 Subject: [PATCH] panvk/csf: Pass less arguments to emit_vs_attrib() Most of the arguments we pass to emit_vs_attrib() can be extracted from panvk_cmd_buffer, so let's pass a cmdbuf before we add more to this function. Signed-off-by: Boris Brezillon Reviewed-by: Olivia Lee Part-of: (cherry picked from commit b093855caaeb0f8c45e7cbe3a7ce2d31f1e1d6a5) --- .pick_status.json | 2 +- src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index e509efca189..c860057e943 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -234,7 +234,7 @@ "description": "panvk/csf: Pass less arguments to emit_vs_attrib()", "nominated": false, "nomination_type": 0, - "resolution": 4, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c index 62306ab9a40..0e70c89536d 100644 --- a/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c +++ b/src/panfrost/vulkan/csf/panvk_vX_cmd_draw.c @@ -44,11 +44,16 @@ #include "vk_render_pass.h" static void -emit_vs_attrib(const struct vk_vertex_attribute_state *attrib_info, - const struct vk_vertex_binding_state *buf_info, - const struct panvk_attrib_buf *buf, uint32_t vb_desc_offset, +emit_vs_attrib(struct panvk_cmd_buffer *cmdbuf, + uint32_t attrib_idx, uint32_t vb_desc_offset, struct mali_attribute_packed *desc) { + const struct vk_vertex_input_state *vi = + cmdbuf->vk.dynamic_graphics_state.vi; + const struct vk_vertex_attribute_state *attrib_info = + &vi->attributes[attrib_idx]; + const struct vk_vertex_binding_state *buf_info = + &vi->bindings[attrib_info->binding]; bool per_instance = buf_info->input_rate == VK_VERTEX_INPUT_RATE_INSTANCE; enum pipe_format f = vk_format_to_pipe_format(attrib_info->format); unsigned buf_idx = vb_desc_offset + attrib_info->binding; @@ -126,10 +131,7 @@ prepare_vs_driver_set(struct panvk_cmd_buffer *cmdbuf) for (uint32_t i = 0; i < MAX_VS_ATTRIBS; i++) { if (vi->attributes_valid & BITFIELD_BIT(i)) { - unsigned binding = vi->attributes[i].binding; - - emit_vs_attrib(&vi->attributes[i], &vi->bindings[binding], - &cmdbuf->state.gfx.vb.bufs[binding], vb_offset, + emit_vs_attrib(cmdbuf, i, vb_offset, (struct mali_attribute_packed *)(&descs[i])); } else { memset(&descs[i], 0, sizeof(descs[0]));