radeonsi/nir: fix si_nir_load_tcs_varyings() for outputs
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 14 Feb 2018 01:20:56 +0000 (12:20 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Wed, 14 Feb 2018 22:02:41 +0000 (09:02 +1100)
We were incorrectly using the input info for outputs.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_shader.c

index 825cb9dd0ea2874a5d8e85d58148d90caae7959d..ec03f537d0cbcf80599bb2a869b335f58b24110f 100644 (file)
@@ -1254,11 +1254,20 @@ static LLVMValueRef si_nir_load_tcs_varyings(struct ac_shader_abi *abi,
                param_index = LLVMConstInt(ctx->i32, const_index, 0);
        }
 
+       ubyte *names;
+       ubyte *indices;
+       if (load_input) {
+               names = info->input_semantic_name;
+               indices = info->input_semantic_index;
+       } else {
+               names = info->output_semantic_name;
+               indices = info->output_semantic_index;
+       }
+
        dw_addr = get_dw_address_from_generic_indices(ctx, stride, dw_addr,
                                                      vertex_index, param_index,
                                                      driver_location,
-                                                     info->input_semantic_name,
-                                                     info->input_semantic_index,
+                                                     names, indices,
                                                      is_patch);
 
        LLVMValueRef value[4];