[Mesa-dev] [PATCH 1/5] mesa: Add infrastructure for GL_ARB_texture_mirror_clamp_to_edge.

Ian Romanick idr at freedesktop.org
Fri Oct 18 17:31:41 CEST 2013


With the one comment below fixed (and Marek's comment on patch 2 fixed),
the series is:

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

You are, however, missing the most important patch!  You need the patch
that updates docs/GL3.txt and docs/relnotes/10.0.html. :)

On 10/18/2013 02:20 AM, Rico Schüller wrote:
> ---
>  src/mesa/main/extensions.c |  1 +
>  src/mesa/main/mtypes.h     |  1 +
>  src/mesa/main/samplerobj.c |  2 +-
>  src/mesa/main/texparam.c   | 12 +++++++++---
>  4 Dateien geändert, 12 Zeilen hinzugefügt(+), 4 Zeilen entfernt(-)
> 
> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
> index 2507fdf..bf8d7a3 100644
> --- a/src/mesa/main/extensions.c
> +++ b/src/mesa/main/extensions.c
> @@ -144,6 +144,7 @@ static const struct extension extension_table[] = {
>     { "GL_ARB_texture_float",                       o(ARB_texture_float),                       GL,             2004 },
>     { "GL_ARB_texture_gather",                      o(ARB_texture_gather),                      GL,             2009 },
>     { "GL_ARB_texture_mirrored_repeat",             o(dummy_true),                              GLL,            2001 },
> +   { "GL_ARB_texture_mirror_clamp_to_edge",        o(ARB_texture_mirror_clamp_to_edge),        GL,             2013 },
>     { "GL_ARB_texture_multisample",                 o(ARB_texture_multisample),                 GL,             2009 },
>     { "GL_ARB_texture_non_power_of_two",            o(ARB_texture_non_power_of_two),            GL,             2003 },
>     { "GL_ARB_texture_query_levels",                o(ARB_texture_query_levels),                GL,             2012 },
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 15893ec..6374e8c 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3218,6 +3218,7 @@ struct gl_extensions
>     GLboolean ARB_texture_env_dot3;
>     GLboolean ARB_texture_float;
>     GLboolean ARB_texture_gather;
> +   GLboolean ARB_texture_mirror_clamp_to_edge;
>     GLboolean ARB_texture_multisample;
>     GLboolean ARB_texture_non_power_of_two;
>     GLboolean ARB_texture_query_levels;
> diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
> index c3b612c..7285ef5 100644
> --- a/src/mesa/main/samplerobj.c
> +++ b/src/mesa/main/samplerobj.c
> @@ -305,7 +305,7 @@ validate_texture_wrap_mode(struct gl_context *ctx, GLenum wrap)
>     case GL_MIRROR_CLAMP_EXT:
>        return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp;
>     case GL_MIRROR_CLAMP_TO_EDGE_EXT:
> -      return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp;
> +      return e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp || e->ARB_texture_mirror_clamp_to_edge;
>     case GL_MIRROR_CLAMP_TO_BORDER_EXT:
>        return e->EXT_texture_mirror_clamp;
>     default:
> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
> index 31723c3..50bc930 100644
> --- a/src/mesa/main/texparam.c
> +++ b/src/mesa/main/texparam.c
> @@ -84,16 +84,22 @@ validate_texture_wrap_mode(struct gl_context * ctx, GLenum target, GLenum wrap)
>        break;
>  
>     case GL_MIRROR_CLAMP_EXT:
> -   case GL_MIRROR_CLAMP_TO_EDGE_EXT:
>        supported = is_desktop_gl 
>           && (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp)
> -	 && (target != GL_TEXTURE_RECTANGLE_NV)
> +         && (target != GL_TEXTURE_RECTANGLE_NV)
> +         && (target != GL_TEXTURE_EXTERNAL_OES);
> +      break;
> +
> +   case GL_MIRROR_CLAMP_TO_EDGE_EXT:
> +      supported = is_desktop_gl 
> +         && (e->ATI_texture_mirror_once || e->EXT_texture_mirror_clamp || e->ARB_texture_mirror_clamp_to_edge)
> +         && (target != GL_TEXTURE_RECTANGLE_NV)
>           && (target != GL_TEXTURE_EXTERNAL_OES);
>        break;
>  
>     case GL_MIRROR_CLAMP_TO_BORDER_EXT:
>        supported = is_desktop_gl && e->EXT_texture_mirror_clamp
> -	 && (target != GL_TEXTURE_RECTANGLE_NV)
> +         && (target != GL_TEXTURE_RECTANGLE_NV)
>           && (target != GL_TEXTURE_EXTERNAL_OES);

This change shouldn't be here.  It doesn't have anything to do with
ARB_texture_mirror_clamp_to_edge, and I don't /think/ it's necessary
anyway.  is_desktop_gl is already part of the condition, and
GL_TEXTURE_EXTERNAL_OES is only available in ES.

>        break;
>  
> 



More information about the mesa-dev mailing list