[Mesa-dev] [PATCH] nir: Always print non-xyzw swizzles.

Matt Turner mattst88 at gmail.com
Mon Sep 21 21:45:56 PDT 2015


On Mon, Sep 21, 2015 at 9:37 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Tue, Sep 22, 2015 at 12:31 AM, Matt Turner <mattst88 at gmail.com> wrote:
>> Previously we would not print a swizzle on ssa_52 when only its .x
>> component is used (as seen in the definition of ssa_53):
>>
>>    vec3 ssa_52 = fadd ssa_51, ssa_51
>>    vec1 ssa_53 = flog2 ssa_52
>>    vec1 ssa_54 = flog2 ssa_52.y
>>    vec1 ssa_55 = flog2 ssa_52.z
>>
>> But this makes the interpretation of the RHS of the definition difficult
>> to understand and dependent on the size of the LHS. Just print swizzles
>> when they are not .xyzw (which is only possible on vec4 uses), so the
>> previous example is now printed as:
>>
>>    vec3 ssa_52 = fadd ssa_51.xyz, ssa_51.xyz
>
> IMHO if ssa_51 is a vec3, this makes sense without the .xyz. I'd
> change the condition to print the identity swizzle only if source size
> != output size, not sure if that's easy to do though.

I actually like it better as is for the same reason as stated -- you
don't have to know the type of the ssa value to know what it is.


More information about the mesa-dev mailing list