#version 450 core layout(vertices = 4) out; patch out vec4 patchOut; struct S { float sMem1; // should not see a patch decoration float sMem2; // should not see a patch decoration }; layout(location = 12) patch out TheBlock { highp float bMem1; // should not see a location decoration highp float bMem2; S s; // should see a patch decoration } tcBlock[2]; void main() { } layout(location = 2) patch out SingleBlock { highp float bMem1; // should not see a location decoration highp float bMem2; S s; // should see a patch decoration } singleBlock; layout(location = 20) patch out bn { vec4 v1; // location 20 layout(location = 24) vec4 v2; // location 24 vec4 v3; // location 25 };