Mesa (master): vc4: Fix assertion fails from trying to cast non-ALU instrs to ALU.

Eric Anholt anholt at kemper.freedesktop.org
Fri Oct 7 01:30:46 UTC 2016


Module: Mesa
Branch: master
Commit: b30205b1120d4a87b6fb8eac9dea9a7f7a065123
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b30205b1120d4a87b6fb8eac9dea9a7f7a065123

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Oct  6 16:46:35 2016 -0700

vc4: Fix assertion fails from trying to cast non-ALU instrs to ALU.

Fixes 100 piglit tests since the assertions were added to nir.h.  What's
amazing is that these tests used to pass, even when casting garbage.

---

 src/gallium/drivers/vc4/vc4_program.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c
index 84add52..a91e620 100644
--- a/src/gallium/drivers/vc4/vc4_program.c
+++ b/src/gallium/drivers/vc4/vc4_program.c
@@ -918,6 +918,8 @@ static struct qreg ntq_emit_bcsel(struct vc4_compile *c, nir_alu_instr *instr,
 {
         if (!instr->src[0].src.is_ssa)
                 goto out;
+        if (instr->src[0].src.ssa->parent_instr->type != nir_instr_type_alu)
+                goto out;
         nir_alu_instr *compare =
                 nir_instr_as_alu(instr->src[0].src.ssa->parent_instr);
         if (!compare)




More information about the mesa-commit mailing list