radeonsi: implement TGSI_SEMANTIC_HELPER_INVOCATION

Depends on LLVM support introduced in r267102.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Nicolai Hähnle 2016-04-16 13:00:12 -05:00
parent 2bac561787
commit 39e9cf6cb1
2 changed files with 12 additions and 1 deletions

View File

@ -248,7 +248,7 @@ GLES3.1, GLSL ES 3.1
glMemoryBarrierByRegion DONE
glGetTexLevelParameter[fi]v - needs updates DONE
glGetBooleani_v - restrict to GLES enums
gl_HelperInvocation support DONE (i965, nvc0, r600)
gl_HelperInvocation support DONE (i965, nvc0, r600, radeonsi)
GLES3.2, GLSL ES 3.2
GL_EXT_color_buffer_float DONE (all drivers)

View File

@ -1333,6 +1333,17 @@ static void declare_system_value(
value = LLVMGetParam(radeon_bld->main_fn, SI_PARAM_THREAD_ID);
break;
#if HAVE_LLVM >= 0x0309
case TGSI_SEMANTIC_HELPER_INVOCATION:
value = lp_build_intrinsic(gallivm->builder,
"llvm.amdgcn.ps.live",
ctx->i1, NULL, 0,
LLVMReadNoneAttribute | LLVMNoUnwindAttribute);
value = LLVMBuildNot(gallivm->builder, value, "");
value = LLVMBuildSExt(gallivm->builder, value, ctx->i32, "");
break;
#endif
default:
assert(!"unknown system value");
return;