#version 450

#extension GL_KHR_shader_subgroup_basic: enable

layout (local_size_x = 8, local_size_y = 8, local_size_z = 1) in;

layout(binding = 0) buffer Buffer
{
    int a[];
} data;

void main()
{
    data.a[gl_SubgroupSize] = 1;
    data.a[gl_SubgroupInvocationID] = 1;
    data.a[gl_NumSubgroups] = 1;
    data.a[gl_SubgroupID] = (subgroupElect()) ? 1 : 0;
    subgroupBarrier();
    subgroupMemoryBarrier();
    subgroupMemoryBarrierBuffer();
    subgroupMemoryBarrierShared();
    subgroupMemoryBarrierImage();
}
