From ff5e0cb1bb7f6547d225ba75ad9e912091cea1ec Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 5 Apr 2021 09:54:31 -0400 Subject: [PATCH] zink: support nir_intrinsic_shader_clock simple const unop Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 6b20f82f549..1872d50f363 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 @@ -2772,6 +2772,17 @@ emit_intrinsic(struct ntv_context *ctx, nir_intrinsic_instr *intr) emit_store_shared(ctx, intr); break; + case nir_intrinsic_shader_clock: { + spirv_builder_emit_cap(&ctx->builder, SpvCapabilityShaderClockKHR); + spirv_builder_emit_extension(&ctx->builder, "SPV_KHR_shader_clock"); + + SpvScope scope = get_scope(nir_intrinsic_memory_scope(intr)); + SpvId type = get_dest_type(ctx, &intr->dest, nir_type_uint); + SpvId result = spirv_builder_emit_unop_const(&ctx->builder, SpvOpReadClockKHR, type, scope); + store_dest(ctx, &intr->dest, result, nir_type_uint); + break; + } + case nir_intrinsic_vote_all: case nir_intrinsic_vote_any: case nir_intrinsic_vote_ieq: