mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
ac/radeonsi: add emit_kill to the abi
This should fix a regression with Rocket League grass rendering on the NIR backend. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104717
This commit is contained in:
parent
50cc97d98a
commit
0c90264da4
3 changed files with 11 additions and 1 deletions
|
|
@ -3872,6 +3872,12 @@ static void emit_barrier(struct ac_llvm_context *ac, gl_shader_stage stage)
|
|||
ac->voidt, NULL, 0, AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
||||
static void radv_emit_kill(struct ac_shader_abi *abi, LLVMValueRef visible)
|
||||
{
|
||||
struct radv_shader_context *ctx = radv_shader_context_from_abi(abi);
|
||||
ac_build_kill_if_false(&ctx->ac, visible);
|
||||
}
|
||||
|
||||
static void emit_discard(struct ac_nir_context *ctx,
|
||||
const nir_intrinsic_instr *instr)
|
||||
{
|
||||
|
|
@ -3886,7 +3892,7 @@ static void emit_discard(struct ac_nir_context *ctx,
|
|||
cond = LLVMConstInt(ctx->ac.i1, false, 0);
|
||||
}
|
||||
|
||||
ac_build_kill_if_false(&ctx->ac, cond);
|
||||
ctx->abi->emit_kill(ctx->abi, cond);
|
||||
}
|
||||
|
||||
static LLVMValueRef
|
||||
|
|
@ -6955,6 +6961,7 @@ LLVMModuleRef ac_translate_nir_to_llvm(LLVMTargetMachineRef tm,
|
|||
ctx.abi.lookup_interp_param = lookup_interp_param;
|
||||
ctx.abi.load_sample_position = load_sample_position;
|
||||
ctx.abi.load_sample_mask_in = load_sample_mask_in;
|
||||
ctx.abi.emit_kill = radv_emit_kill;
|
||||
}
|
||||
|
||||
if (i)
|
||||
|
|
|
|||
|
|
@ -86,6 +86,8 @@ struct ac_shader_abi {
|
|||
void (*emit_primitive)(struct ac_shader_abi *abi,
|
||||
unsigned stream);
|
||||
|
||||
void (*emit_kill)(struct ac_shader_abi *abi, LLVMValueRef visible);
|
||||
|
||||
LLVMValueRef (*load_inputs)(struct ac_shader_abi *abi,
|
||||
unsigned location,
|
||||
unsigned driver_location,
|
||||
|
|
|
|||
|
|
@ -6062,6 +6062,7 @@ static bool si_compile_tgsi_main(struct si_shader_context *ctx,
|
|||
ctx->abi.lookup_interp_param = si_nir_lookup_interp_param;
|
||||
ctx->abi.load_sample_position = load_sample_position;
|
||||
ctx->abi.load_sample_mask_in = load_sample_mask_in;
|
||||
ctx->abi.emit_kill = si_llvm_emit_kill;
|
||||
break;
|
||||
case PIPE_SHADER_COMPUTE:
|
||||
ctx->abi.load_local_group_size = get_block_size;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue