[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