Correct. The thing was: even though we have an addressing register in TGSI (e.g. tgsi_full_dst|src_register::Indirect), everybody except nv50 and partially svga doesn't use it now. They expect the indirect register file is always TGSI_FILE_ADDRESS and the index is 0, making the destination of ARL irrelevant. This is probably a bug in those drivers and that's what made me think that ARL doesn't need a destination register. Sorry for the noise.
Marek On Sun, Oct 9, 2011 at 8:51 PM, Bryan Cain <bryanca...@gmail.com> wrote: > 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