* precise qualifiers since these are useful in ARB_separate_shader_objects.
* There is no clear spec guidance on this either.
*/
- if (!state->has_420pack_or_es31() && $2.has_layout())
- _mesa_glsl_error(&@1, state, "duplicate layout(...) qualifiers");
-
$$ = $1;
$$.merge_qualifier(& @1, state, $2, false, $2.has_layout());
}
{
ast_interface_block *block = (ast_interface_block *) $2;
- if (!state->has_420pack_or_es31() && block->layout.has_layout()) {
- _mesa_glsl_error(&@1, state, "duplicate layout(...) qualifiers");
- YYERROR;
- }
-
if (!$1.merge_qualifier(& @1, state, block->layout, false,
block->layout.has_layout())) {
YYERROR;
layout_qualifier layout_uniform_defaults
{
$$ = $1;
- if (!state->has_420pack_or_es31()) {
- _mesa_glsl_error(&@1, state, "duplicate layout(...) qualifiers");
- YYERROR;
- }
if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
YYERROR;
}
layout_qualifier layout_buffer_defaults
{
$$ = $1;
- if (!state->has_420pack_or_es31()) {
- _mesa_glsl_error(&@1, state, "duplicate layout(...) qualifiers");
- YYERROR;
- }
if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
YYERROR;
}
layout_qualifier layout_in_defaults
{
$$ = $1;
- if (!state->has_420pack_or_es31()) {
- _mesa_glsl_error(&@1, state, "duplicate layout(...) qualifiers");
- YYERROR;
- }
if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
YYERROR;
}
layout_qualifier layout_out_defaults
{
$$ = $1;
- if (!state->has_420pack_or_es31()) {
- _mesa_glsl_error(&@1, state, "duplicate layout(...) qualifiers");
- YYERROR;
- }
if (!$$.merge_qualifier(& @1, state, $2, false, true)) {
YYERROR;
}