radeonsi: move si_nir_load_input_gs() to si_shader.c

All the tess shader and tgsi equivalents are here and it allows
use to use llvm_type_is_64bit() in the following patch without
exposing it externally.

Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Timothy Arceri 2018-03-01 15:17:34 +11:00
parent 9ea90ffb98
commit 2a68c6c6c8
3 changed files with 20 additions and 29 deletions

View file

@ -1682,6 +1682,26 @@ LLVMValueRef si_llvm_load_input_gs(struct ac_shader_abi *abi,
return LLVMBuildBitCast(ctx->ac.builder, value, type, "");
}
static LLVMValueRef si_nir_load_input_gs(struct ac_shader_abi *abi,
unsigned location,
unsigned driver_location,
unsigned component,
unsigned num_components,
unsigned vertex_index,
unsigned const_index,
LLVMTypeRef type)
{
struct si_shader_context *ctx = si_shader_context_from_abi(abi);
LLVMValueRef value[8];
for (unsigned i = component; i < num_components + component; i++) {
value[i] = si_llvm_load_input_gs(&ctx->abi, driver_location / 4,
vertex_index, type, i);
}
return ac_build_varying_gather_values(&ctx->ac, value, num_components, component);
}
static LLVMValueRef fetch_input_gs(
struct lp_build_tgsi_context *bld_base,
const struct tgsi_full_src_register *reg,

View file

@ -337,13 +337,4 @@ void si_llvm_load_input_fs(
bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir);
LLVMValueRef si_nir_load_input_gs(struct ac_shader_abi *abi,
unsigned location,
unsigned driver_location,
unsigned component,
unsigned num_components,
unsigned vertex_index,
unsigned const_index,
LLVMTypeRef type);
#endif

View file

@ -731,26 +731,6 @@ static void declare_nir_input_fs(struct si_shader_context *ctx,
si_llvm_load_input_fs(ctx, input_index, out);
}
LLVMValueRef si_nir_load_input_gs(struct ac_shader_abi *abi,
unsigned location,
unsigned driver_location,
unsigned component,
unsigned num_components,
unsigned vertex_index,
unsigned const_index,
LLVMTypeRef type)
{
struct si_shader_context *ctx = si_shader_context_from_abi(abi);
LLVMValueRef value[8];
for (unsigned i = component; i < num_components + component; i++) {
value[i] = si_llvm_load_input_gs(&ctx->abi, driver_location / 4,
vertex_index, type, i);
}
return ac_build_varying_gather_values(&ctx->ac, value, num_components, component);
}
LLVMValueRef
si_nir_lookup_interp_param(struct ac_shader_abi *abi,
enum glsl_interp_mode interp, unsigned location)