ac: add support for gl_HelperInvocation
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -3915,6 +3915,17 @@ static void emit_discard(struct ac_nir_context *ctx,
|
||||
ac_build_kill_if_false(&ctx->ac, cond);
|
||||
}
|
||||
|
||||
static LLVMValueRef
|
||||
visit_load_helper_invocation(struct ac_nir_context *ctx)
|
||||
{
|
||||
LLVMValueRef result = ac_build_intrinsic(&ctx->ac,
|
||||
"llvm.amdgcn.ps.live",
|
||||
ctx->ac.i1, NULL, 0,
|
||||
AC_FUNC_ATTR_READNONE);
|
||||
result = LLVMBuildNot(ctx->ac.builder, result, "");
|
||||
return LLVMBuildSExt(ctx->ac.builder, result, ctx->ac.i32, "");
|
||||
}
|
||||
|
||||
static LLVMValueRef
|
||||
visit_load_local_invocation_index(struct nir_to_llvm_context *ctx)
|
||||
{
|
||||
@@ -4354,6 +4365,9 @@ static void visit_intrinsic(struct ac_nir_context *ctx,
|
||||
case nir_intrinsic_load_front_face:
|
||||
result = ctx->abi->front_face;
|
||||
break;
|
||||
case nir_intrinsic_load_helper_invocation:
|
||||
result = visit_load_helper_invocation(ctx);
|
||||
break;
|
||||
case nir_intrinsic_load_instance_id:
|
||||
result = ctx->abi->instance_id;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user