You can call GetProcAddress on ANYTHING and it won't return NULL. It will even return a pointer for glHamSandwich. You must check the extension string.
On Feb 24, 2012, at 6:13 PM, Simon Que <[email protected]> wrote: > Previously posted at mesa-users. > > TL;DR: GL_EXTENSIONS string does not contain "GL_OES_mapbuffer", but > the mapbuffer extension functions are still available through > eglGetProcAddress(). > > I am using Mesa GLESv2 with Linaro's glmark2 benchmark. The benchmark > uses the functions "glMapBufferOES" and "glUnmapBufferOES" from the > "GL_OES_mapbuffer" extension, as seen in this function: > > http://git.linaro.org/gitweb?p=people/afrantzis/glmark2.git;a=blob;f=src/canvas-x11-egl.cpp;h=f69e6f40a32832c5cb12eafc94afc8d5d320887e;hb=HEAD#l256 > > What this function does: > 1. Call glGetString(GL_EXTENSIONS), to get a string containing all the > extensions. > 2. Checks for "GL_OES_mapbuffer" in the extension list string from Step #1. > 3. If "GL_OES_mapbuffer" is found in Step #2, it proceeds to get the > functions gl[Map|UnMap]BufferOES. > 4. If it is not found, the function takes no action, and the benchmark > later fails because it was not given the map/unmap functions. > > However, I was able to get the map/unmap functions by bypassing the > check in Step #2 and calling eglGetProcAddress() regardless of whether > the string contained the mapbuffer extension. And then the benchmark > runs successfully, meaning that the mapbuffer extension actually does > exist, it is just not being exported in by glGetString(GL_EXTENSIONS). > > For reference, I am building Mesa with the following configuration: > ./configure --prefix=/usr --build=x86_64-pc-linux-gnu > --host=i686-pc-linux-gnu --mandir=/usr/share/man > --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc > --localstatedir=/var/lib --disable-option-checking --with-driver=dri > --disable-glut --without-demos --enable-xcb --enable-egl > --enable-gles1 --enable-gles2 --enable-shared-glapi --enable-gallium > --disable-debug --enable-glx-tls --disable-glw --disable-motif > --enable-asm --with-dri-drivers=,i915,i965 > --with-gallium-drivers=,swrast,i915 --with-egl-platforms=drm > > The only GL_OES extensions contained in the GL_EXTENSIONS string are: > GL_OES_read_format > GL_OES_EGL_image > > Thanks, > Simon > _______________________________________________ > mesa-dev mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
