[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
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
More information about the mesa-dev
mailing list