Module: Mesa Branch: master Commit: cf75ee3ab1cf95cb19d925821f71b353d394956d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=cf75ee3ab1cf95cb19d925821f71b353d394956d
Author: Timothy Arceri <tarc...@itsqueeze.com> Date: Fri Dec 15 14:13:11 2017 +1100 radeonsi: add bitcast_inputs() helper Will be used in a following patch to help support doubles. Reviewed-by: Marek Olšák <marek.ol...@amd.com> --- src/gallium/drivers/radeonsi/si_shader_nir.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c index 34d28b7a72..e05548c1b8 100644 --- a/src/gallium/drivers/radeonsi/si_shader_nir.c +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c @@ -644,6 +644,16 @@ si_nir_load_sampler_desc(struct ac_shader_abi *abi, return si_load_sampler_desc(ctx, list, index, desc_type); } +static void bitcast_inputs(struct si_shader_context *ctx, + LLVMValueRef data[4], + unsigned input_idx) +{ + for (unsigned chan = 0; chan < 4; chan++) { + ctx->inputs[input_idx + chan] = + LLVMBuildBitCast(ctx->ac.builder, data[chan], ctx->ac.i32, ""); + } +} + bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir) { struct tgsi_shader_info *info = &ctx->shader->selector->info; @@ -667,15 +677,14 @@ bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir) if (processed_inputs & ((uint64_t)1 << loc)) continue; - if (nir->info.stage == MESA_SHADER_VERTEX) + if (nir->info.stage == MESA_SHADER_VERTEX) { declare_nir_input_vs(ctx, variable, data); - else if (nir->info.stage == MESA_SHADER_FRAGMENT) + bitcast_inputs(ctx, data, input_idx); + } else if (nir->info.stage == MESA_SHADER_FRAGMENT) { declare_nir_input_fs(ctx, variable, input_idx / 4, data); - - for (unsigned chan = 0; chan < 4; chan++) { - ctx->inputs[input_idx + chan] = - LLVMBuildBitCast(ctx->ac.builder, data[chan], ctx->ac.i32, ""); + bitcast_inputs(ctx, data, input_idx); } + processed_inputs |= ((uint64_t)1 << loc); } } _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit