mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-21 22:20:14 +01:00
glsl: Only flag RowMajor on matrix-type variables.
We were only propagating it to the API when the variable was a matrix type, but we were still tripping over it in lower_ubo_reference when it was set on a vector. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
ffb2d43059
commit
86e0045578
1 changed files with 9 additions and 5 deletions
|
|
@ -4054,11 +4054,15 @@ ast_uniform_block::hir(exec_list *instructions,
|
|||
ubo_var->Type = var->type;
|
||||
ubo_var->Buffer = ubo - state->uniform_blocks;
|
||||
ubo_var->Offset = 0; /* Assigned at link time. */
|
||||
ubo_var->RowMajor = block_row_major;
|
||||
if (decl_list->type->qualifier.flags.q.row_major)
|
||||
ubo_var->RowMajor = true;
|
||||
else if (decl_list->type->qualifier.flags.q.column_major)
|
||||
ubo_var->RowMajor = false;
|
||||
|
||||
if (var->type->is_matrix() ||
|
||||
(var->type->is_array() && var->type->fields.array->is_matrix())) {
|
||||
ubo_var->RowMajor = block_row_major;
|
||||
if (decl_list->type->qualifier.flags.q.row_major)
|
||||
ubo_var->RowMajor = true;
|
||||
else if (decl_list->type->qualifier.flags.q.column_major)
|
||||
ubo_var->RowMajor = false;
|
||||
}
|
||||
|
||||
/* From the GL_ARB_uniform_buffer_object spec:
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue