From c152c79d5ee59cc8b3936e5b31f8b4203327bc2e Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 28 Sep 2018 12:40:32 -0700 Subject: [PATCH] v3d: Only add output slot tracking for the current varying slot. We always emit 4 slots per slot because things like color output and position processing in the epilogue will potentially look up more values than the variable declaration had. However, when we get a .location_frac != 0, we don't want to overwrite components of the following .driver_location. --- src/broadcom/compiler/nir_to_vir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 4becc97..bb41c1b 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -1396,7 +1396,7 @@ ntq_setup_outputs(struct v3d_compile *c) assert(array_len == 1); (void)array_len; - for (int i = 0; i < 4; i++) { + for (int i = 0; i < 4 - var->data.location_frac; i++) { add_output(c, loc + var->data.location_frac + i, var->data.location, var->data.location_frac + i); -- 2.7.4