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); _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev