mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
glsl: Reject illegal qualifiers on atomic counter uniforms.
This fixes dEQP-GLES31.functional.uniform_location.negative.atomic_fragment dEQP-GLES31.functional.uniform_location.negative.atomic_vertex Both of which have lines like layout(location = 3, binding = 0, offset = 0) uniform atomic_uint uni0; The ARB_explicit_uniform_location spec makes a very tangential mention regarding atomic counters, but location isn't something that makes sense with them. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
This commit is contained in:
parent
929e44099f
commit
e303e88a9c
1 changed files with 11 additions and 0 deletions
|
|
@ -4300,6 +4300,17 @@ ast_declarator_list::hir(exec_list *instructions,
|
|||
state->atomic_counter_offsets[qual_binding] = qual_offset;
|
||||
}
|
||||
}
|
||||
|
||||
ast_type_qualifier allowed_atomic_qual_mask;
|
||||
allowed_atomic_qual_mask.flags.i = 0;
|
||||
allowed_atomic_qual_mask.flags.q.explicit_binding = 1;
|
||||
allowed_atomic_qual_mask.flags.q.explicit_offset = 1;
|
||||
allowed_atomic_qual_mask.flags.q.uniform = 1;
|
||||
|
||||
type->qualifier.validate_flags(&loc, state,
|
||||
"invalid layout qualifier for "
|
||||
"atomic_uint",
|
||||
allowed_atomic_qual_mask);
|
||||
}
|
||||
|
||||
if (this->declarations.is_empty()) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue