missing direct_state_access entries in gl.spec

i just ran into a small problem. i want to use the MapNemedBufferRange and FlushMappedNamedBufferRange functions from the direct_state_access extension. I found that the entry point specifications are missing from the gl.spec file and are therefore also missing from the glext.h.

Is it save to just define them for myself and hope my implementation is delivering them? Or are they missing on purpose?

This was a change to the extension specification after it was originally released. The 1.0 version didn’t have GL 3.0 functions.

I don’t know why NVIDIA decided to update their extension with new functions rather than adding a new extension, as it creates confusion like this. But obviously the gl.spec stuff is from the older version.

I have no idea if it is safe to use them, or if it is safe to use them in older drivers. That’s one of the reasons why it is a bad idea to change specifications after they’ve shipped.

another thing i noticed. there are two entry points specified in the gl3.h and glext.h for OpenGL 3.2.


i failed to get these two entry points from my implementation (nvidia) and tried to look them up in the specs. they are not in the spec document but in the gl.spec file. it this a bug in this file?

Yep, I think both of those were 86ed with the promotion of ARB_geometry_shader4 to the core in 3.2.

Now you can set the input/output/vertices parameters directly in the shader itself, and I think FramebufferTexture2D captures the essence of ‘face’ in the textarget parameter.

Considering the sheer number of entrypoints in DSA, as well as the multiple revisions of the spec, mistakes like this are bound to happen.

ok, just wanted to check if there is no error on my side.

hopefully we can forget about the DSA extension in a few weeks, it makes life so much easier when trying to cleanly abstract the API.