amd/common: add declare_tes_input_vgprs() helper
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 20 Dec 2017 19:55:53 +0000 (20:55 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 27 Dec 2017 09:24:47 +0000 (10:24 +0100)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/common/ac_nir_to_llvm.c

index 078bd2408d7ac1dc3c5dcb0f442e8cc59b164e2f..f48fa1214b80769d469e5be29eb1606841ce828e 100644 (file)
@@ -723,6 +723,14 @@ radv_define_vs_user_sgprs_phase2(struct nir_to_llvm_context *ctx,
        }
 }
 
+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);
+       add_vgpr_argument(args, ctx->ac.f32, &ctx->tes_v);
+       add_vgpr_argument(args, ctx->ac.i32, &ctx->tes_rel_patch_id);
+       add_vgpr_argument(args, ctx->ac.i32, &ctx->tes_patch_id);
+}
 
 static void create_function(struct nir_to_llvm_context *ctx,
                             gl_shader_stage stage,
@@ -831,10 +839,7 @@ static void create_function(struct nir_to_llvm_context *ctx,
                        add_sgpr_argument(&args, ctx->ac.i32, NULL); //
                        add_sgpr_argument(&args, ctx->ac.i32, &ctx->oc_lds); // OC LDS
                }
-               add_vgpr_argument(&args, ctx->ac.f32, &ctx->tes_u); // tes_u
-               add_vgpr_argument(&args, ctx->ac.f32, &ctx->tes_v); // tes_v
-               add_vgpr_argument(&args, ctx->ac.i32, &ctx->tes_rel_patch_id); // tes rel patch id
-               add_vgpr_argument(&args, ctx->ac.i32, &ctx->tes_patch_id); // tes patch id
+               declare_tes_input_vgprs(ctx, &args);
                break;
        case MESA_SHADER_GEOMETRY:
                if (has_previous_stage) {
@@ -869,10 +874,7 @@ static void create_function(struct nir_to_llvm_context *ctx,
                                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
                        } else {
-                               add_vgpr_argument(&args, ctx->ac.f32, &ctx->tes_u); // tes_u
-                               add_vgpr_argument(&args, ctx->ac.f32, &ctx->tes_v); // tes_v
-                               add_vgpr_argument(&args, ctx->ac.i32, &ctx->tes_rel_patch_id); // tes rel patch id
-                               add_vgpr_argument(&args, ctx->ac.i32, &ctx->tes_patch_id); // tes patch id
+                               declare_tes_input_vgprs(ctx, &args);
                        }
                } else {
                        radv_define_common_user_sgprs_phase1(ctx, stage, has_previous_stage, previous_stage, &user_sgpr_info, &args, &desc_sets);