summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorErik Faye-Lund <[email protected]>2019-07-19 14:27:47 +0200
committerErik Faye-Lund <[email protected]>2019-10-28 08:51:47 +0000
commitbb895afaa07ec83cf88c32cf6737505d2d0a4ea9 (patch)
tree6ca83b46054d6707ff53e575ac322070b8b16532 /src/gallium
parent04bb08ed35bc251990aa948b1132253bcd86c765 (diff)
zink/spirv: implement f2b1
Acked-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c9
1 files changed, 9 insertions, 0 deletions
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 3cef61b6463..6612caf1eb1 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
@@ -834,6 +834,15 @@ emit_alu(struct ntv_context *ctx, nir_alu_instr *alu)
}
break;
+ case nir_op_f2b1: {
+ assert(nir_op_infos[alu->op].num_inputs == 1);
+ float values[NIR_MAX_VEC_COMPONENTS] = { 0 };
+ SpvId zero = get_fvec_constant(ctx, nir_src_bit_size(alu->src[0].src),
+ num_components, values);
+ result = emit_binop(ctx, SpvOpFOrdNotEqual, dest_type, src[0], zero);
+ } break;
+
+
#define BINOP(nir_op, spirv_op) \
case nir_op: \
assert(nir_op_infos[alu->op].num_inputs == 2); \