[Mesa-dev] [PATCH 11/16] glsl: Track matrix layout of structure fields using two bits
Ian Romanick
idr at freedesktop.org
Wed Jul 23 14:39:13 PDT 2014
On 07/21/2014 03:17 PM, Matt Turner wrote:
> On Mon, Jul 21, 2014 at 2:04 PM, Ian Romanick <idr at freedesktop.org> wrote:
>> +enum glsl_matrix_layout {
>> + GLSL_MATRIX_LAYOUT_DEFAULT,
>
> Does this mean language-default, or does it really means the inherited
> layout? E.g., for
>
> layout(row_major) uniform a {
> mat4 m;
> };
>
> m's .matrix_layout is GLSL_MATRIX_LAYOUT_DEFAULT, so we look to the
> outer row_major qualifier on uniform a?
Correct. If some entity inside a block has GLSL_MATRIX_LAYOUT_DEFAULT
then it either is not (or cannot contain) a matrix, or its layout is
inherited from the next outer container. The interface type itself will
never have GLSL_MATRIX_LAYOUT_DEFAULT.
> If so, could we name it _INHERITED or something?
That works. I think I like that better than _NOT_SET. The layout may
not be set for the interface type, but it will always have a layout of
either GLSL_MATRIX_LAYOUT_COLUMN_MAJOR or GLSL_MATRIX_LAYOUT_ROW_MAJOR.
> Maybe I've misunderstood.
>
>> + GLSL_MATRIX_LAYOUT_COLUMN_MAJOR,
>> + GLSL_MATRIX_LAYOUT_ROW_MAJOR
>> +};
>
More information about the mesa-dev
mailing list