[Mesa-dev] [PATCH] mesa: remove 'params' parameter from ctx->Driver.TexParameter()

Marek Olšák maraeo at gmail.com
Wed Oct 12 16:07:55 UTC 2016


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Wed, Oct 12, 2016 at 4:08 AM, Brian Paul <brianp at vmware.com> wrote:
> None of the drivers which implement this hook do anything with the
> texture parameter value.  Drivers just look at the pname and set a
> dirty flag if needed.
>
> We were doing some ugly casting and type conversion to setup the
> argument so that all goes away.
> ---
>  src/mesa/drivers/dri/nouveau/nouveau_state.c |  3 +--
>  src/mesa/drivers/dri/r200/r200_tex.c         |  6 +++---
>  src/mesa/drivers/dri/radeon/radeon_tex.c     |  2 +-
>  src/mesa/main/dd.h                           |  5 ++---
>  src/mesa/main/teximage.c                     |  6 ++----
>  src/mesa/main/texobj.c                       | 15 ++++++---------
>  src/mesa/main/texparam.c                     | 17 ++++-------------
>  src/mesa/state_tracker/st_cb_texture.c       |  3 +--
>  8 files changed, 20 insertions(+), 37 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/nouveau/nouveau_state.c b/src/mesa/drivers/dri/nouveau/nouveau_state.c
> index 6189997..de36fa4 100644
> --- a/src/mesa/drivers/dri/nouveau/nouveau_state.c
> +++ b/src/mesa/drivers/dri/nouveau/nouveau_state.c
> @@ -395,8 +395,7 @@ nouveau_tex_env(struct gl_context *ctx, GLenum target, GLenum pname,
>
>  static void
>  nouveau_tex_parameter(struct gl_context *ctx,
> -                     struct gl_texture_object *t, GLenum pname,
> -                     const GLfloat *params)
> +                     struct gl_texture_object *t, GLenum pname)
>  {
>         switch (pname) {
>         case GL_TEXTURE_MAG_FILTER:
> diff --git a/src/mesa/drivers/dri/r200/r200_tex.c b/src/mesa/drivers/dri/r200/r200_tex.c
> index ca92110..2a95f2d 100644
> --- a/src/mesa/drivers/dri/r200/r200_tex.c
> +++ b/src/mesa/drivers/dri/r200/r200_tex.c
> @@ -374,9 +374,9 @@ void r200TexUpdateParameters(struct gl_context *ctx, GLuint unit)
>   * Changes variables and flags for a state update, which will happen at the
>   * next UpdateTextureState
>   */
> -static void r200TexParameter( struct gl_context *ctx,
> -                               struct gl_texture_object *texObj,
> -                               GLenum pname, const GLfloat *params )
> +static void r200TexParameter(struct gl_context *ctx,
> +                             struct gl_texture_object *texObj,
> +                             GLenum pname)
>  {
>     radeonTexObj* t = radeon_tex_obj(texObj);
>
> diff --git a/src/mesa/drivers/dri/radeon/radeon_tex.c b/src/mesa/drivers/dri/radeon/radeon_tex.c
> index d1aa1a1..083a5e1 100644
> --- a/src/mesa/drivers/dri/radeon/radeon_tex.c
> +++ b/src/mesa/drivers/dri/radeon/radeon_tex.c
> @@ -329,7 +329,7 @@ void radeonTexUpdateParameters(struct gl_context *ctx, GLuint unit)
>
>  static void radeonTexParameter( struct gl_context *ctx,
>                                 struct gl_texture_object *texObj,
> -                               GLenum pname, const GLfloat *params )
> +                               GLenum pname )
>  {
>     radeonTexObj* t = radeon_tex_obj(texObj);
>
> diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h
> index 7f53271..1d75b9f 100644
> --- a/src/mesa/main/dd.h
> +++ b/src/mesa/main/dd.h
> @@ -610,10 +610,9 @@ struct dd_function_table {
>     /** Set texture environment parameters */
>     void (*TexEnv)(struct gl_context *ctx, GLenum target, GLenum pname,
>                    const GLfloat *param);
> -   /** Set texture parameters */
> +   /** Set texture parameter (callee gets param value from the texObj) */
>     void (*TexParameter)(struct gl_context *ctx,
> -                        struct gl_texture_object *texObj,
> -                        GLenum pname, const GLfloat *params);
> +                        struct gl_texture_object *texObj, GLenum pname);
>     /** Set the viewport */
>     void (*Viewport)(struct gl_context *ctx);
>     /*@}*/
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index 411ec49..bc3b76a 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -5082,12 +5082,10 @@ texture_buffer_range(struct gl_context *ctx,
>
>     if (ctx->Driver.TexParameter) {
>        if (offset != oldOffset) {
> -         ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_OFFSET,
> -                                  (const GLfloat *) &offset);
> +         ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_OFFSET);
>        }
>        if (size != oldSize) {
> -         ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_SIZE,
> -                                  (const GLfloat *) &size);
> +         ctx->Driver.TexParameter(ctx, texObj, GL_TEXTURE_BUFFER_SIZE);
>        }
>     }
>
> diff --git a/src/mesa/main/texobj.c b/src/mesa/main/texobj.c
> index 9a051bc..fbd498d 100644
> --- a/src/mesa/main/texobj.c
> +++ b/src/mesa/main/texobj.c
> @@ -365,15 +365,12 @@ finish_texture_init(struct gl_context *ctx, GLenum target,
>           obj->Sampler.MinFilter = filter;
>           obj->Sampler.MagFilter = filter;
>           if (ctx->Driver.TexParameter) {
> -            static const GLfloat fparam_wrap[1] = {(GLfloat) GL_CLAMP_TO_EDGE};
> -            const GLfloat fparam_filter[1] = {(GLfloat) filter};
> -            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_S, fparam_wrap);
> -            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_T, fparam_wrap);
> -            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_R, fparam_wrap);
> -            ctx->Driver.TexParameter(ctx, obj,
> -                  GL_TEXTURE_MIN_FILTER, fparam_filter);
> -            ctx->Driver.TexParameter(ctx, obj,
> -                  GL_TEXTURE_MAG_FILTER, fparam_filter);
> +            /* XXX we probably don't need to make all these calls */
> +            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_S);
> +            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_T);
> +            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_WRAP_R);
> +            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_MIN_FILTER);
> +            ctx->Driver.TexParameter(ctx, obj, GL_TEXTURE_MAG_FILTER);
>           }
>           break;
>
> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
> index a814778..29eed07 100644
> --- a/src/mesa/main/texparam.c
> +++ b/src/mesa/main/texparam.c
> @@ -807,7 +807,7 @@ _mesa_texture_parameterf(struct gl_context *ctx,
>     }
>
>     if (ctx->Driver.TexParameter && need_update) {
> -      ctx->Driver.TexParameter(ctx, texObj, pname, &param);
> +      ctx->Driver.TexParameter(ctx, texObj, pname);
>     }
>  }
>
> @@ -874,7 +874,7 @@ _mesa_texture_parameterfv(struct gl_context *ctx,
>     }
>
>     if (ctx->Driver.TexParameter && need_update) {
> -      ctx->Driver.TexParameter(ctx, texObj, pname, params);
> +      ctx->Driver.TexParameter(ctx, texObj, pname);
>     }
>  }
>
> @@ -919,8 +919,7 @@ _mesa_texture_parameteri(struct gl_context *ctx,
>     }
>
>     if (ctx->Driver.TexParameter && need_update) {
> -      GLfloat fparam = (GLfloat) param;
> -      ctx->Driver.TexParameter(ctx, texObj, pname, &fparam);
> +      ctx->Driver.TexParameter(ctx, texObj, pname);
>     }
>  }
>
> @@ -964,15 +963,7 @@ _mesa_texture_parameteriv(struct gl_context *ctx,
>     }
>
>     if (ctx->Driver.TexParameter && need_update) {
> -      GLfloat fparams[4];
> -      fparams[0] = INT_TO_FLOAT(params[0]);
> -      if (pname == GL_TEXTURE_BORDER_COLOR ||
> -          pname == GL_TEXTURE_CROP_RECT_OES) {
> -         fparams[1] = INT_TO_FLOAT(params[1]);
> -         fparams[2] = INT_TO_FLOAT(params[2]);
> -         fparams[3] = INT_TO_FLOAT(params[3]);
> -      }
> -      ctx->Driver.TexParameter(ctx, texObj, pname, fparams);
> +      ctx->Driver.TexParameter(ctx, texObj, pname);
>     }
>  }
>
> diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
> index b448e56..fa52a4e 100644
> --- a/src/mesa/state_tracker/st_cb_texture.c
> +++ b/src/mesa/state_tracker/st_cb_texture.c
> @@ -2860,8 +2860,7 @@ st_ClearTexSubImage(struct gl_context *ctx,
>   */
>  static void
>  st_TexParameter(struct gl_context *ctx,
> -                struct gl_texture_object *texObj,
> -                GLenum pname, const GLfloat *params)
> +                struct gl_texture_object *texObj, GLenum pname)
>  {
>     struct st_context *st = st_context(ctx);
>     struct st_texture_object *stObj = st_texture_object(texObj);
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list