[Mesa-dev] [PATCH 10/13] meta: Refactor configuration of renderbuffer sampling

Ian Romanick idr at freedesktop.org
Mon May 12 10:14:23 PDT 2014


Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 05/09/2014 01:28 AM, Topi Pohjolainen wrote:
> Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
>  src/mesa/drivers/common/meta.h      |  5 +++++
>  src/mesa/drivers/common/meta_blit.c | 38 ++++++++++++++++++++++++-------------
>  2 files changed, 30 insertions(+), 13 deletions(-)
> 
> diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h
> index 70b87a1..cc76214 100644
> --- a/src/mesa/drivers/common/meta.h
> +++ b/src/mesa/drivers/common/meta.h
> @@ -402,6 +402,11 @@ _mesa_meta_bind_rb_as_tex_image(struct gl_context *ctx,
>                                  struct gl_texture_object **texObj,
>                                  GLenum *target);
>  
> +GLuint
> +_mesa_meta_setup_sampler(struct gl_context *ctx,
> +                         const struct gl_texture_object *texObj,
> +                         GLenum target, GLenum filter, GLuint srcLevel);
> +
>  extern void
>  _mesa_meta_BlitFramebuffer(struct gl_context *ctx,
>                             GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
> diff --git a/src/mesa/drivers/common/meta_blit.c b/src/mesa/drivers/common/meta_blit.c
> index 9c8231b..ae21671 100644
> --- a/src/mesa/drivers/common/meta_blit.c
> +++ b/src/mesa/drivers/common/meta_blit.c
> @@ -454,25 +454,13 @@ blitframebuffer_texture(struct gl_context *ctx,
>                                         2);
>     }
>  
> -   _mesa_GenSamplers(1, &sampler);
> -   _mesa_BindSampler(ctx->Texture.CurrentUnit, sampler);
> -
>     /*
>       printf("Blit from texture!\n");
>       printf("  srcAtt %p  dstAtt %p\n", readAtt, drawAtt);
>       printf("  srcTex %p  dstText %p\n", texObj, drawAtt->Texture);
>     */
>  
> -   /* Prepare src texture state */
> -   _mesa_BindTexture(target, texObj->Name);
> -   _mesa_SamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, filter);
> -   _mesa_SamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, filter);
> -   if (target != GL_TEXTURE_RECTANGLE_ARB) {
> -      _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, srcLevel);
> -      _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, srcLevel);
> -   }
> -   _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
> -   _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
> +   sampler = _mesa_meta_setup_sampler(ctx, texObj, target, filter, srcLevel);
>  
>     /* Always do our blits with no net sRGB decode or encode.
>      *
> @@ -613,6 +601,30 @@ _mesa_meta_bind_rb_as_tex_image(struct gl_context *ctx,
>     return true;
>  }
>  
> +GLuint
> +_mesa_meta_setup_sampler(struct gl_context *ctx,
> +                         const struct gl_texture_object *texObj,
> +                         GLenum target, GLenum filter, GLuint srcLevel)
> +{
> +   GLuint sampler;
> +
> +   _mesa_GenSamplers(1, &sampler);
> +   _mesa_BindSampler(ctx->Texture.CurrentUnit, sampler);
> +
> +   /* Prepare src texture state */
> +   _mesa_BindTexture(target, texObj->Name);
> +   _mesa_SamplerParameteri(sampler, GL_TEXTURE_MIN_FILTER, filter);
> +   _mesa_SamplerParameteri(sampler, GL_TEXTURE_MAG_FILTER, filter);
> +   if (target != GL_TEXTURE_RECTANGLE_ARB) {
> +      _mesa_TexParameteri(target, GL_TEXTURE_BASE_LEVEL, srcLevel);
> +      _mesa_TexParameteri(target, GL_TEXTURE_MAX_LEVEL, srcLevel);
> +   }
> +   _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
> +   _mesa_SamplerParameteri(sampler, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
> +
> +   return sampler;
> +}
> +
>  /**
>   * Meta implementation of ctx->Driver.BlitFramebuffer() in terms
>   * of texture mapping and polygon rendering.
> 



More information about the mesa-dev mailing list