<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">I thought OpenCL used a different set of alignment rules for structs, unions, etc.  In particular, I thought it was very close to standard C.  If that's true, then std430 is not what you want.<br></div><div class="gmail_quote"><br>On Wed, Feb 28, 2018 at 1:44 PM, Karol Herbst <span dir="ltr"><<a href="mailto:kherbst@redhat.com" target="_blank">kherbst@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">it isn't yet. But you would use it in your driver when calculating<br>
your memory offsets for kernel arguments. In OpenCL things are aligned<br>
in memory by the size of the type and we would use those functions to<br>
calculate those.<br>
<div class="HOEnZb"><div class="h5"><br>
On Wed, Feb 28, 2018 at 10:39 PM, Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> wrote:<br>
> Looking through commit titles, I don't see any obvious place where this<br>
> would get used.<br>
><br>
> On Wed, Feb 28, 2018 at 11:51 AM, Rob Clark <<a href="mailto:robdclark@gmail.com">robdclark@gmail.com</a>> wrote:<br>
>><br>
>> Signed-off-by: Rob Clark <<a href="mailto:robdclark@gmail.com">robdclark@gmail.com</a>><br>
>> ---<br>
>>  src/compiler/nir_types.cpp | 12 ++++++++++++<br>
>>  src/compiler/nir_types.h   |  4 ++++<br>
>>  2 files changed, 16 insertions(+)<br>
>><br>
>> diff --git a/src/compiler/nir_types.cpp b/src/compiler/nir_types.cpp<br>
>> index cbdd452dc81..0085a19248a 100644<br>
>> --- a/src/compiler/nir_types.cpp<br>
>> +++ b/src/compiler/nir_types.cpp<br>
>> @@ -117,6 +117,18 @@ glsl_get_aoa_size(const struct glsl_type *type)<br>
>>     return type->arrays_of_arrays_size();<br>
>>  }<br>
>><br>
>> +unsigned<br>
>> +glsl_std430_size(const struct glsl_type *type, bool row_major)<br>
>> +{<br>
>> +   return type->std430_size(row_major);<br>
>> +}<br>
>> +<br>
>> +unsigned<br>
>> +glsl_std430_base_alignment(<wbr>const struct glsl_type *type, bool row_major)<br>
>> +{<br>
>> +   return type->std430_base_alignment(<wbr>row_major);<br>
>> +}<br>
>> +<br>
>>  unsigned<br>
>>  glsl_count_attribute_slots(<wbr>const struct glsl_type *type,<br>
>>                             bool is_vertex_input)<br>
>> diff --git a/src/compiler/nir_types.h b/src/compiler/nir_types.h<br>
>> index e2dfd1ef5b7..5b5e09d137f 100644<br>
>> --- a/src/compiler/nir_types.h<br>
>> +++ b/src/compiler/nir_types.h<br>
>> @@ -71,6 +71,10 @@ unsigned glsl_get_length(const struct glsl_type *type);<br>
>><br>
>>  unsigned glsl_get_aoa_size(const struct glsl_type *type);<br>
>><br>
>> +unsigned glsl_std430_size(const struct glsl_type *type, bool row_major);<br>
>> +<br>
>> +unsigned glsl_std430_base_alignment(<wbr>const struct glsl_type *type, bool<br>
>> row_major);<br>
>> +<br>
>>  unsigned glsl_count_attribute_slots(<wbr>const struct glsl_type *type,<br>
>>                                      bool is_vertex_input);<br>
>><br>
>> --<br>
>> 2.14.3<br>
>><br>
>> ______________________________<wbr>_________________<br>
>> mesa-dev mailing list<br>
>> <a href="mailto:mesa-dev@lists.freedesktop.org">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/<wbr>mailman/listinfo/mesa-dev</a><br>
><br>
><br>
</div></div></blockquote></div><br></div></div>