[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] questions about vertexAttribPointer / getVertexAttrib offsets





On Mon, Apr 23, 2012 at 1:23 PM, Benoit Jacob <bjacob@mozilla.com> wrote:





On Mon, Apr 23, 2012 at 12:56 PM, Benoit Jacob <bjacob@mozilla.com> wrote:





On Mon, Apr 23, 2012 at 12:06 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote:
On 4/23/12 2:43 PM, Gregg Tavares (勤) wrote:

Update this test to use -4. I think that makes it check for negative offsets instead of the offset not being the correct size of the type. In fact I see that difference in the console error message reported by Chrome 20. Feel free to submit something more comprehensive if you think it's needed.

-g
 


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:

 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

-Boris

To be clear

1) AFAICT OpenGL does not allow negative offsets

2) WebGL should not allow them either.

So,

a) we should update the WebGL spec to make it clear negative offsets generate INVALID_VALUE

and 

b) we should update the conformance tests to test that case.

Agree?

I agree, except for 1): I don't see where the OpenGL spec forbids negative offsets.

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.
OK, I understand now. The OpenGL function takes an actual void*, not a GLintptr. That's where it differs from WebGL.

Thanks
Benoit




 
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.

Benoit