Comment 58 for bug 1553328

(In reply to Jim Blandy from comment #29)
> (In reply to Ilia Mirkin from comment #27)
> > Created attachment 119323 [details]
> > deal with bind == 0
> >
> > Oh blast, you're right. Can't disable GL_ARB_direct_state_access, since it's
> > o(dummy_true). Try this mesa patch, which should fix it (but might break
> > things on nv30... need to figure that out).
>
> Okay, cool. Building Mesa from source isn't something I can dive into right
> now, but I'm hoping I'll have more time for this project in the near future.
> (I tried just whacking the domain value into *buffer with GDB and seeing if
> the code could proceed, but optimized code foiled me.)

You can change your application to pretend that GL_ARB_direct_state_access isn't enabled, which should prevent it from using glCreateBuffers() and the glNamedBuffer* calls.

Should be easy enough to modify src/context/extensions.rs by e.g. introducing a typo into the GL_ARB_direct_state_access string. Or doing a fixup after-the-fact.

[As an aside, in src/buffer/alloc.rs, you appear to have at least one instance that only checks for GL4.5 and not the ext as well... oops? I'd personally recommend never checking for explicit GL versions and only looking at the exts. You can also set the ext bools based on the GL versions.

    if ctxt.version >= &Version(Api::Gl, 4, 5) {
        ctxt.gl.NamedBufferSubData(self.id, offset_bytes as ...

]