Module: Mesa Branch: master Commit: b260efbd5eed4fd89e7928cfc2103f058a1e86d2 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b260efbd5eed4fd89e7928cfc2103f058a1e86d2
Author: Timothy Arceri <tarc...@itsqueeze.com> Date: Fri Mar 23 12:10:42 2018 +1100 radeonsi/nir: fix input processing for packed varyings The location was only being incremented the first time we processed a location. This meant we would incorrectly skip some elements of an array if the first element was packed and proccessed previously but other elements were not. Reviewed-by: Marek Olšák <marek.ol...@amd.com> --- src/gallium/drivers/radeonsi/si_shader_nir.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c index 82b2440d0b..6444a8b5dd 100644 --- a/src/gallium/drivers/radeonsi/si_shader_nir.c +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c @@ -852,7 +852,7 @@ bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir) /* Packed components share the same location so skip * them if we have already processed the location. */ - if (processed_inputs & ((uint64_t)1 << loc)) { + if (processed_inputs & ((uint64_t)1 << (loc + i))) { input_idx += 4; continue; } @@ -870,8 +870,7 @@ bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir) bitcast_inputs(ctx, data, input_idx); } - processed_inputs |= ((uint64_t)1 << loc); - loc++; + processed_inputs |= ((uint64_t)1 << (loc + i)); input_idx += 4; } } _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit