[Mesa-dev] [PATCH 19/21] mesa: GL_ARB_texture_storage is not optional

Brian Paul brianp at vmware.com
Fri Jun 28 06:27:41 PDT 2013


On 06/27/2013 07:20 PM, Ian Romanick wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
>
> In Mesa, this extension is implemented purely in software.  Drivers may
> *optionally* provide optimized paths.
>
> NOTE: This has the side effect of enabling the extension in the radeon,
> r200, and nouveau drivers.
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
>   docs/relnotes/9.2.html                       | 1 +
>   src/mesa/drivers/dri/i915/intel_extensions.c | 1 -
>   src/mesa/drivers/dri/i965/intel_extensions.c | 1 -
>   src/mesa/main/extensions.c                   | 3 +--
>   src/mesa/main/mtypes.h                       | 1 -
>   src/mesa/main/teximage.c                     | 9 +++------
>   src/mesa/main/texparam.c                     | 4 ----
>   src/mesa/state_tracker/st_extensions.c       | 1 -
>   8 files changed, 5 insertions(+), 16 deletions(-)
>
> diff --git a/docs/relnotes/9.2.html b/docs/relnotes/9.2.html
> index 2f2c394..1f49191 100644
> --- a/docs/relnotes/9.2.html
> +++ b/docs/relnotes/9.2.html
> @@ -48,6 +48,7 @@ Note: some of the new features are only available with certain drivers.
>   <li>GL_ARB_texture_multisample</li>
>   <li>GL_ARB_texture_storage_multisample</li>
>   <li>GL_ARB_texture_query_lod</li>
> +<li>Enable GL_ARB_texture_storage on radeon, r200, and nouveau</li>
>   <li>Added new freedreno gallium driver</li>
>   <li>OSMesa interface for gallium llvmpipe/softpipe drivers</li>
>   <li>Gallium Heads-Up Display (HUD) feature for performance monitoring</li>
> diff --git a/src/mesa/drivers/dri/i915/intel_extensions.c b/src/mesa/drivers/dri/i915/intel_extensions.c
> index 74b304a..479217b 100644
> --- a/src/mesa/drivers/dri/i915/intel_extensions.c
> +++ b/src/mesa/drivers/dri/i915/intel_extensions.c
> @@ -57,7 +57,6 @@ intelInitExtensions(struct gl_context *ctx)
>      ctx->Extensions.ARB_texture_env_combine = true;
>      ctx->Extensions.ARB_texture_env_crossbar = true;
>      ctx->Extensions.ARB_texture_env_dot3 = true;
> -   ctx->Extensions.ARB_texture_storage = true;
>      ctx->Extensions.ARB_vertex_program = true;
>      ctx->Extensions.ARB_vertex_shader = true;
>      ctx->Extensions.EXT_blend_color = true;
> diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c
> index 23b74a5..5064018 100644
> --- a/src/mesa/drivers/dri/i965/intel_extensions.c
> +++ b/src/mesa/drivers/dri/i965/intel_extensions.c
> @@ -79,7 +79,6 @@ intelInitExtensions(struct gl_context *ctx)
>      ctx->Extensions.ARB_texture_non_power_of_two = true;
>      ctx->Extensions.ARB_texture_rg = true;
>      ctx->Extensions.ARB_texture_rgb10_a2ui = true;
> -   ctx->Extensions.ARB_texture_storage = true;
>      ctx->Extensions.ARB_vertex_program = true;
>      ctx->Extensions.ARB_vertex_shader = true;
>      ctx->Extensions.ARB_vertex_type_2_10_10_10_rev = true;
> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
> index 73282e1..f914981 100644
> --- a/src/mesa/main/extensions.c
> +++ b/src/mesa/main/extensions.c
> @@ -149,7 +149,7 @@ static const struct extension extension_table[] = {
>      { "GL_ARB_texture_rectangle",                   o(NV_texture_rectangle),                    GL,             2004 },
>      { "GL_ARB_texture_rgb10_a2ui",                  o(ARB_texture_rgb10_a2ui),                  GL,             2009 },
>      { "GL_ARB_texture_rg",                          o(ARB_texture_rg),                          GL,             2008 },
> -   { "GL_ARB_texture_storage",                     o(ARB_texture_storage),                     GL,             2011 },
> +   { "GL_ARB_texture_storage",                     o(dummy_true),                              GL,             2011 },
>      { "GL_ARB_texture_storage_multisample",         o(ARB_texture_storage_multisample),         GL,             2012 },
>      { "GL_ARB_texture_swizzle",                     o(EXT_texture_swizzle),                     GL,             2008 },
>      { "GL_ARB_timer_query",                         o(ARB_timer_query),                         GL,             2010 },
> @@ -403,7 +403,6 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
>      ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE;
>      ctx->Extensions.ARB_texture_rg = GL_TRUE;
>      ctx->Extensions.ARB_texture_compression_rgtc = GL_TRUE;
> -   ctx->Extensions.ARB_texture_storage = GL_TRUE;
>      ctx->Extensions.ARB_vertex_program = GL_TRUE;
>      ctx->Extensions.ARB_vertex_shader = GL_TRUE;
>      ctx->Extensions.ARB_sync = GL_TRUE;
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 2879341..a19ecd6 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -3036,7 +3036,6 @@ struct gl_extensions
>      GLboolean ARB_texture_query_lod;
>      GLboolean ARB_texture_rg;
>      GLboolean ARB_texture_rgb10_a2ui;
> -   GLboolean ARB_texture_storage;
>      GLboolean ARB_texture_storage_multisample;
>      GLboolean ARB_timer_query;
>      GLboolean ARB_transform_feedback2;
> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
> index 5226687..be03a60 100644
> --- a/src/mesa/main/teximage.c
> +++ b/src/mesa/main/teximage.c
> @@ -1852,12 +1852,9 @@ legal_texsubimage_target(struct gl_context *ctx, GLuint dims, GLenum target)
>   static GLboolean
>   mutable_tex_object(struct gl_context *ctx, GLenum target)
>   {
> -   if (ctx->Extensions.ARB_texture_storage) {
> -      struct gl_texture_object *texObj =
> -         _mesa_get_current_tex_object(ctx, target);
> -      return !texObj->Immutable;
> -   }
> -   return GL_TRUE;
> +   struct gl_texture_object *texObj =
> +      _mesa_get_current_tex_object(ctx, target);

Looks like that assignment could fit on one line.


> +   return !texObj->Immutable;
>   }
>
>
> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
> index 9507bc3..8ed8fe0 100644
> --- a/src/mesa/main/texparam.c
> +++ b/src/mesa/main/texparam.c
> @@ -1541,8 +1541,6 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
>            break;
>
>         case GL_TEXTURE_IMMUTABLE_FORMAT:
> -         if (!ctx->Extensions.ARB_texture_storage)
> -            goto invalid_pname;
>            *params = (GLfloat) obj->Immutable;
>            break;
>
> @@ -1724,8 +1722,6 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
>            break;
>
>         case GL_TEXTURE_IMMUTABLE_FORMAT:
> -         if (!ctx->Extensions.ARB_texture_storage)
> -            goto invalid_pname;
>            *params = (GLint) obj->Immutable;
>            break;
>
> diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
> index cd24ed3..906eb07 100644
> --- a/src/mesa/state_tracker/st_extensions.c
> +++ b/src/mesa/state_tracker/st_extensions.c
> @@ -542,7 +542,6 @@ void st_init_extensions(struct st_context *st)
>      ctx->Extensions.ARB_texture_env_combine = GL_TRUE;
>      ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE;
>      ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE;
> -   ctx->Extensions.ARB_texture_storage = GL_TRUE;
>      ctx->Extensions.ARB_vertex_program = GL_TRUE;
>      ctx->Extensions.ARB_vertex_shader = GL_TRUE;
>
>



More information about the mesa-dev mailing list