[Mesa-dev] glapi dispatch table isn't built correctly with --shared-glapi

Jon TURNEY jon.turney at dronecode.org.uk
Wed Feb 1 06:41:21 PST 2012


This is with git master, but the same issue exists since at least mesa-7.11.2.

./configure --enable-shared-glapi --disable-driglx-direct --with-driver=dri
--with-dri-drivers=swrast --with-gallium-drivers=swrast

$ gdb --args ./glean -r foo -o -t vertProg1 --quick
...
(gdb) b __indirect_glProgramParameters4fvNV
Function "__indirect_glProgramParameters4fvNV" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (__indirect_glProgramParameters4fvNV) pending.
(gdb) r
Starting program: /opt/jhbuild/git/glean/bin/glean -r foo -o -t vertProg1 --quick
Breakpoint 1, __indirect_glProgramParameters4fvNV (target=1, index=135353784,
num=20, params=0xbffff11c) at indirect.c:9306
9306        struct glx_context *const gc = __glXGetCurrentContext();
(gdb) bt
#0  __indirect_glProgramParameters4fvNV (target=1, index=135353784, num=20,
params=0xbffff11c) at indirect.c:9306
#1  0x080b719b in GLEAN::VertexProgramTest::setup (this=0x8115520) at
tvertprog1.cpp:831
#2  0x080b82e3 in GLEAN::VertexProgramTest::runOne (this=0x8115520, r=...,
w=...) at tvertprog1.cpp:1112
#3  0x08059885 in GLEAN::BaseTest<GLEAN::MultiTestResult>::run
(this=0x8115520, environment=...) at tbase.h:317
#4  0x08053ec0 in main (argc=7, argv=0xbffff3d4) at main.cpp:140
(gdb) frame 1
#1  0x080b719b in GLEAN::VertexProgramTest::setup (this=0x8115520) at
tvertprog1.cpp:831
831             glGenProgramsARB_func(1, &progID);

Note that glean is calling glGenPrograms, but we are ending up in
glProgramParameters4fvNV.

It seems the indirect dispatch table isn't being built correctly.  The
dispatch table layouts in glapi_map_tmpi.h and glapitable.h are inconsistent
when buiding shared glapi, as shared-glapi/glapi_mapi_tmp.h is generated from
gl_and_es_API.xml, whereas glapitable.h is generated from gl_API.xml



More information about the mesa-dev mailing list