glsl: Also track matrix layout information into structures

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Ian Romanick 2014-07-18 10:27:21 -07:00
parent 814d694160
commit 68fa4cab1a

View file

@ -5203,7 +5203,13 @@ ast_process_structure_or_interface_block(exec_list *instructions,
"in uniform blocks or structures.");
}
if (field_type->without_array()->is_matrix()) {
/* Propogate row- / column-major information down the fields of the
* structure or interface block. Structures need this data because
* the structure may contain a structure that contains ... a matrix
* that need the proper layout.
*/
if (field_type->without_array()->is_matrix()
|| field_type->without_array()->is_record()) {
fields[i].matrix_layout = block_row_major
? GLSL_MATRIX_LAYOUT_ROW_MAJOR
: GLSL_MATRIX_LAYOUT_COLUMN_MAJOR;