Module: Mesa Branch: main Commit: 5de60fbc3eb69b5f605b4a5c16e89a0e7bdf5314 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5de60fbc3eb69b5f605b4a5c16e89a0e7bdf5314
Author: Tatsuyuki Ishi <[email protected]> Date: Fri Jan 27 14:47:39 2023 +0900 radv: Loop over shader stages in flush_indirect_descriptor_sets. Reduces boilerplate. Reviewed-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20935> --- src/amd/vulkan/radv_cmd_buffer.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index ba90306e906..8cdeef73a7b 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -4504,13 +4504,9 @@ radv_flush_indirect_descriptor_sets(struct radv_cmd_buffer *cmd_buffer, if (bind_point == VK_PIPELINE_BIND_POINT_GRAPHICS) { struct radv_graphics_pipeline *graphics_pipeline = radv_pipeline_to_graphics(pipeline); - if (pipeline->shaders[MESA_SHADER_VERTEX]) - radv_emit_userdata_address(device, cs, pipeline, MESA_SHADER_VERTEX, - AC_UD_INDIRECT_DESCRIPTOR_SETS, va); - - if (pipeline->shaders[MESA_SHADER_FRAGMENT]) - radv_emit_userdata_address(device, cs, pipeline, MESA_SHADER_FRAGMENT, - AC_UD_INDIRECT_DESCRIPTOR_SETS, va); + for (unsigned s = MESA_SHADER_VERTEX; s <= MESA_SHADER_FRAGMENT; s++) + if (radv_pipeline_has_stage(graphics_pipeline, s)) + radv_emit_userdata_address(device, cs, pipeline, s, AC_UD_INDIRECT_DESCRIPTOR_SETS, va); if (radv_pipeline_has_stage(graphics_pipeline, MESA_SHADER_MESH)) radv_emit_userdata_address(device, cs, pipeline, MESA_SHADER_MESH, @@ -4519,18 +4515,6 @@ radv_flush_indirect_descriptor_sets(struct radv_cmd_buffer *cmd_buffer, if (radv_pipeline_has_stage(graphics_pipeline, MESA_SHADER_TASK)) radv_emit_userdata_address(device, cmd_buffer->ace_internal.cs, pipeline, MESA_SHADER_TASK, AC_UD_INDIRECT_DESCRIPTOR_SETS, va); - - if (radv_pipeline_has_stage(graphics_pipeline, MESA_SHADER_GEOMETRY)) - radv_emit_userdata_address(device, cs, pipeline, MESA_SHADER_GEOMETRY, - AC_UD_INDIRECT_DESCRIPTOR_SETS, va); - - if (radv_pipeline_has_stage(graphics_pipeline, MESA_SHADER_TESS_CTRL)) - radv_emit_userdata_address(device, cs, pipeline, MESA_SHADER_TESS_CTRL, - AC_UD_INDIRECT_DESCRIPTOR_SETS, va); - - if (radv_pipeline_has_stage(graphics_pipeline, MESA_SHADER_TESS_EVAL)) - radv_emit_userdata_address(device, cs, pipeline, MESA_SHADER_TESS_EVAL, - AC_UD_INDIRECT_DESCRIPTOR_SETS, va); } else { radv_emit_userdata_address(device, cs, pipeline, MESA_SHADER_COMPUTE, AC_UD_INDIRECT_DESCRIPTOR_SETS, va);
