[Mesa-dev] [PATCH v2 01/12] mesa: separate exec allocation from initialization
Jordan Justen
jljusten at gmail.com
Mon Nov 19 09:18:01 PST 2012
On Sun, Nov 18, 2012 at 11:49 PM, Jordan Justen
<jordan.l.justen at intel.com> wrote:
> In glapi/gl_genexec.py:
> * Remove _mesa_alloc_dispatch_table call
>
> In glapi/gl_genexec.py and api_exec.h:
> * Rename _mesa_create_exec_table to _mesa_initialize_exec_table
>
> In context.c:
> * Call _mesa_alloc_dispatch_table instead of _mesa_create_exec_table
> * Call _mesa_initialize_exec_table (this is temporary)
>
> Once all drivers have been modified to call
> _mesa_initialize_exec_table, then the call to
> _mesa_initialize_context can be removed from context.c.
>
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
> src/mapi/glapi/gen/gl_genexec.py | 21 +++++++++------------
> src/mesa/main/api_exec.h | 4 ++--
> src/mesa/main/context.c | 7 +++++--
> 3 files changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
> index 9b71689..ddf219a 100644
> --- a/src/mapi/glapi/gen/gl_genexec.py
> +++ b/src/mapi/glapi/gen/gl_genexec.py
> @@ -22,7 +22,7 @@
> # IN THE SOFTWARE.
>
> # This script generates the file api_exec.c, which contains
> -# _mesa_create_exec_table(). It is responsible for populating all
> +# _mesa_initialize_exec_table(). It is responsible for populating all
> # entries in the "exec" dispatch table that aren't dynamic.
>
> import collections
> @@ -112,29 +112,26 @@ header = """/**
>
>
> /**
> - * Initialize a dispatch table with pointers to Mesa's immediate-mode
> - * commands.
> + * Initialize a context's exec table with pointers to Mesa's supported
> + * GL functions.
> *
> - * Pointers to glBegin()/glEnd() object commands and a few others
> - * are provided via the GLvertexformat interface.
> + * This function depends on ctx->Version.
> *
> * \param ctx GL context to which \c exec belongs.
> - * \param exec dispatch table.
> */
> -struct _glapi_table *
> -_mesa_create_exec_table(struct gl_context *ctx)
> +void
> +_mesa_initialize_exec_table(struct gl_context *ctx)
> {
> struct _glapi_table *exec;
>
> - exec = _mesa_alloc_dispatch_table(_gloffset_COUNT);
> - if (exec == NULL)
> - return NULL;
> + exec = ctx->Exec;
> + assert(exec != NULL);
>
> + assert(ctx->Version > 0);
I need to move this assert to be added after patch 12.
-Jordan
> """
>
>
> footer = """
> - return exec;
> }
> """
>
> diff --git a/src/mesa/main/api_exec.h b/src/mesa/main/api_exec.h
> index 7d37ff7..8292c12 100644
> --- a/src/mesa/main/api_exec.h
> +++ b/src/mesa/main/api_exec.h
> @@ -33,8 +33,8 @@ struct gl_context;
> extern struct _glapi_table *
> _mesa_alloc_dispatch_table(int size);
>
> -extern struct _glapi_table *
> -_mesa_create_exec_table(struct gl_context *ctx);
> +extern void
> +_mesa_initialize_exec_table(struct gl_context *ctx);
>
>
> #endif
> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
> index 0508378..f15b8bc 100644
> --- a/src/mesa/main/context.c
> +++ b/src/mesa/main/context.c
> @@ -935,8 +935,11 @@ _mesa_initialize_context(struct gl_context *ctx,
> return GL_FALSE;
> }
>
> - /* setup the API dispatch tables */
> - ctx->Exec = _mesa_create_exec_table(ctx);
> + /* setup the API dispatch tables with all nop functions */
> + ctx->Exec = _mesa_alloc_dispatch_table(_gloffset_COUNT);
> +
> + /* setup the API exec functions */
> + _mesa_initialize_exec_table(ctx);
>
> if (!ctx->Exec) {
> _mesa_reference_shared_state(ctx, &ctx->Shared, NULL);
> --
> 1.7.10.4
>
> _______________________________________________
> 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