[Mesa-dev] [PATCH 00/11] Gallium/RadeonSI: Allow any 1D register as a TGSI address operand

Marek Olšák maraeo at gmail.com
Sat Sep 30 15:48:01 UTC 2017


On Sat, Sep 30, 2017 at 4:49 PM, Gert Wollny <gw.fossdev at 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.fossdev at gmail.com>
>> wrote:
>> >
>> > Am 29.09.2017 14:51 schrieb "Marek Olšák" <maraeo at 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


More information about the mesa-dev mailing list