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

Kenneth Graunke kenneth at whitecape.org
Tue Oct 30 16:19:26 PDT 2012

On 10/30/2012 10:42 AM, Paul Berry wrote:
> 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.

For the series:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

More information about the mesa-dev mailing list