On Tue, Mar 6, 2018 at 10:58 AM, Samuel Pitoiset <samuel.pitoi...@gmail.com> wrote: > As far as I understand, this might overflow and shifted by one > if for example, gl_PrimitiveID is used with flat generic varyings. > > Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> > --- > src/amd/common/ac_nir_to_llvm.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c > index ea51c3a54a..d4fdb8e8f4 100644 > --- a/src/amd/common/ac_nir_to_llvm.c > +++ b/src/amd/common/ac_nir_to_llvm.c > @@ -5545,6 +5545,7 @@ handle_fs_inputs(struct radv_shader_context *ctx, > nir_foreach_variable(variable, &nir->inputs) > handle_fs_input_decl(ctx, variable); > > + uint64_t flat_shaded_mask = 0; > unsigned index = 0; > > if (ctx->shader_info->info.ps.uses_input_attachments || > @@ -5564,8 +5565,8 @@ handle_fs_inputs(struct radv_shader_context *ctx, > interp_fs_input(ctx, index, interp_param, > ctx->abi.prim_mask, > inputs); > > - if (!interp_param) > - ctx->shader_info->fs.flat_shaded_mask |= 1u > << index; > + if (i >= VARYING_SLOT_VAR0 && !interp_param) > + flat_shaded_mask |= 1u << i;
1ull Marek > ++index; > } else if (i == VARYING_SLOT_POS) { > for(int i = 0; i < 3; ++i) > @@ -5575,7 +5576,9 @@ handle_fs_inputs(struct radv_shader_context *ctx, > ctx->abi.frag_pos[3]); > } > } > + > ctx->shader_info->fs.num_interp = index; > + ctx->shader_info->fs.flat_shaded_mask = flat_shaded_mask >> > VARYING_SLOT_VAR0; > ctx->shader_info->fs.input_mask = ctx->input_mask >> > VARYING_SLOT_VAR0; > > if (ctx->shader_info->info.needs_multiview_view_index) > -- > 2.16.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev