mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-14 14:28:08 +02:00
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:
parent
9ea90ffb98
commit
2a68c6c6c8
3 changed files with 20 additions and 29 deletions
|
|
@ -1682,6 +1682,26 @@ LLVMValueRef si_llvm_load_input_gs(struct ac_shader_abi *abi,
|
||||||
return LLVMBuildBitCast(ctx->ac.builder, value, type, "");
|
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(
|
static LLVMValueRef fetch_input_gs(
|
||||||
struct lp_build_tgsi_context *bld_base,
|
struct lp_build_tgsi_context *bld_base,
|
||||||
const struct tgsi_full_src_register *reg,
|
const struct tgsi_full_src_register *reg,
|
||||||
|
|
|
||||||
|
|
@ -337,13 +337,4 @@ void si_llvm_load_input_fs(
|
||||||
|
|
||||||
bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir);
|
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
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -731,26 +731,6 @@ static void declare_nir_input_fs(struct si_shader_context *ctx,
|
||||||
si_llvm_load_input_fs(ctx, input_index, out);
|
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
|
LLVMValueRef
|
||||||
si_nir_lookup_interp_param(struct ac_shader_abi *abi,
|
si_nir_lookup_interp_param(struct ac_shader_abi *abi,
|
||||||
enum glsl_interp_mode interp, unsigned location)
|
enum glsl_interp_mode interp, unsigned location)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue