radeonsi/nir: adjust load_sample_position() to be shared between backends
authorTimothy Arceri <tarceri@itsqueeze.com>
Sun, 14 Jan 2018 09:49:40 +0000 (20:49 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Tue, 30 Jan 2018 22:14:07 +0000 (09:14 +1100)
With this interface change it can be shared between the tgsi and
nir backends.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_shader.c

index b18b4f63b861d47044d22ee2f3870bbf8fad067d..71a8733780c2328562ad6c5709a51f6b128650f5 100644 (file)
@@ -1879,8 +1879,9 @@ static LLVMValueRef buffer_load_const(struct si_shader_context *ctx,
                                    0, 0, 0, true, true);
 }
 
-static LLVMValueRef load_sample_position(struct si_shader_context *ctx, LLVMValueRef sample_id)
+static LLVMValueRef load_sample_position(struct ac_shader_abi *abi, LLVMValueRef sample_id)
 {
+       struct si_shader_context *ctx = si_shader_context_from_abi(abi);
        struct lp_build_context *uint_bld = &ctx->bld_base.uint_bld;
        LLVMValueRef desc = LLVMGetParam(ctx->main_fn, ctx->param_rw_buffers);
        LLVMValueRef buf_index = LLVMConstInt(ctx->i32, SI_PS_CONST_SAMPLE_POSITIONS, 0);
@@ -4046,7 +4047,7 @@ static void interp_fetch_args(
 
                        sample_position = lp_build_gather_values(&ctx->gallivm, center, 4);
                } else {
-                       sample_position = load_sample_position(ctx, sample_id);
+                       sample_position = load_sample_position(&ctx->abi, sample_id);
                }
 
                emit_data->args[0] = LLVMBuildExtractElement(ctx->ac.builder,