[Mesa-dev] [PATCH 05/13] nir: expose 'C' wrappers for std430 size/alignment

Jason Ekstrand jason at jlekstrand.net
Wed Feb 28 21:47:43 UTC 2018


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.

On Wed, Feb 28, 2018 at 1:44 PM, Karol Herbst <kherbst at redhat.com> wrote:

> it isn't yet. But you would use it in your driver when calculating
> your memory offsets for kernel arguments. In OpenCL things are aligned
> in memory by the size of the type and we would use those functions to
> calculate those.
>
> On Wed, Feb 28, 2018 at 10:39 PM, Jason Ekstrand <jason at jlekstrand.net>
> wrote:
> > Looking through commit titles, I don't see any obvious place where this
> > would get used.
> >
> > On Wed, Feb 28, 2018 at 11:51 AM, Rob Clark <robdclark at gmail.com> wrote:
> >>
> >> Signed-off-by: Rob Clark <robdclark at gmail.com>
> >> ---
> >>  src/compiler/nir_types.cpp | 12 ++++++++++++
> >>  src/compiler/nir_types.h   |  4 ++++
> >>  2 files changed, 16 insertions(+)
> >>
> >> diff --git a/src/compiler/nir_types.cpp b/src/compiler/nir_types.cpp
> >> index cbdd452dc81..0085a19248a 100644
> >> --- a/src/compiler/nir_types.cpp
> >> +++ b/src/compiler/nir_types.cpp
> >> @@ -117,6 +117,18 @@ glsl_get_aoa_size(const struct glsl_type *type)
> >>     return type->arrays_of_arrays_size();
> >>  }
> >>
> >> +unsigned
> >> +glsl_std430_size(const struct glsl_type *type, bool row_major)
> >> +{
> >> +   return type->std430_size(row_major);
> >> +}
> >> +
> >> +unsigned
> >> +glsl_std430_base_alignment(const struct glsl_type *type, bool
> row_major)
> >> +{
> >> +   return type->std430_base_alignment(row_major);
> >> +}
> >> +
> >>  unsigned
> >>  glsl_count_attribute_slots(const struct glsl_type *type,
> >>                             bool is_vertex_input)
> >> diff --git a/src/compiler/nir_types.h b/src/compiler/nir_types.h
> >> index e2dfd1ef5b7..5b5e09d137f 100644
> >> --- a/src/compiler/nir_types.h
> >> +++ b/src/compiler/nir_types.h
> >> @@ -71,6 +71,10 @@ unsigned glsl_get_length(const struct glsl_type
> *type);
> >>
> >>  unsigned glsl_get_aoa_size(const struct glsl_type *type);
> >>
> >> +unsigned glsl_std430_size(const struct glsl_type *type, bool
> row_major);
> >> +
> >> +unsigned glsl_std430_base_alignment(const struct glsl_type *type, bool
> >> row_major);
> >> +
> >>  unsigned glsl_count_attribute_slots(const struct glsl_type *type,
> >>                                      bool is_vertex_input);
> >>
> >> --
> >> 2.14.3
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180228/b017692b/attachment.html>


More information about the mesa-dev mailing list