#version 450 core

struct MyStruct
{
    vec2 foo[2];
    int 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;
}
