| #version 450 core | |
| struct MyStruct | |
| { | |
| vec2 foo[2]; | |
| bool sb; | |
| }; | |
| layout(binding = 0, std430) buffer SSBO0 | |
| { | |
| MyStruct a; | |
| } inBuf; | |
| layout(binding = 1, std430) buffer SSBO1 | |
| { | |
| MyStruct b; | |
| } outBuf; | |
| layout(binding = 2, std140) uniform UBO | |
| { | |
| MyStruct c; | |
| } uBuf; | |
| struct Nested { | |
| float f; | |
| MyStruct S[2]; | |
| }; | |
| layout(binding = 2, std140) uniform UBON | |
| { | |
| Nested N1; | |
| } uBufN; | |
| layout(binding = 1, std430) buffer SSBO1N | |
| { | |
| Nested N2; | |
| } outBufN; | |
| void main() | |
| { | |
| MyStruct t = inBuf.a; | |
| outBuf.b = t; | |
| t = uBuf.c; | |
| outBuf.b = t; | |
| Nested n = uBufN.N1; | |
| outBufN.N2 = n; | |
| } |