From 7c1bf075f30527ec9724fe03f0a32d9110bebd0b Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 25 Feb 2019 11:22:10 -0800 Subject: [PATCH] nir: Just return when asked to rewrite uses of an SSA def to itself. The nir_builder swizzling improvement to not emit extra MOVs resulted in nir_lower_tex() trying to rewrite an SSA def to itself, triggering the assert on all texturing in v3d. There's no work to be done in this case, so just stop asserting. Fixes: 743700be1f58 ("nir/builder: Don't emit no-op swizzles") Reviewed-by: Jason Ekstrand --- src/compiler/nir/nir.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c index 60e30ae1008..d759dfdce21 100644 --- a/src/compiler/nir/nir.c +++ b/src/compiler/nir/nir.c @@ -1511,7 +1511,8 @@ void nir_ssa_def_rewrite_uses_after(nir_ssa_def *def, nir_src new_src, nir_instr *after_me) { - assert(!new_src.is_ssa || def != new_src.ssa); + if (new_src.is_ssa && def == new_src.ssa) + return; nir_foreach_use_safe(use_src, def) { assert(use_src->parent_instr != def->parent_instr); -- 2.30.2