[Mesa-dev] glGetString(GL_EXTENSIONS) omits mapbuffer extension

Simon Que sque at chromium.org
Fri Feb 24 18:13:49 PST 2012

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

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:


What this function does:
1. Call glGetString(GL_EXTENSIONS), to get a string containing all the
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:


More information about the mesa-dev mailing list