From 8ef4c049ecd3cf14190d943b4c27d4f702954be5 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 2 Feb 2024 09:53:15 +0100 Subject: [PATCH] radv: declare streamout buffers for VS+GS compiled separately on GFX9+ The shader input arguments must match. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_shader_args.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index 3d6d236317b..534c47d5e73 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -126,7 +126,12 @@ declare_global_input_sgprs(const struct radv_shader_info *info, const struct use args->ac.inline_push_const_mask = user_sgpr_info->inline_push_constant_mask; } - if (info->so.num_outputs) { + const bool needs_streamout_buffers = + info->so.num_outputs || + (info->merged_shader_compiled_separately && + ((info->stage == MESA_SHADER_VERTEX && info->vs.as_es) || info->stage == MESA_SHADER_GEOMETRY)); + + if (needs_streamout_buffers) { add_ud_arg(args, 1, AC_ARG_CONST_DESC_PTR, &args->streamout_buffers, AC_UD_STREAMOUT_BUFFERS); } }