mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 21:10:12 +01:00
glsl: split layout_defaults into specific types
This will allow merging of duplicate layout qualifiers as allowed by ARB_shading_language_420pack Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
This commit is contained in:
parent
c8b8c578d1
commit
fd612e4547
1 changed files with 22 additions and 4 deletions
|
|
@ -299,6 +299,10 @@ static bool match_layout_qualifier(const char *s1, const char *s2,
|
|||
%type <node> for_init_statement
|
||||
%type <for_rest_statement> for_rest_statement
|
||||
%type <node> layout_defaults
|
||||
%type <node> layout_uniform_defaults
|
||||
%type <node> layout_buffer_defaults
|
||||
%type <node> layout_in_defaults
|
||||
%type <node> layout_out_defaults
|
||||
|
||||
%right THEN ELSE
|
||||
%%
|
||||
|
|
@ -2737,7 +2741,7 @@ member_declaration:
|
|||
}
|
||||
;
|
||||
|
||||
layout_defaults:
|
||||
layout_uniform_defaults:
|
||||
layout_qualifier UNIFORM ';'
|
||||
{
|
||||
if (!state->default_uniform_qualifier->merge_qualifier(& @1, state, $1)) {
|
||||
|
|
@ -2745,8 +2749,10 @@ layout_defaults:
|
|||
}
|
||||
$$ = NULL;
|
||||
}
|
||||
;
|
||||
|
||||
| layout_qualifier BUFFER ';'
|
||||
layout_buffer_defaults:
|
||||
layout_qualifier BUFFER ';'
|
||||
{
|
||||
if (!state->default_shader_storage_qualifier->merge_qualifier(& @1, state, $1)) {
|
||||
YYERROR;
|
||||
|
|
@ -2764,16 +2770,20 @@ layout_defaults:
|
|||
|
||||
$$ = NULL;
|
||||
}
|
||||
;
|
||||
|
||||
| layout_qualifier IN_TOK ';'
|
||||
layout_in_defaults:
|
||||
layout_qualifier IN_TOK ';'
|
||||
{
|
||||
$$ = NULL;
|
||||
if (!state->in_qualifier->merge_in_qualifier(& @1, state, $1, $$)) {
|
||||
YYERROR;
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
| layout_qualifier OUT_TOK ';'
|
||||
layout_out_defaults:
|
||||
layout_qualifier OUT_TOK ';'
|
||||
{
|
||||
$$ = NULL;
|
||||
if (state->stage == MESA_SHADER_GEOMETRY) {
|
||||
|
|
@ -2804,3 +2814,11 @@ layout_defaults:
|
|||
"tessellation control or geometry shaders");
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
layout_defaults:
|
||||
layout_uniform_defaults
|
||||
| layout_buffer_defaults
|
||||
| layout_in_defaults
|
||||
| layout_out_defaults
|
||||
;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue