From 9b3399b3f7659b54234020498d05b7b4e2a8d24a Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Fri, 27 Sep 2024 18:16:54 +0200 Subject: [PATCH] vc4: handle nir_op_ult32 intrinsic Fixes `spec@glsl-1.10@execution@vs-loop-partial-unroll-multiple-breaks`. Reviewed-by: Jose Maria Casanova Crespo Signed-off-by: Juan A. Suarez Romero Part-of: --- src/broadcom/ci/broadcom-rpi3-fails.txt | 4 ---- src/gallium/drivers/vc4/vc4_program.c | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/broadcom/ci/broadcom-rpi3-fails.txt b/src/broadcom/ci/broadcom-rpi3-fails.txt index df1a279730b..08bf2738c64 100644 --- a/src/broadcom/ci/broadcom-rpi3-fails.txt +++ b/src/broadcom/ci/broadcom-rpi3-fails.txt @@ -1228,10 +1228,6 @@ asan-KHR-GLES2.core.internalformat.texture2d.depth_component_unsigned_int_depth_ asan-dEQP-GLES2.functional.texture.mipmap.2d.basic.nearest_linear_clamp_non_square,Fail asan-dEQP-GLES2.functional.texture.wrap.clamp_clamp_nearest_npot_etc1,Fail -# Regression from https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31031 -# "unknown NIR ALU inst: 32 %156 = ult32 %6 (0x1), %208" -spec@glsl-1.10@execution@vs-loop-partial-unroll-multiple-breaks,Crash - asan-dEQP-GLES2.functional.clipping.line.wide_line_clip_viewport_corner,Fail arm32-dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_mirror_non_square,Fail arm32-dEQP-GLES2.functional.texture.mipmap.2d.basic.linear_linear_clamp_non_square,Fail diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 835e842a848..5205925ce37 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -939,6 +939,7 @@ ntq_emit_comparison(struct vc4_compile *c, struct qreg *dest, break; case nir_op_flt32: case nir_op_ilt32: + case nir_op_ult32: case nir_op_slt: cond = QPU_COND_NS; break; @@ -1187,6 +1188,7 @@ ntq_emit_alu(struct vc4_compile *c, nir_alu_instr *instr) case nir_op_ige32: case nir_op_uge32: case nir_op_ilt32: + case nir_op_ult32: if (!ntq_emit_comparison(c, &result, instr, instr)) { fprintf(stderr, "Bad comparison instruction\n"); }