diff --git a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c index 2dba96dc8bc..171cd4ee58c 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c +++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c @@ -701,6 +701,13 @@ spirv_builder_emit_kill(struct spirv_builder *b) spirv_buffer_emit_word(&b->instructions, SpvOpKill | (1 << 16)); } +SpvId +spirv_builder_emit_vote(struct spirv_builder *b, SpvOp op, SpvId src) +{ + return spirv_builder_emit_binop(b, op, spirv_builder_type_bool(b), + spirv_builder_const_uint(b, 32, SpvScopeWorkgroup), src); +} + SpvId spirv_builder_emit_image_sample(struct spirv_builder *b, SpvId result_type, diff --git a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h index 8bc89df0f7e..61ccce624cc 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h +++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.h @@ -256,6 +256,8 @@ spirv_builder_set_phi_operand(struct spirv_builder *b, size_t position, void spirv_builder_emit_kill(struct spirv_builder *b); +SpvId +spirv_builder_emit_vote(struct spirv_builder *b, SpvOp op, SpvId src); SpvId spirv_builder_emit_image_sample(struct spirv_builder *b,