zink: implement i2b1

This shuold really have been implemented before starting to use these,
but I guess I missed them.

Fixes a crash when starting a game in Warzone 2100.

Fixes: 7f6a491eec ("zink: lower b2b to b2i")
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5053>
(cherry picked from commit 09ac0350fd)
This commit is contained in:
Erik Faye-Lund 2020-05-15 12:05:11 +02:00 committed by Eric Engestrom
parent 5a6f40fd34
commit 8142a52255
2 changed files with 8 additions and 1 deletions

View file

@ -2227,7 +2227,7 @@
"description": "zink: implement i2b1",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "7f6a491eec02d6c141e2b4849a3ba924926a482a"
},

View file

@ -1020,6 +1020,13 @@ emit_alu(struct ntv_context *ctx, nir_alu_instr *alu)
nir_src_bit_size(alu->src[0].src),
num_components, 0));
break;
case nir_op_i2b1:
assert(nir_op_infos[alu->op].num_inputs == 1);
result = emit_binop(ctx, SpvOpINotEqual, dest_type, src[0],
get_ivec_constant(ctx,
nir_src_bit_size(alu->src[0].src),
num_components, 0));
break;
#define BINOP(nir_op, spirv_op) \