From 23999a363b5ef550635f6589325b2a502bdfca0a Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 19 Jan 2017 14:54:18 +1000 Subject: radv/ac: handle invocation and primitive id intrinsics Reviewed-by: Bas Nieuwenhuizen Signed-off-by: Dave Airlie --- src/amd/common/ac_nir_to_llvm.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/amd/common') diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 340681fa714..bf42ed67db8 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -3083,6 +3083,15 @@ static void visit_intrinsic(struct nir_to_llvm_context *ctx, case nir_intrinsic_load_base_instance: result = ctx->start_instance; break; + case nir_intrinsic_load_invocation_id: + result = ctx->gs_invocation_id; + break; + case nir_intrinsic_load_primitive_id: + if (ctx->stage == MESA_SHADER_GEOMETRY) + result = ctx->gs_prim_id; + else + fprintf(stderr, "Unknown primitive id intrinsic: %d", ctx->stage); + break; case nir_intrinsic_load_sample_id: ctx->shader_info->fs.force_persample = true; result = unpack_param(ctx, ctx->ancillary, 8, 4); -- cgit v1.2.3