<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Sun, Nov 11, 2018 at 9:37 PM Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com">tarceri@itsqueeze.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 12/11/18 2:11 pm, Jason Ekstrand wrote:<br>
> On November 11, 2018 20:30:29 Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com" target="_blank">tarceri@itsqueeze.com</a>> wrote:<br>
> <br>
>> Fixes: 1c9c42d16b4c ("nir: add varying component packing helpers")<br>
>> ---<br>
>> src/compiler/nir/nir_linking_helpers.c | 9 ++++++---<br>
>> 1 file changed, 6 insertions(+), 3 deletions(-)<br>
>><br>
>><br>
>> diff --git a/src/compiler/nir/nir_linking_helpers.c <br>
>> b/src/compiler/nir/nir_linking_helpers.c<br>
>> index b07bb40894e..125a8d55b3e 100644<br>
>> --- a/src/compiler/nir/nir_linking_helpers.c<br>
>> +++ b/src/compiler/nir/nir_linking_helpers.c<br>
>> @@ -196,10 +196,13 @@ nir_remove_unused_varyings(nir_shader *producer, <br>
>> nir_shader *consumer)<br>
>> }<br>
>><br>
>> static uint8_t<br>
>> -get_interp_type(nir_variable *var, bool default_to_smooth_interp)<br>
>> +get_interp_type(nir_variable *var, const struct glsl_type *type,<br>
>> +                bool default_to_smooth_interp)<br>
>> {<br>
>>    if (var->data.interpolation != INTERP_MODE_NONE)<br>
>>       return var->data.interpolation;<br>
>> +   else if (glsl_type_is_integer(type))<br>
>> +      return INTERP_MODE_FLAT;<br>
> <br>
> Are we guaranteed that there will be no explititly interpolated integers?<br>
<br>
The GLSL 1.30 spec used to require ints to be marked as flat but the <br>
4.60 spec doesn't say much at all. I can make "if <br>
(glsl_type_is_integer(type))" the first check, this would match what we <br>
do in GLSL IR. Would this cover your concerns?<br></blockquote><div><br></div><div>Yes, it would.  With that, both are</div><div><br></div><div>Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> <br>
>>    else if (default_to_smooth_interp)<br>
>>       return INTERP_MODE_SMOOTH;<br>
>>    else<br>
>> @@ -253,7 +256,7 @@ get_slot_component_masks_and_interp_types(struct <br>
>> exec_list *var_list,<br>
>>          unsigned comps_slot2 = 0;<br>
>>          for (unsigned i = 0; i < slots; i++) {<br>
>>             interp_type[location + i] =<br>
>> -               get_interp_type(var, default_to_smooth_interp);<br>
>> +               get_interp_type(var, type, default_to_smooth_interp);<br>
>>             interp_loc[location + i] = get_interp_loc(var);<br>
>><br>
>>             if (dual_slot) {<br>
>> @@ -425,7 +428,7 @@ compact_components(nir_shader *producer, <br>
>> nir_shader *consumer, uint8_t *comps,<br>
>>             continue;<br>
>><br>
>>          bool found_new_offset = false;<br>
>> -         uint8_t interp = get_interp_type(var, <br>
>> default_to_smooth_interp);<br>
>> +         uint8_t interp = get_interp_type(var, type, <br>
>> default_to_smooth_interp);<br>
>>          for (; cursor[interp] < 32; cursor[interp]++) {<br>
>>             uint8_t cursor_used_comps = comps[cursor[interp]];<br>
>><br>
>> -- <br>
>> 2.19.1<br>
>><br>
>><br>
>> _______________________________________________<br>
>> mesa-dev mailing list<br>
>> <a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
>> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
> <br>
> <br>
> <br>
</blockquote></div></div>