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 e055b868796..9cd33915084 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 @@ -2860,8 +2860,9 @@ emit_intrinsic(struct ntv_context *ctx, nir_intrinsic_instr *intr) static void emit_undef(struct ntv_context *ctx, nir_ssa_undef_instr *undef) { - SpvId type = get_uvec_type(ctx, undef->def.bit_size, - undef->def.num_components); + SpvId type = undef->def.bit_size == 1 ? get_bvec_type(ctx, undef->def.num_components) : + get_uvec_type(ctx, undef->def.bit_size, + undef->def.num_components); store_ssa_def(ctx, &undef->def, spirv_builder_emit_undef(&ctx->builder, type));