John Kessenich | 2f47bc9 | 2016-06-30 21:47:35 -0600 | [diff] [blame] | 1 | #version 450 core
|
| 2 |
|
| 3 | layout(vertices = 4) out;
|
| 4 |
|
John Kessenich | d6be6da | 2017-08-17 23:49:39 -0600 | [diff] [blame] | 5 | layout(location=1) patch out vec4 patchOut;
|
John Kessenich | 2f47bc9 | 2016-06-30 21:47:35 -0600 | [diff] [blame] | 6 |
|
| 7 | struct S {
|
| 8 | float sMem1; // should not see a patch decoration
|
| 9 | float sMem2; // should not see a patch decoration
|
| 10 | };
|
| 11 |
|
| 12 | layout(location = 12) patch out TheBlock {
|
| 13 | highp float bMem1; // should not see a location decoration
|
| 14 | highp float bMem2;
|
| 15 | S s; // should see a patch decoration
|
| 16 | } tcBlock[2];
|
| 17 |
|
| 18 | void main()
|
| 19 | {
|
John Kessenich | d6be6da | 2017-08-17 23:49:39 -0600 | [diff] [blame] | 20 | gl_out[gl_InvocationID].gl_Position = gl_in[gl_InvocationID].gl_Position; |
John Kessenich | 2f47bc9 | 2016-06-30 21:47:35 -0600 | [diff] [blame] | 21 | }
|
John Kessenich | bbd1b0e | 2016-08-05 15:19:46 -0600 | [diff] [blame] | 22 |
|
| 23 | layout(location = 2) patch out SingleBlock {
|
| 24 | highp float bMem1; // should not see a location decoration
|
| 25 | highp float bMem2;
|
| 26 | S s; // should see a patch decoration
|
| 27 | } singleBlock;
|
| 28 |
|
| 29 | layout(location = 20) patch out bn {
|
| 30 | vec4 v1; // location 20
|
| 31 | layout(location = 24) vec4 v2; // location 24
|
| 32 | vec4 v3; // location 25
|
| 33 | }; |