radv/llvm: lower VS IO

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6912>
diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c
index 7ce3250..ac3938a 100644
--- a/src/amd/vulkan/radv_nir_to_llvm.c
+++ b/src/amd/vulkan/radv_nir_to_llvm.c
@@ -1172,11 +1172,7 @@
 	LLVMValueRef input;
 	LLVMValueRef buffer_index;
 	unsigned attrib_count = glsl_count_attribute_slots(variable->type, true);
-	uint8_t input_usage_mask =
-		ctx->args->shader_info->vs.input_usage_mask[variable->data.location];
-	unsigned num_input_channels = util_last_bit(input_usage_mask);
 
-	variable->data.driver_location = variable->data.location * 4;
 
 	enum glsl_base_type type = glsl_get_base_type(variable->type);
 	for (unsigned i = 0; i < attrib_count; ++i) {
@@ -1187,6 +1183,12 @@
 		unsigned num_format = (attrib_format >> 4) & 0x07;
 		bool is_float = num_format != V_008F0C_BUF_NUM_FORMAT_UINT &&
 		                num_format != V_008F0C_BUF_NUM_FORMAT_SINT;
+		uint8_t input_usage_mask =
+			ctx->args->shader_info->vs.input_usage_mask[variable->data.location + i];
+		unsigned num_input_channels = util_last_bit(input_usage_mask);
+
+		if (num_input_channels == 0)
+			continue;
 
 		if (ctx->args->options->key.vs.instance_rate_inputs & (1u << attrib_index)) {
 			uint32_t divisor = ctx->args->options->key.vs.instance_rate_divisors[attrib_index];
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index bdf7277..a7e9cb0 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -760,11 +760,6 @@
 	if (nir->info.stage == MESA_SHADER_COMPUTE)
 		return;
 
-	/* TODO: Lower IO for all stages with LLVM. */
-	if (nir->info.stage == MESA_SHADER_VERTEX &&
-	    radv_use_llvm_for_stage(device, nir->info.stage))
-		return;
-
 	if (nir->info.stage == MESA_SHADER_FRAGMENT) {
 		NIR_PASS_V(nir, lower_view_index);
 		nir_assign_io_var_locations(nir, nir_var_shader_in, &nir->num_inputs,