diff options
author | Bas Nieuwenhuizen <[email protected]> | 2017-08-15 16:31:20 +0200 |
---|---|---|
committer | Bas Nieuwenhuizen <[email protected]> | 2017-08-24 00:57:03 +0200 |
commit | a7f5545ede8aabd270025a59bd8077f066ba4432 (patch) | |
tree | 888c40e46b43328157478d4b822d35e861c5c110 | |
parent | 4ffa9f3635b6584d67076f506926f13d6cce4030 (diff) |
ac/nir: refactor input variable iteration.
Reviewed-by: Nicolai Hähnle <[email protected]>
Reviewed-by: Dave Airlie <[email protected]>
-rw-r--r-- | src/amd/common/ac_nir_to_llvm.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index a17a232bbed..88f2203316c 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -5003,26 +5003,19 @@ handle_fs_input_decl(struct nir_to_llvm_context *ctx, } static void -handle_shader_input_decl(struct nir_to_llvm_context *ctx, - struct nir_variable *variable) -{ - switch (ctx->stage) { - case MESA_SHADER_VERTEX: +handle_vs_inputs(struct nir_to_llvm_context *ctx, + struct nir_shader *nir) { + nir_foreach_variable(variable, &nir->inputs) handle_vs_input_decl(ctx, variable); - break; - case MESA_SHADER_FRAGMENT: - handle_fs_input_decl(ctx, variable); - break; - default: - break; - } - } static void -handle_fs_inputs_pre(struct nir_to_llvm_context *ctx, - struct nir_shader *nir) +handle_fs_inputs(struct nir_to_llvm_context *ctx, + struct nir_shader *nir) { + nir_foreach_variable(variable, &nir->inputs) + handle_fs_input_decl(ctx, variable); + unsigned index = 0; for (unsigned i = 0; i < RADEON_LLVM_MAX_INPUTS; ++i) { LLVMValueRef interp_param; @@ -6311,11 +6304,10 @@ LLVMModuleRef ac_translate_nir_to_llvm(LLVMTargetMachineRef tm, ctx.num_output_clips = nir->info.clip_distance_array_size; ctx.num_output_culls = nir->info.cull_distance_array_size; - nir_foreach_variable(variable, &nir->inputs) - handle_shader_input_decl(&ctx, variable); - if (nir->stage == MESA_SHADER_FRAGMENT) - handle_fs_inputs_pre(&ctx, nir); + handle_fs_inputs(&ctx, nir); + else if(nir->stage == MESA_SHADER_VERTEX) + handle_vs_inputs(&ctx, nir); ctx.abi.chip_class = options->chip_class; ctx.abi.inputs = &ctx.inputs[0]; |