radv: add set_loc_shader_ptr() helper
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 18 May 2018 08:57:02 +0000 (10:57 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 22 May 2018 13:53:20 +0000 (15:53 +0200)
This helper will hep for switching to 32-bit GPU pointers.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_nir_to_llvm.c

index 3f32f62cdc4b067b55a6ac99fa160238b6e3df3f..9e42983cd175a0e18d74141253a09d6a2d4e9b5a 100644 (file)
@@ -566,6 +566,12 @@ set_loc_shader(struct radv_shader_context *ctx, int idx, uint8_t *sgpr_idx,
        set_loc(ud_info, sgpr_idx, num_sgprs, 0);
 }
 
+static void
+set_loc_shader_ptr(struct radv_shader_context *ctx, int idx, uint8_t *sgpr_idx)
+{
+       set_loc_shader(ctx, idx, sgpr_idx, 2);
+}
+
 static void
 set_loc_desc(struct radv_shader_context *ctx, int idx,  uint8_t *sgpr_idx,
             uint32_t indirect_offset)
@@ -797,8 +803,8 @@ set_global_input_locs(struct radv_shader_context *ctx, gl_shader_stage stage,
                                ctx->descriptor_sets[i] = NULL;
                }
        } else {
-               set_loc_shader(ctx, AC_UD_INDIRECT_DESCRIPTOR_SETS,
-                              user_sgpr_idx, 2);
+               set_loc_shader_ptr(ctx, AC_UD_INDIRECT_DESCRIPTOR_SETS,
+                                  user_sgpr_idx);
 
                for (unsigned i = 0; i < num_sets; ++i) {
                        if ((ctx->shader_info->info.desc_set_used_mask & (1 << i)) &&
@@ -816,7 +822,7 @@ set_global_input_locs(struct radv_shader_context *ctx, gl_shader_stage stage,
        }
 
        if (ctx->shader_info->info.loads_push_constants) {
-               set_loc_shader(ctx, AC_UD_PUSH_CONSTANTS, user_sgpr_idx, 2);
+               set_loc_shader_ptr(ctx, AC_UD_PUSH_CONSTANTS, user_sgpr_idx);
        }
 }
 
@@ -830,8 +836,8 @@ set_vs_specific_input_locs(struct radv_shader_context *ctx,
            (stage == MESA_SHADER_VERTEX ||
             (has_previous_stage && previous_stage == MESA_SHADER_VERTEX))) {
                if (ctx->shader_info->info.vs.has_vertex_buffers) {
-                       set_loc_shader(ctx, AC_UD_VS_VERTEX_BUFFERS,
-                                      user_sgpr_idx, 2);
+                       set_loc_shader_ptr(ctx, AC_UD_VS_VERTEX_BUFFERS,
+                                          user_sgpr_idx);
                }
 
                unsigned vs_num = 2;
@@ -1129,8 +1135,8 @@ static void create_function(struct radv_shader_context *ctx,
        user_sgpr_idx = 0;
 
        if (ctx->options->supports_spill || user_sgpr_info.need_ring_offsets) {
-               set_loc_shader(ctx, AC_UD_SCRATCH_RING_OFFSETS,
-                              &user_sgpr_idx, 2);
+               set_loc_shader_ptr(ctx, AC_UD_SCRATCH_RING_OFFSETS,
+                                  &user_sgpr_idx);
                if (ctx->options->supports_spill) {
                        ctx->ring_offsets = ac_build_intrinsic(&ctx->ac, "llvm.amdgcn.implicit.buffer.ptr",
                                                               LLVMPointerType(ctx->ac.i8, AC_CONST_ADDR_SPACE),