glsl: move block validation outside function that validates members
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
committed by
Timothy Arceri
parent
649803742d
commit
8cf795dc7c
@@ -6068,14 +6068,6 @@ ast_process_structure_or_interface_block(exec_list *instructions,
|
||||
{
|
||||
unsigned decl_count = 0;
|
||||
|
||||
/* For blocks that accept memory qualifiers (i.e. shader storage), verify
|
||||
* that we don't have incompatible qualifiers
|
||||
*/
|
||||
if (layout && layout->flags.q.read_only && layout->flags.q.write_only) {
|
||||
_mesa_glsl_error(&loc, state,
|
||||
"Interface block sets both readonly and writeonly");
|
||||
}
|
||||
|
||||
/* Make an initial pass over the list of fields to determine how
|
||||
* many there are. Each element in this list is an ast_declarator_list.
|
||||
* This means that we actually need to count the number of elements in the
|
||||
@@ -6492,6 +6484,14 @@ ast_interface_block::hir(exec_list *instructions,
|
||||
*/
|
||||
state->struct_specifier_depth++;
|
||||
|
||||
/* For blocks that accept memory qualifiers (i.e. shader storage), verify
|
||||
* that we don't have incompatible qualifiers
|
||||
*/
|
||||
if (this->layout.flags.q.read_only && this->layout.flags.q.write_only) {
|
||||
_mesa_glsl_error(&loc, state,
|
||||
"Interface block sets both readonly and writeonly");
|
||||
}
|
||||
|
||||
unsigned int num_variables =
|
||||
ast_process_structure_or_interface_block(&declared_variables,
|
||||
state,
|
||||
|
||||
Reference in New Issue
Block a user