From 1583bea9dab571069790fd773e1b4e9cb8a382a6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timur=20Krist=C3=B3f?= Date: Thu, 2 Mar 2023 17:29:53 -0800 Subject: [PATCH] radv: Set pending_vmem on dynamic VS input args. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit These are loaded from VMEM and need a waitcnt before use. Signed-off-by: Timur Kristóf Reviewed-by: Daniel Schürmann Part-of: --- src/amd/vulkan/radv_shader_args.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_shader_args.c b/src/amd/vulkan/radv_shader_args.c index a969f9d..494f391 100644 --- a/src/amd/vulkan/radv_shader_args.c +++ b/src/amd/vulkan/radv_shader_args.c @@ -364,8 +364,10 @@ declare_vs_input_vgprs(enum amd_gfx_level gfx_level, const struct radv_shader_in if (info->vs.dynamic_inputs) { assert(info->vs.use_per_attribute_vb_descs); unsigned num_attributes = util_last_bit(info->vs.input_slot_usage_mask); - for (unsigned i = 0; i < num_attributes; i++) + for (unsigned i = 0; i < num_attributes; i++) { ac_add_arg(&args->ac, AC_ARG_VGPR, 4, AC_ARG_INT, &args->vs_inputs[i]); + args->ac.args[args->vs_inputs[i].arg_index].pending_vmem = true; + } /* Ensure the main shader doesn't use less vgprs than the prolog. The prolog requires one * VGPR more than the number of shader arguments in the case of non-trivial divisors on GFX8. */ -- 2.7.4