summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <[email protected]>2018-01-10 17:05:10 +0100
committerBas Nieuwenhuizen <[email protected]>2018-01-11 00:56:52 +0100
commit67e09c8b451e1db8bd901279160b982b0df0fa41 (patch)
tree81f36741ef410f7fa5c4443e0b70741526190322
parentaf8fd389961aabdac0a5b0e6171b17950a659f30 (diff)
ac/nir: Sanitize location_frac for local variables.
If they were promoted from inputs/outputs, they could have a non-zero value left over, which messed with our store handling. Fixes: 06f05040eb "radv: Link shaders." Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r--src/amd/common/ac_nir_to_llvm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 5885c70ef89..8301b16057d 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -5556,6 +5556,7 @@ setup_locals(struct ac_nir_context *ctx,
nir_foreach_variable(variable, &func->impl->locals) {
unsigned attrib_count = glsl_count_attribute_slots(variable->type, false);
variable->data.driver_location = ctx->num_locals * 4;
+ variable->data.location_frac = 0;
ctx->num_locals += attrib_count;
}
ctx->locals = malloc(4 * ctx->num_locals * sizeof(LLVMValueRef));