cond = ctx->ac.i1false;
}
- ctx->abi->emit_kill(ctx->abi, cond);
+ ac_build_kill_if_false(&ctx->ac, cond);
}
static void emit_demote(struct ac_nir_context *ctx,
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,
return result;
}
-
-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 uint32_t
radv_get_sample_pos_offset(uint32_t num_samples)
{
} else if (shaders[i]->info.stage == MESA_SHADER_FRAGMENT) {
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 (shaders[i]->info.stage == MESA_SHADER_VERTEX &&
ac_build_kill_if_false(&ctx->ac, bit);
}
-static void si_llvm_emit_kill(struct ac_shader_abi *abi, LLVMValueRef visible)
-{
- struct si_shader_context *ctx = si_shader_context_from_abi(abi);
- LLVMBuilderRef builder = ctx->ac.builder;
-
- ac_build_kill_if_false(&ctx->ac, visible);
-}
-
/**
* Build the pixel shader prolog function. This handles:
* - two-side color selection and interpolation
ctx->abi.load_sample_position = load_sample_position;
ctx->abi.load_sample_mask_in = load_sample_mask_in;
ctx->abi.emit_fbfetch = si_nir_emit_fbfetch;
- ctx->abi.emit_kill = si_llvm_emit_kill;
}