Module: Mesa
Branch: master
Commit: fc35a071b63a5de62bb54a069ee3a543d23545f8
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=fc35a071b63a5de62bb54a069ee3a543d23545f8

Author: Samuel Pitoiset <[email protected]>
Date:   Wed Dec 20 20:55:54 2017 +0100

amd/common: add declare_vs_input_vgprs() helper

Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>

---

 src/amd/common/ac_nir_to_llvm.c | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index f48fa1214b..03e733f965 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -724,6 +724,17 @@ radv_define_vs_user_sgprs_phase2(struct 
nir_to_llvm_context *ctx,
 }
 
 static void
+declare_vs_input_vgprs(struct nir_to_llvm_context *ctx, struct arg_info *args)
+{
+       add_vgpr_argument(args, ctx->ac.i32, &ctx->abi.vertex_id);
+       if (!ctx->is_gs_copy_shader) {
+               add_vgpr_argument(args, ctx->ac.i32, &ctx->rel_auto_id);
+               add_vgpr_argument(args, ctx->ac.i32, &ctx->vs_prim_id);
+               add_vgpr_argument(args, ctx->ac.i32, &ctx->abi.instance_id);
+       }
+}
+
+static void
 declare_tes_input_vgprs(struct nir_to_llvm_context *ctx, struct arg_info *args)
 {
        add_vgpr_argument(args, ctx->ac.f32, &ctx->tes_u);
@@ -777,12 +788,8 @@ static void create_function(struct nir_to_llvm_context 
*ctx,
                        add_sgpr_argument(&args, ctx->ac.i32, 
&ctx->es2gs_offset); // es2gs offset
                else if (ctx->options->key.vs.as_ls)
                        add_user_sgpr_argument(&args, ctx->ac.i32, 
&ctx->ls_out_layout); // ls out layout
-               add_vgpr_argument(&args, ctx->ac.i32, &ctx->abi.vertex_id); // 
vertex id
-               if (!ctx->is_gs_copy_shader) {
-                       add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->rel_auto_id); // rel auto id
-                       add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->vs_prim_id); // vs prim id
-                       add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->abi.instance_id); // instance id
-               }
+
+               declare_vs_input_vgprs(ctx, &args);
                break;
        case MESA_SHADER_TESS_CTRL:
                if (has_previous_stage) {
@@ -808,10 +815,8 @@ static void create_function(struct nir_to_llvm_context 
*ctx,
 
                        add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->tcs_patch_id); // patch id
                        add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->tcs_rel_ids); // rel ids;
-                       add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->abi.vertex_id); // vertex id
-                       add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->rel_auto_id); // rel auto id
-                       add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->vs_prim_id); // vs prim id
-                       add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->abi.instance_id); // instance id
+
+                       declare_vs_input_vgprs(ctx, &args);
                } else {
                        radv_define_common_user_sgprs_phase1(ctx, stage, 
has_previous_stage, previous_stage, &user_sgpr_info, &args, &desc_sets);
                        add_user_sgpr_argument(&args, ctx->ac.i32, 
&ctx->tcs_offchip_layout); // tcs offchip layout
@@ -869,10 +874,7 @@ static void create_function(struct nir_to_llvm_context 
*ctx,
                        add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->gs_vtx_offset[4]);
 
                        if (previous_stage == MESA_SHADER_VERTEX) {
-                               add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->abi.vertex_id); // vertex id
-                               add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->rel_auto_id); // rel auto id
-                               add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->vs_prim_id); // vs prim id
-                               add_vgpr_argument(&args, ctx->ac.i32, 
&ctx->abi.instance_id); // instance id
+                               declare_vs_input_vgprs(ctx, &args);
                        } else {
                                declare_tes_input_vgprs(ctx, &args);
                        }

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to