gbuffer: reserve one more attachment for arbitrary shader data
gl.CreateShader: support uniform arrays (up to 32 elements)