From: Mike Blumenkrantz Date: Wed, 14 Oct 2020 14:32:36 +0000 (-0400) Subject: zink: add ntv handling for geometry shader variables X-Git-Tag: upstream/21.0.0~3620 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ea2279daf1f561acedaae90959d23888cf754d5d;p=platform%2Fupstream%2Fmesa.git zink: add ntv handling for geometry shader variables these can reuse the unified loader codepath Reviewed-by: Erik Faye-Lund Part-of: --- diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index ab4e5dd..498cb27 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -68,7 +68,8 @@ struct ntv_context { unsigned char *shader_slot_map; unsigned char shader_slots_reserved; - SpvId front_face_var, instance_id_var, vertex_id_var; + SpvId front_face_var, instance_id_var, vertex_id_var, + primitive_id_var, invocation_id_var; // geometry }; static SpvId @@ -1672,6 +1673,14 @@ emit_intrinsic(struct ntv_context *ctx, nir_intrinsic_instr *intr) emit_load_uint_input(ctx, intr, &ctx->vertex_id_var, "gl_VertexId", SpvBuiltInVertexIndex); break; + case nir_intrinsic_load_primitive_id: + emit_load_uint_input(ctx, intr, &ctx->primitive_id_var, "gl_PrimitiveIdIn", SpvBuiltInPrimitiveId); + break; + + case nir_intrinsic_load_invocation_id: + emit_load_uint_input(ctx, intr, &ctx->invocation_id_var, "gl_InvocationId", SpvBuiltInInvocationId); + break; + default: fprintf(stderr, "emit_intrinsic: not implemented (%s)\n", nir_intrinsic_infos[intr->intrinsic].name);