radeon/llvm: move system value fetching to common code
This should be used by both SI and R600. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Tested-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
c6efb4870b
commit
83df955ca9
|
@ -72,17 +72,6 @@ static void llvm_load_system_value(
|
|||
LLVMReadNoneAttribute);
|
||||
}
|
||||
|
||||
static LLVMValueRef llvm_fetch_system_value(
|
||||
struct lp_build_tgsi_context * bld_base,
|
||||
const struct tgsi_full_src_register *reg,
|
||||
enum tgsi_opcode_type type,
|
||||
unsigned swizzle)
|
||||
{
|
||||
struct radeon_llvm_context * ctx = radeon_llvm_context(bld_base);
|
||||
LLVMValueRef cval = ctx->system_values[reg->Register.Index];
|
||||
return bitcast(bld_base, type, cval);
|
||||
}
|
||||
|
||||
static LLVMValueRef
|
||||
llvm_load_input_helper(
|
||||
struct radeon_llvm_context * ctx,
|
||||
|
@ -530,7 +519,6 @@ LLVMModuleRef r600_tgsi_llvm(
|
|||
bld_base->info = &shader_info;
|
||||
bld_base->userdata = ctx;
|
||||
bld_base->emit_fetch_funcs[TGSI_FILE_CONSTANT] = llvm_fetch_const;
|
||||
bld_base->emit_fetch_funcs[TGSI_FILE_SYSTEM_VALUE] = llvm_fetch_system_value;
|
||||
bld_base->emit_prologue = llvm_emit_prologue;
|
||||
bld_base->emit_epilogue = llvm_emit_epilogue;
|
||||
ctx->userdata = ctx;
|
||||
|
|
|
@ -200,6 +200,17 @@ emit_fetch(
|
|||
return bitcast(bld_base, type, result);
|
||||
}
|
||||
|
||||
static LLVMValueRef fetch_system_value(
|
||||
struct lp_build_tgsi_context * bld_base,
|
||||
const struct tgsi_full_src_register *reg,
|
||||
enum tgsi_opcode_type type,
|
||||
unsigned swizzle)
|
||||
{
|
||||
struct radeon_llvm_context * ctx = radeon_llvm_context(bld_base);
|
||||
LLVMValueRef cval = ctx->system_values[reg->Register.Index];
|
||||
return bitcast(bld_base, type, cval);
|
||||
}
|
||||
|
||||
static void emit_declaration(
|
||||
struct lp_build_tgsi_context * bld_base,
|
||||
const struct tgsi_full_declaration *decl)
|
||||
|
@ -1153,6 +1164,7 @@ void radeon_llvm_context_init(struct radeon_llvm_context * ctx)
|
|||
bld_base->emit_fetch_funcs[TGSI_FILE_INPUT] = emit_fetch;
|
||||
bld_base->emit_fetch_funcs[TGSI_FILE_TEMPORARY] = emit_fetch;
|
||||
bld_base->emit_fetch_funcs[TGSI_FILE_OUTPUT] = emit_fetch;
|
||||
bld_base->emit_fetch_funcs[TGSI_FILE_SYSTEM_VALUE] = fetch_system_value;
|
||||
|
||||
/* Allocate outputs */
|
||||
ctx->soa.outputs = ctx->outputs;
|
||||
|
|
Loading…
Reference in New Issue