title: GLSL float/vec3/vec4 array max size = GL_MAX_VERTEX_UNIFORM_VECTORS?
body: <p>I run</p>
  
  <pre><code>glGetIntegerv(GL_MAX_VERTEX_UNIFORM_VECTORS, &amp;maxVertUniformsVect);
  </code></pre>
  
  <p>and get 1024.</p>
  
  <p>Than in GLSL I do </p>
  
  <pre><code>uniform mediump vec4[1020] instance_mat
  </code></pre>
  
  <p>and that was ok. But with vec3/vec2/float it fails:</p>
  
  <pre><code>uniform mediump float[1030] instance_mat;          // fails
  //uniform mediump vec2[1030] instance_mat;         // and this
  //uniform mediump vec3[1030] instance_mat;         // and this
  </code></pre>
  
  <p>With following error:</p>
  
  <blockquote>
    <p>cannot locate suitable resource to bind variable "instance_mat".
    Possibly large array.</p>
  </blockquote>
  
  <p>The question is:
  Does GL_MAX_VERTEX_UNIFORM_VECTORS return the number of all kind of arrays, no matter what size they are? I mean, no matter does this float/vec2/vec3/vec4 - all counts as one 
  VERTEX_UNIFORM_VECTOR?</p>
  
  <hr>
  
  <p>Vertex shader code, as is:</p>
  
  <pre><code>#version 120
  uniform mediump float[1200] instance_mat;        //mat4x3
  attribute mediump float instaceIdF;             // in range 0..1000 Will be converted to int
  
  attribute mediump vec3 vertex_;
  attribute lowp vec4 color;
  uniform mediump mat4 matrix;
  varying lowp vec4 v_color;
  
  void main(void)
  {
      v_color = color;
  
  
          int instaceId = int(instaceIdF) * 12;
          mediump mat4 offsetMat = mat4(
                                      vec4(instance_mat[instaceId],   instance_mat[instaceId+1], instance_mat[instaceId+2], 0),
                                      vec4(instance_mat[instaceId+3], instance_mat[instaceId+4], instance_mat[instaceId+5], 0),
                                      vec4(instance_mat[instaceId+6], instance_mat[instaceId+7], instance_mat[instaceId+8], 0),
                                      vec4(instance_mat[instaceId+9], instance_mat[instaceId+10], instance_mat[instaceId+11], 1)
                                   );
  
          /*mediump mat4 offsetMat = mat4(
                                      vec4(instance_mat[instaceId].xyz, 0),
                                      vec4(instance_mat[instaceId+1].xyz, 0),
                                      vec4(instance_mat[instaceId+2].xyz, 0),
                                      vec4(instance_mat[instaceId+3].xyz, 1)
                                   );*/
          gl_Position = matrix * offsetMat * vec4(vertex_, 1.0);
          //gl_Position = matrix * vec4(vertex, 1.0);
  
  
  }
  </code></pre>