[Mesa-dev] [PATCH 10/12] mesa: Delay display list save dispatch setup until Exec is set up.
Ian Romanick
idr at freedesktop.org
Fri Jan 18 17:16:56 PST 2013
On 01/18/2013 02:30 PM, Eric Anholt wrote:
> This will let us copy from the Exec dispatch to deal with our commands that
> don't get compiled into display lists.
> ---
> src/mesa/main/context.c | 5 ++++-
> src/mesa/main/dlist.c | 12 +++---------
> src/mesa/main/dlist.h | 2 +-
> 3 files changed, 8 insertions(+), 11 deletions(-)
>
> diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c
> index d583f98..6861893 100644
> --- a/src/mesa/main/context.c
> +++ b/src/mesa/main/context.c
> @@ -912,6 +912,9 @@ _mesa_initialize_dispatch_tables(struct gl_context *ctx)
> {
> /* Do the code-generated setup of the exec table in api_exec.c. */
> _mesa_initialize_exec_table(ctx);
> +
> + if (ctx->Save)
> + _mesa_initialize_save_table(ctx);
> }
>
> /**
> @@ -1018,7 +1021,7 @@ _mesa_initialize_context(struct gl_context *ctx,
> switch (ctx->API) {
> case API_OPENGL_COMPAT:
> ctx->BeginEnd = create_beginend_table(ctx);
> - ctx->Save = _mesa_create_save_table(ctx);
> + ctx->Save = _mesa_alloc_dispatch_table();
> if (!ctx->BeginEnd || !ctx->Save)
> goto fail;
>
> diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
> index 7eb2cb2..06c44b9 100644
> --- a/src/mesa/main/dlist.c
> +++ b/src/mesa/main/dlist.c
> @@ -9566,14 +9566,10 @@ exec_MultiModeDrawElementsIBM(const GLenum * mode,
> * initialized from _mesa_init_api_defaults and from the active vtxfmt
> * struct.
> */
> -struct _glapi_table *
> -_mesa_create_save_table(const struct gl_context *ctx)
> +void
> +_mesa_initialize_save_table(const struct gl_context *ctx)
> {
> - struct _glapi_table *table;
> -
> - table = _mesa_alloc_dispatch_table();
> - if (table == NULL)
> - return NULL;
> + struct _glapi_table *table = ctx->Save;
The compiler doesn't emit an error or a warning here for dropping const?
>
> _mesa_loopback_init_api_table(ctx, table);
>
> @@ -10233,8 +10229,6 @@ _mesa_create_save_table(const struct gl_context *ctx)
>
> /* GL_NV_primitive_restart */
> SET_PrimitiveRestartIndex(table, _mesa_PrimitiveRestartIndex);
> -
> - return table;
> }
>
>
> diff --git a/src/mesa/main/dlist.h b/src/mesa/main/dlist.h
> index 9d4fc68..e049476 100644
> --- a/src/mesa/main/dlist.h
> +++ b/src/mesa/main/dlist.h
> @@ -74,7 +74,7 @@ extern void _mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dl
>
> extern void _mesa_save_vtxfmt_init( GLvertexformat *vfmt );
>
> -extern struct _glapi_table *_mesa_create_save_table(const struct gl_context *);
> +extern void _mesa_initialize_save_table(const struct gl_context *);
>
> extern void _mesa_install_dlist_vtxfmt(struct _glapi_table *disp,
> const GLvertexformat *vfmt);
>
More information about the mesa-dev
mailing list