The Specification defines:
gl_VertexID is a vertex language input variable that holds an integer index for the vertex. The index is impliclty generated by glDrawArrays and other commands that do not reference the content of the GL_ELEMENT_ARRAY_BUFFER, or explicitly generated from the content of the GL_ELEMENT_ARRAY_BUFFER by commands such as glDrawElements.
I would like to know, if the "or" part of the specification is optional. Since this is ignored by a server released few days ago. Also I would like to know if re-indexing with random ordering is allowed e.g:
indexx < indexy => gl_VertexIDx > gl_VertexIDy == true