>u[index[9]] = 0.9,u[index[10]] = 0
違う。indexとuはペアとして扱う。正しくは
u[9] = 0.9,u[10] = 1

VertexShaderで書くと↓

// index attribute
isamplerBuffer indexBuffer;
samplerBuffer uvBuffer;

// vertex attribute
samplerBuffer positionBuffer;

void main(void)
{
int index = texelFetch(indexBuffer, gl_VertexID).x;
vec2 uv = texelFetch(uvBuffer, gl_VertexID).xy;

vec3 pos = texelFetch(positionBuffer, index).xy;