[Mesa-dev] [PATCH 2/2] nir: Print the components referenced for split or packed shader in/outs.

Eric Anholt eric at anholt.net
Fri Oct 20 23:38:20 UTC 2017


Timothy Arceri <tarceri at itsqueeze.com> writes:

> On 20/10/17 20:52, Timothy Arceri wrote:
>> 
>> 
>> On 20/10/17 17:33, Timothy Arceri wrote:
>>> On 18/10/17 07:52, Eric Anholt wrote:
>>>> Having 4 variables all called "gl_in_TexCoord0 at n" isn't very 
>>>> informative,
>>>> much better to see:
>>>>
>>>> decl_var shader_in INTERP_MODE_NONE float gl_in_TexCoord0 
>>>> (VARYING_SLOT_VAR0.x, 1, 0)
>>>> decl_var shader_in INTERP_MODE_NONE float gl_in_TexCoord0 at 0 
>>>> (VARYING_SLOT_VAR0.y, 1, 0)
>>>> decl_var shader_in INTERP_MODE_NONE float gl_in_TexCoord0 at 1 
>>>> (VARYING_SLOT_VAR0.z, 1, 0)
>>>> decl_var shader_in INTERP_MODE_NONE float gl_in_TexCoord0 at 2 
>>>> (VARYING_SLOT_VAR0.w, 1, 0)
>>>> ---
>>>>   src/compiler/nir/nir_print.c | 25 ++++++++++++++++++++++++-
>>>>   1 file changed, 24 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c
>>>> index f4811fe8bc11..df7a2057bfb9 100644
>>>> --- a/src/compiler/nir/nir_print.c
>>>> +++ b/src/compiler/nir/nir_print.c
>>>> @@ -447,7 +447,30 @@ print_var_decl(nir_variable *var, print_state 
>>>> *state)
>>>>            loc = buf;
>>>>         }
>>>> -      fprintf(fp, " (%s, %u, %u)%s", loc, var->data.driver_location, 
>>>> var->data.binding,
>>>> +      /* For shader I/O vars that have been split to components or 
>>>> packed,
>>>> +       * print the fractional location within the input/output.
>>>> +       */
>>>> +      unsigned int num_components = glsl_get_components(var->type);
>>>
>>> This needs to be:
>>>
>>> glsl_without_array(glsl_get_components(var->type));
>> 
>> Sorry I mean:
>> 
>> glsl_get_components(glsl_without_array(var->type));
>> 
>>>
>>>> +      const char *components = NULL;
>>>> +      char components_local[6] = {'.' /* the rest is 0-filled */};
>>>> +      switch (var->data.mode) {
>>>> +      case nir_var_shader_in:
>>>> +      case nir_var_shader_out:
>>>> +         if (num_components != 4) {
>
> Also maybe:
>
> if (num_components != 4 && num_components != 0)
>
> To avoid adding the '.' to structs for now.

I like both your changes.  Merged.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171020/25f00461/attachment.sig>


More information about the mesa-dev mailing list