     Vertex dst;
     clear(dst);
 
-    int offset = texelFetch(offsets, current).x,
-        size = texelFetch(sizes, current).x;
+    int offset = texelFetch(offsets, current).x;
+    uint size = texelFetch(sizes, current).x;
 
     for (int i=0; i<size; ++i) {
         int index = texelFetch(indices, offset+i).x;

}

void addWithWeight(inout Vertex v, Vertex src, float weight) {
    for(int i = 0; i < LENGTH; i++) {
        v.vertexData[i] += weight * src.vertexData[i];
    }
}

Vertex readVertex(int index) {
    Vertex v;
    int vertexIndex = primvarOffset + index * STRIDE;
    for(int i = 0; i < LENGTH; i++) {
        v.vertexData[i] = texelFetch(vertexBuffer, vertexIndex+i).x;
    }
    return v;
}


out float outVertexBuffer[LENGTH];

uniform usamplerBuffer sizes;
uniform isamplerBuffer offsets;
uniform isamplerBuffer indices;
uniform samplerBuffer  weights;
