Geometry Shader/Defined Outputs Layered
Layered rendering in the GS works via two special output variables:
out int gl_Layer; out int gl_ViewportIndex; // Requires GL 4.1 or ARB_viewport_array.
The gl_Layer output defines which layer in the layered image the primitive goes to. Each vertex in the primitive must get the same layer index. Note that when rendering to cubemap arrays, the gl_Layer value represents layer-faces (the faces within a layer), not the layers of cubemaps.
gl_ViewportIndex, which requires GL 4.1 or ARB_viewport_array, specifies which viewport index to use with this primitive.