OK, I understand now. The OpenGL function takes an actual void*, not a GLintptr. That's where it differs from WebGL.On Mon, Apr 23, 2012 at 12:56 PM, Benoit Jacob <email@example.com> wrote:I agree, except for 1): I don't see where the OpenGL spec forbids negative offsets.On Mon, Apr 23, 2012 at 12:06 PM, Boris Zbarsky <firstname.lastname@example.org> wrote:On 4/23/12 2:43 PM, Gregg Tavares (勤) wrote:
Doesn't that call fail per current spec because the offset (-1) is not a multiple of sizeof(float), independently of what negative offset handling looks like? My Gecko build with the negative offset check in vertexAttribPointer removed passes this test, precisely for that reason:There's at least one negative offset test in
VertexAttribPointer: byteOffset doesn't satisfy the alignment requirement of given type @ https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/more/util.js:965
To be clear1) AFAICT OpenGL does not allow negative offsets2) WebGL should not allow them either.So,a) we should update the WebGL spec to make it clear negative offsets generate INVALID_VALUEandb) we should update the conformance tests to test that case.Agree?How do you get a negative offset in OpenGL? The function takes a pointer, not an offset. To generate an offset the spec says "offset = pointer - NULL" which is always positive.
I agree that there doesn't seem to exist a valid use case for them. I would support forbidding negative offsets in WebGL for now, and having a conversation on that topic with the OpenGL WG.