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