[Mesa-dev] dispatch: unify GLES1 dispatch setup with GLES2/3 and desktop GL.

Paul Berry stereotype441 at gmail.com
Tue Oct 30 10:42:53 PDT 2012

Currently we use two separate functions to initialize the dispatch
table depending on the API: _mesa_create_exec_table_es1(), which
handles GLES1, and _mesa_create_exec_table(), which handles all other
APIs.  _mesa_create_exec_table_es1() is code-generated based on
src/mesa/main/APIspec.xml; _mesa_create_exec_table() is hand-coded.
In addition, we have two separate remap tables: one for GLES1, and one
for all the other APIs.  This duplication results in bugs and
additional maintenance effort.

This patch updates _mesa_create_exec_table() and the main remap table
to handle GLES1, and then eliminates the GLES1-specific code.  I plan
to follow up with a patch series that replaces
_mesa_create_exec_table() with a function that is code-generated based
on the XML files in src/mapi/glapi/gen.

Patch 1 fixes a "make check" bug I introduced on Oct 23 that affects
only non-shared-glapi builds.

Patches 2-3 introduce no functional change, but ensure that patch 4
will compile cleanly.

Patch 4 adds slots to the dispatch table to handle GLES1-specific
functions (e.g. functions that handle fixed-point values).

Patches 5-7 update _mesa_create_exec_table() to populate the dispatch
table correctly for the GLES1 API.

Patch 8 switches GLES1 over to using _mesa_create_exec_table() and
the common dispatch table.

Patch 9 removes _mesa_create_exec_table_es1() (and the code that
generates it) from the build.

[PATCH 1/9] dispatch: Update check_table.cpp to reflect recent aliasing changes.
[PATCH 2/9] dispatch: Include glheader.h in dispatch-related files.
[PATCH 3/9] dispatch: properly handle parameter name mismatches in glapitemp.h.
[PATCH 4/9] dispatch: Include GLES1-only functions in dispatch table.
[PATCH 5/9] dispatch: Add standard boilerplate and GL_APIENTRY to es1_conversion.h.
[PATCH 6/9] dispatch: Make a header to go along with querymatrix.c.
[PATCH 7/9] dispatch: GLES1 fixes for _mesa_create_exec_table().
[PATCH 8/9] dispatch: stop using _mesa_create_exec_table_es1() for GLES1.
[PATCH 9/9] dispatch: stop generating separate GLES1 API code.

More information about the mesa-dev mailing list