I think ARL is allowed to have no destination register, right? In that case, there should be a special case not to eliminate ARLs.
Marek On Fri, Oct 7, 2011 at 5:40 PM, Brian Paul <brian.e.p...@gmail.com> wrote: > From: Brian Paul <bri...@vmware.com> > > This fixes a bug where we'd wind up emitting an invalid instruction like > MOVE R[0]., R[1]; - note the empty/zero writemask. If we don't write to > any dest register channels, cull the instruction. > --- > src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > index d8ef8a3..44b1149 100644 > --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > @@ -3776,8 +3776,14 @@ > glsl_to_tgsi_visitor::eliminate_dead_code_advanced(void) > iter.remove(); > delete inst; > removed++; > - } else > + } else { > inst->dst.writemask &= ~(inst->dead_mask); > + if (inst->dst.writemask == 0) { > + iter.remove(); > + delete inst; > + removed++; > + } > + } > } > > ralloc_free(write_level); > -- > 1.7.3.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev