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
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);