From 611510038a203dc528515dcbbdd72f01c6f326a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicolai=20H=C3=A4hnle?= Date: Fri, 28 Oct 2016 22:09:26 +0200 Subject: [PATCH] radeonsi: get rid of get_interp_param MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Replace by a simple LLVMGetParam, since ctx->no_prolog is always false. Reviewed-by: Marek Olšák --- src/gallium/drivers/radeonsi/si_shader.c | 54 ++------------------------------ 1 file changed, 2 insertions(+), 52 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 8bd8c80..f3b94d7 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -1300,56 +1300,6 @@ static void interp_fs_input(struct si_shader_context *ctx, } } -/* LLVMGetParam with bc_optimize resolved. */ -static LLVMValueRef get_interp_param(struct si_shader_context *ctx, - int interp_param_idx) -{ - LLVMBuilderRef builder = ctx->gallivm.builder; - LLVMValueRef main_fn = ctx->main_fn; - LLVMValueRef param = NULL; - - /* Handle PRIM_MASK[31] (bc_optimize). */ - if (ctx->no_prolog && - ((ctx->shader->key.ps.prolog.bc_optimize_for_persp && - interp_param_idx == SI_PARAM_PERSP_CENTROID) || - (ctx->shader->key.ps.prolog.bc_optimize_for_linear && - interp_param_idx == SI_PARAM_LINEAR_CENTROID))) { - /* The shader should do: if (PRIM_MASK[31]) CENTROID = CENTER; - * The hw doesn't compute CENTROID if the whole wave only - * contains fully-covered quads. - */ - LLVMValueRef bc_optimize = - LLVMGetParam(main_fn, SI_PARAM_PRIM_MASK); - bc_optimize = LLVMBuildLShr(builder, - bc_optimize, - LLVMConstInt(ctx->i32, 31, 0), ""); - bc_optimize = LLVMBuildTrunc(builder, bc_optimize, ctx->i1, ""); - - if (ctx->shader->key.ps.prolog.bc_optimize_for_persp && - interp_param_idx == SI_PARAM_PERSP_CENTROID) { - param = LLVMBuildSelect(builder, bc_optimize, - LLVMGetParam(main_fn, - SI_PARAM_PERSP_CENTER), - LLVMGetParam(main_fn, - SI_PARAM_PERSP_CENTROID), - ""); - } - if (ctx->shader->key.ps.prolog.bc_optimize_for_linear && - interp_param_idx == SI_PARAM_LINEAR_CENTROID) { - param = LLVMBuildSelect(builder, bc_optimize, - LLVMGetParam(main_fn, - SI_PARAM_LINEAR_CENTER), - LLVMGetParam(main_fn, - SI_PARAM_LINEAR_CENTROID), - ""); - } - } - - if (!param) - param = LLVMGetParam(main_fn, interp_param_idx); - return param; -} - static void declare_input_fs( struct si_shader_context *radeon_bld, unsigned input_index, @@ -1385,7 +1335,7 @@ static void declare_input_fs( if (interp_param_idx == -1) return; else if (interp_param_idx) { - interp_param = get_interp_param(ctx, interp_param_idx); + interp_param = LLVMGetParam(ctx->main_fn, interp_param_idx); } if (decl->Semantic.Name == TGSI_SEMANTIC_COLOR && @@ -5131,7 +5081,7 @@ static void build_interp_intrinsic(const struct lp_build_tgsi_action *action, if (interp_param_idx == -1) return; else if (interp_param_idx) - interp_param = get_interp_param(ctx, interp_param_idx); + interp_param = LLVMGetParam(ctx->main_fn, interp_param_idx); else interp_param = NULL; -- 2.7.4