[Mesa-dev] [PATCH 01/13] mesa: make _mesa_reference_sampler_object() an inline function

Jose Fonseca jfonseca at vmware.com
Mon Mar 19 04:33:58 PDT 2012


The series looks good AFAICT.

Joe

----- Original Message -----
> To make the no-change case faster, as we do for the other
> object-reference
> functions.
> ---
>  src/mesa/main/samplerobj.c |    9 ++++-----
>  src/mesa/main/samplerobj.h |   12 +++++++++++-
>  2 files changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
> index 7cf0654..5d1b2ad 100644
> --- a/src/mesa/main/samplerobj.c
> +++ b/src/mesa/main/samplerobj.c
> @@ -55,12 +55,11 @@ _mesa_lookup_samplerobj(struct gl_context *ctx,
> GLuint name)
>   * Handle reference counting.
>   */
>  void
> -_mesa_reference_sampler_object(struct gl_context *ctx,
> -                               struct gl_sampler_object **ptr,
> -                               struct gl_sampler_object *samp)
> +_mesa_reference_sampler_object_(struct gl_context *ctx,
> +                                struct gl_sampler_object **ptr,
> +                                struct gl_sampler_object *samp)
>  {
> -   if (*ptr == samp)
> -      return;
> +   assert(*ptr != samp); /* The inline wrapper should prevent no-op
> calls */
>  
>     if (*ptr) {
>        /* Unreference the old sampler */
> diff --git a/src/mesa/main/samplerobj.h b/src/mesa/main/samplerobj.h
> index fe7d5a7..c22d025 100644
> --- a/src/mesa/main/samplerobj.h
> +++ b/src/mesa/main/samplerobj.h
> @@ -38,9 +38,19 @@ _mesa_get_samplerobj(struct gl_context *ctx,
> GLuint unit)
>  }
>  
>  extern void
> +_mesa_reference_sampler_object_(struct gl_context *ctx,
> +                                struct gl_sampler_object **ptr,
> +                                struct gl_sampler_object *samp);
> +
> +static inline void
>  _mesa_reference_sampler_object(struct gl_context *ctx,
>                                 struct gl_sampler_object **ptr,
> -                               struct gl_sampler_object *samp);
> +                               struct gl_sampler_object *samp)
> +{
> +   if (*ptr != samp)
> +      _mesa_reference_sampler_object_(ctx, ptr, samp);
> +}
> +
>  
>  extern void
>  _mesa_init_sampler_object(struct gl_sampler_object *sampObj, GLuint
>  name);
> --
> 1.7.3.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