[Mesa-dev] [PATCH] nir: special hack for TGSI vs indirect inputs

Christian König deathsimple at vodafone.de
Tue Jan 12 01:22:00 PST 2016


Am 11.01.2016 um 20:55 schrieb Marek Olšák:
> On Mon, Jan 11, 2016 at 8:00 PM, Rob Clark <robdclark at gmail.com> wrote:
>> On Mon, Jan 11, 2016 at 1:52 PM, Marek Olšák <maraeo at gmail.com> wrote:
>>> On Mon, Jan 11, 2016 at 6:07 PM, Rob Clark <robdclark at gmail.com> wrote:
>>>> Quite possibly I am..  although wouldn't I still have the same issue
>>>> with other state trackers?  So in that case I'd have to detect
>>>> indirect access, but without ArrayID's, and still set this flag.
>>> Yes, PIPE_SHADER_CAP_TGSI_ANY_INOUT_DECL_RANGE adds array support for
>>> TGSI inputs and outputs. If ArrayID > 0, there is an array
>>> declaration. If ArrayID == 0, the entire file is an array. This
>>> applies to all files.(input, output, temp)
>> The question is whether there would be any ArrayID==0 case that we
>> actually care about.  I suppose wine/nine-st isn't worth caring about
>> on arm (vc4/freedreno).  Unsure about other state trackers (or ARB
>> shader or other cases coming from mesa-st)?
> I don't think so. ARB asm programs don't support indirect addressing
> on temps, inputs, and outputs. Regarding inputs and outputs,
> glsl_to_tgsi automatically declares an array for anything that is an
> array in GLSL even if indirect addressing is not used, so proper array
> declarations are always present. I'm not sure about temporaries, but I
> think glsl_to_tgsi has correctly generated temp arrays for many years
> now.

Actually I added the ArrayID to TGSI in 2013 to fix the same problem for 
radeonsi Rob has now as well.

> You should be fine from the OpenGL side.

Yeah, indeed. Otherwise radeonsi won't work correctly either.

Regards,
Christian.

>
> Marek
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list