[Mesa-dev] [PATCH 00/17] dispatch: code generate _mesa_create_exec_table.

Jordan Justen jljusten at gmail.com
Thu Nov 1 21:55:39 PDT 2012


Excellent Paul! I didn't realize you were so close to having this
ready. It makes a good portion of my GL Core dispatch sanity v2 series
unnecessary.

Anyway, I rebased my 5 dispatch-sanity changes onto your branch, and
it reported that these functions should be nop in GL Core profiles:
* ActiveProgramEXT
* CreateShaderProgramEXT
* UseShaderProgramEXT
* StencilFuncSeparateATI

The first 3 were changed in my recent v2 03/13 patch.

Anyway, I pushed my rebased changes to:
git://people.freedesktop.org/~jljusten/mesa
branch=code-gen-api-exec+gl-core-sanity

Those 5 changes haven't been fully code reviewed yet, but I think they
are reasonably close to ready. What would you think about adding them
to the end of your series?

I'll try review this series tomorrow.

-Jordan

On Thu, Nov 1, 2012 at 3:19 PM, Paul Berry <stereotype441 at gmail.com> wrote:
> This patch series replaces the hand-coded function
> _mesa_create_exec_table() with an equivalent function that is
> generated at compile-time based on the XML in src/mapi/glapi/gen.
> This function is responsible for populating the static entries in the
> dispatch table with pointers to Mesa functions.
>
> Note that I had to trim down a few patches to make them fit on the
> mailing list, so you can't apply the series with "git am".  If you'd
> like to test it out, please check out branch "code-gen-api-exec" from
> git://github.com/stereotype441/mesa.git.
>
> In order to code generate _mesa_create_exec_table(), I had to add a
> few new properties to the XML, to indicate:
>
> - Which functions are deprecated (and hence shouldn't be populated for
>   core contexts).
>
> - Which functions are for ES only (and hence shouldn't be populated
>   for desktop GL contexts).
>
> - Differences between the name of the function in OpenGL and the name
>   of the corresponding Mesa function.
>
> - Which functions are not implemented in Mesa, or have their dispatch
>   table updated dynamically based on GL state (and hence shouldn't be
>   set up by _mesa_create_exec_table()).
>
> Patch 1 removes some #if conditionals to allow the GLES1.1 dispatch
> sanity test to run even if GLES1.1 support isn't being built--this
> allows us to get wider test coverage for these changes.
>
> Patches 2-3 do some minor consistency clean-up of the XML--they aren't
> strictly necessary for this patch set, but they allowed me to write
> some python scripts that read the XML and check that I haven't messed
> it up.
>
> Patches 4-10 annotate the XML with the information that will be
> necessary to code generate _mesa_create_exec_table().
>
> Patch 11 makes all the functions that will be needed by
> _mesa_create_exec_table() non-static, so that
> _mesa_create_exec_table() will be able to refer to them.  (Previously,
> these functions were inserted into the dispatch table by smaller
> functions that _mesa_create_exec_table() would call.  But if we are
> code generating _mesa_create_exec_table(), that doesn't make sense).
>
> Patches 12-15 create the code generation script.
>
> Patch 16 adds code generation as a build step.
>
> Patch 17 deletes some functions that are no longer used.
>
> [PATCH 01/17] dispatch: Remove a few FEATURE_ES1 conditionals.
> [PATCH 02/17] glapi: Use GL_ or GLX_ prefix for all category names.
> [PATCH 03/17] glapi: Mark GLX extensions as window_system="glX".
> [PATCH 04/17] glapi: Annotate XML with deprecated="3.1" for deprecated functions.
> [PATCH 05/17] glapi: Annotate XML with exec="skip" for unimplemented functions.
> [PATCH 06/17] glapi: Annotate XML with exec="dynamic" for dynamic functions.
> [PATCH 07/17] glapi: Annotate XML with exec="loopback" for loopback functions.
> [PATCH 08/17] glapi: Annotate XML with exec="{es,check}" for special GLES1 functions.
> [PATCH 09/17] glapi: Annotate XML with desktop="false" for GLES-only functions.
> [PATCH 10/17] glapi: Annotate XML with function name suffix anomalies.
> [PATCH 11/17] dispatch: Make all API functions non-static.
> [PATCH 12/17] glapi/gen: Comment fix.
> [PATCH 13/17] glapi/gen: Gather API version info across aliased functions.
> [PATCH 14/17] glapi/gen: handle new XML attributes.
> [PATCH 15/17] glapi/gen: Add code generation script for _mesa_create_exec_table().
> [PATCH 16/17] dispatch: Code generate api_exec.c.
> [PATCH 17/17] dispatch: Delete unused init_dispatch functions.
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list