What does it do if there's no destination register? In any case, I don't think glsl_to_tgsi emits any ARLs of that form, so it shouldn't be a problem.
Bryan On 10/07/2011 01:06 PM, Marek Olšák wrote: > 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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev