Closed baldurk closed 5 years ago
We discussed this in the OpenGL/ES meeting yesterday and agree the defaults for VERTEX_BINDING_DIVISOR and VERTEX_BINDING_BUFFER should have been zero. Assigned to @oddhack to make the change.
Fixed in gitlab, closing. Will go out with the next public spec update.
In Table 23.4: Vertex Array Object State in the OpenGL 4.6 spec, the table lists the state for vertex bindings:
The bolded values seem strange to me. A default stride of 16 might make sense since the default format is
GL_FLOAT / 4
which is 16 bytes, thoughVERTEX_ATTRIB_ARRAY_STRIDE
defaults to 0 meaning tightly packed anyway. Either way the divisor and buffer definitely don't seem like they should default to 16. I'd guess these values should perhaps be 0, 0,i
respectively.As a side note it's a little confusing to have the vertex attrib array state in table 23.3 when the spec says that some of it is effectively bound to be identical to the vertex bindings - e.g.
VERTEX_ATTRIB_ARRAY_STRIDE
I think is always equal toVERTEX_BINDING_STRIDE
for whichever bindingVERTEX ATTRIB BINDING
points to. I'm not sure how best to express that though but it would be nice to clarify that these two are tied together, similar to how the actual spec for those functions expresses the oldglVertexAttribPointer
functions in terms of setting the attrib and the binding - old in terms of new.Maybe slightly related to #42.