#version 400

layout(constant_id = 16) const int arraySize = 5;
in vec4 ucol[arraySize];

layout(constant_id = 17) const bool spBool = true;
layout(constant_id = 18) const float spFloat = 3.14;
layout(constant_id = 19) const double spDouble = 3.1415926535897932384626433832795;
layout(constant_id = 22) const uint scale = 2;

layout(constant_id = 24) gl_MaxImageUnits;

out vec4 color;
out int size;

// parameter should be considered same type as ucol
void foo(vec4 p[arraySize]);

void main()
{
    color = ucol[2];
    size = arraySize;
    if (spBool)
        color *= scale;
    color += float(spDouble / spFloat);

    foo(ucol);
}

layout(constant_id = 116) const int dupArraySize = 12;
in vec4 dupUcol[dupArraySize];

layout(constant_id = 117) const bool spDupBool = true;
layout(constant_id = 118) const float spDupFloat = 3.14;
layout(constant_id = 119) const double spDupDouble = 3.1415926535897932384626433832795;
layout(constant_id = 122) const uint dupScale = 2;

void foo(vec4 p[arraySize])
{
    color += dupUcol[2];
    size += dupArraySize;
    if (spDupBool)
        color *= dupScale;
    color += float(spDupDouble / spDupFloat);
}

int builtin_spec_constant()
{
    int result = gl_MaxImageUnits;
    return result;
}
