-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Interactions between GL_NV_primitive_restart and OpenGL 3.1+ are undefined #75
Comments
It's also worth noting that the spec is a little unclear as to whether or not If this issue results in an update to the GL_NV_primitive_restart spec, it would be nice to add something like the following to section 2.6.X Primitive Restarts:
|
The NVIDIA implementation of GL_NV_primitive_restart is totally equivalent to the core functionality:
|
So.... do both Is there any chance of getting the extension spec update to document these (quite surprising) interactions? |
Only gl{Push,Pop}ClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT) saves/restores it. |
In GL_NV_primitive_restart, the enable and the restart index are client state. In unextended OpenGL 3.1 or OpenGL 3.2+ Core Profile, there is, effectively, no client vertex state. As a result, the enable and the restart index are server state. In unextended OpenGL 3.1 or OpenGL 3.2+ Core Profile, it is not possible to expose the extension, so there is no problem.
In extended OpenGL 3.1 or OpenGL 3.2+ Compatibility Profile, it is possible to expose GL_NV_primitve_restart in addition to the core feature. However, the extension spec was never updated with any interactions. What happens in the following code?
In draw 1, what is the primitive restart index? In draws 2 and 3, is primitive restart enabled or not?
Thinking about how this could work with GLX protocol, my guess would be that when both
GL_PRIMITVE_RESTART
andGL_PRIMITVE_RESTART_NV
are enabled, the state forGL_PRIMITVE_RESTART_NV
is used. If only ofGL_PRIMITVE_RESTART
orGL_PRIMITVE_RESTART_NV
is enabled, the enabled state is used.The text was updated successfully, but these errors were encountered: