I already posted this on AMD developer forums but just in case anyone else is having this issue:
glVertexAttribPointer() always fails for me on AMD (not on NVidia) if I do not use vertex array object in forward compatible context.
The specification text says:
"An INVALID_OPERATION error is generated under any of the following conditions:
...
* any of the *Pointer commands specifying the location and organization of vertex array data are called while zero is bound to the ARRAY_BUFFER buffer object binding point (see section 2.9.6), and the pointer argument is not NULL."
I have a proper VBO bound to ARRAY_BUFFER with glBindBuffer().
If I remove the forward compatible flag from the context, my application works fine. To me, this looks like a driver bug: The checks added into forward compatible config incorrectly checks if VAO is bound, instead of checking that VBO is bound.
Note that GL_ARRAY_BUFFER is VBO buffer, not VAO buffer.




