1617a3babSopenharmony_ci#version 450 core
2617a3babSopenharmony_ci
3617a3babSopenharmony_cilayout(vertices = 4) out;
4617a3babSopenharmony_ci
5617a3babSopenharmony_cilayout(location=1) patch out vec4 patchOut;
6617a3babSopenharmony_ci
7617a3babSopenharmony_cistruct S {
8617a3babSopenharmony_ci    float sMem1;  // should not see a patch decoration
9617a3babSopenharmony_ci    float sMem2;  // should not see a patch decoration
10617a3babSopenharmony_ci};
11617a3babSopenharmony_ci
12617a3babSopenharmony_cilayout(location = 12) patch out TheBlock {
13617a3babSopenharmony_ci    highp float bMem1;  // should not see a location decoration
14617a3babSopenharmony_ci    highp float bMem2;
15617a3babSopenharmony_ci    S s;                // should see a patch decoration
16617a3babSopenharmony_ci} tcBlock[2];
17617a3babSopenharmony_ci
18617a3babSopenharmony_civoid main()
19617a3babSopenharmony_ci{
20617a3babSopenharmony_ci    gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position;
21617a3babSopenharmony_ci}
22617a3babSopenharmony_ci
23617a3babSopenharmony_cilayout(location = 2) patch out SingleBlock {
24617a3babSopenharmony_ci    highp float bMem1;  // should not see a location decoration
25617a3babSopenharmony_ci    highp float bMem2;
26617a3babSopenharmony_ci    S s;                // should see a patch decoration
27617a3babSopenharmony_ci} singleBlock;
28617a3babSopenharmony_ci
29617a3babSopenharmony_cilayout(location = 20) patch out bn {
30617a3babSopenharmony_ci                        vec4 v1; // location 20
31617a3babSopenharmony_ci  layout(location = 24) vec4 v2; // location 24
32617a3babSopenharmony_ci                        vec4 v3; // location 25
33617a3babSopenharmony_ci};