From 6fd6246d92cde32426aafa3d0748f03f403f8f1b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 3 May 2019 13:23:45 +1000 Subject: [PATCH] nir: fix lower vars to ssa for larger vector sizes. This has a couple of hardcoded vec4 limits in it, change them to the proper sizing to avoid future issues. Reviewed-by: Jason Ekstrand --- src/compiler/nir/nir_lower_vars_to_ssa.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/nir/nir_lower_vars_to_ssa.c b/src/compiler/nir/nir_lower_vars_to_ssa.c index 1e7dc8d3579..a5f4ca53cf9 100644 --- a/src/compiler/nir/nir_lower_vars_to_ssa.c +++ b/src/compiler/nir/nir_lower_vars_to_ssa.c @@ -534,7 +534,7 @@ rename_variables(struct lower_variables_state *state) nir_op_imov); mov->src[0].src = nir_src_for_ssa( nir_phi_builder_value_get_block_def(node->pb_value, block)); - for (unsigned i = intrin->num_components; i < 4; i++) + for (unsigned i = intrin->num_components; i < NIR_MAX_VEC_COMPONENTS; i++) mov->src[0].swizzle[i] = 0; assert(intrin->dest.is_ssa); @@ -584,8 +584,8 @@ rename_variables(struct lower_variables_state *state) * intrin->num_components and value->num_components * may differ. */ - unsigned swiz[4]; - for (unsigned i = 0; i < 4; i++) + unsigned swiz[NIR_MAX_VEC_COMPONENTS]; + for (unsigned i = 0; i < NIR_MAX_VEC_COMPONENTS; i++) swiz[i] = i < intrin->num_components ? i : 0; new_def = nir_swizzle(&b, value, swiz, @@ -597,7 +597,7 @@ rename_variables(struct lower_variables_state *state) * written values with the existing contents of unwritten * channels, creating a new SSA value for the whole vector. */ - nir_ssa_def *srcs[4]; + nir_ssa_def *srcs[NIR_MAX_VEC_COMPONENTS]; for (unsigned i = 0; i < intrin->num_components; i++) { if (wrmask & (1 << i)) { srcs[i] = nir_channel(&b, value, i);