summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2018-02-14 12:20:56 +1100
committerTimothy Arceri <[email protected]>2018-02-15 09:02:41 +1100
commit7be5f30bb1bbae7bba5ea52bd55c947ae131ca42 (patch)
treefad9896106df920ef496afffec766aaed66b0877 /src/gallium/drivers
parent9740c8a8aa5497d02a589ccaca3783056199fbe0 (diff)
radeonsi/nir: fix si_nir_load_tcs_varyings() for outputs
We were incorrectly using the input info for outputs. Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/radeonsi/si_shader.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c
index 825cb9dd0ea..ec03f537d0c 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -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];