On Sat, Sep 30, 2017 at 4:49 PM, Gert Wollny <gw.foss...@gmail.com> wrote: > Am Freitag, den 29.09.2017, 16:09 +0200 schrieb Marek Olšák: >> On Fri, Sep 29, 2017 at 3:33 PM, Gert Wollny <gw.foss...@gmail.com> >> wrote: >> > >> > Am 29.09.2017 14:51 schrieb "Marek Olšák" <mar...@gmail.com>: >> > >> > > >> > > If all requirements are met, UARL isn't emitted and the source >> > > operand of UARL is folded into the instruction where ADDR would >> > > normally be used. >> > >> > I only skimmed over the patches, but this will need >> > tracking reladdr* in the temporary register lifetime estimation >> > that is called by merge_registers, which is not yet done (unless I >> > missed a patch in the last few days or I didn't see it in this >> > set). >> > >> > AFAIR radeonsi doesn't use it, but at least r600g does, for which >> > you also enabled this new behaviour. >> > >> > On Monday I can have a closer look at it. >> >> This is only enabled for radeonsi, not r600g. > > My bad, shouldn't read patches on a mobile phone, but in any case, I > think to avoid problems if one wants to enable this for other drivers > it would be prudent to add an assert in merge_registers to make sure it > is not called. > > I'm currently working on improving the register merging, and there I'll > make sure that the reladdr* are tracked too. > > Best, > Gert > > Proposed patch: > > --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp > @@ -5195,7 +5195,7 @@ glsl_to_tgsi_visitor::merge_two_dsts(void) > void > glsl_to_tgsi_visitor::merge_registers(void) > { > - > + assert(need_uarl); > struct lifetime *lifetimes = > rzalloc_array(mem_ctx, struct lifetime, this->next_temp);
Thanks, I'll include this in my commit. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev