[Mesa-dev] [PATCH 20/21] mesa: GL_ARB_texture_storage_multisample is not optional with GL_ARB_texture_multisample
Kenneth Graunke
kenneth at whitecape.org
Thu Jun 27 21:54:30 PDT 2013
On 06/27/2013 06: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. If a driver enables,
> GL_ARB_texture_multisample, it gets GL_ARB_texture_storage_multisample
> for free.
>
> NOTE: This has the side effect of enabling the extension in Gallium
> drivers that enable GL_ARB_texture_multisample.
>
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
> src/mesa/drivers/dri/i965/intel_extensions.c | 1 -
> src/mesa/main/extensions.c | 2 +-
> src/mesa/main/mtypes.h | 1 -
> src/mesa/main/texparam.c | 10 ++--------
> 4 files changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_extensions.c b/src/mesa/drivers/dri/i965/intel_extensions.c
> index 5064018..980fd72 100644
> --- a/src/mesa/drivers/dri/i965/intel_extensions.c
> +++ b/src/mesa/drivers/dri/i965/intel_extensions.c
> @@ -146,7 +146,6 @@ intelInitExtensions(struct gl_context *ctx)
> ctx->Extensions.OES_depth_texture_cube_map = true;
> ctx->Extensions.ARB_shading_language_packing = true;
> ctx->Extensions.ARB_texture_multisample = true;
> - ctx->Extensions.ARB_texture_storage_multisample = true;
>
> /* Test if the kernel has the ioctl. */
> if (drm_intel_reg_read(intel->bufmgr, TIMESTAMP, &dummy) == 0)
> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
> index f914981..3fbdf3f 100644
> --- a/src/mesa/main/extensions.c
> +++ b/src/mesa/main/extensions.c
> @@ -150,7 +150,7 @@ static const struct extension extension_table[] = {
> { "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(dummy_true), GL, 2011 },
> - { "GL_ARB_texture_storage_multisample", o(ARB_texture_storage_multisample), GL, 2012 },
> + { "GL_ARB_texture_storage_multisample", o(ARB_texture_multisample), GL, 2012 },
> { "GL_ARB_texture_swizzle", o(EXT_texture_swizzle), GL, 2008 },
> { "GL_ARB_timer_query", o(ARB_timer_query), GL, 2010 },
> { "GL_ARB_transform_feedback2", o(ARB_transform_feedback2), GL, 2010 },
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index a19ecd6..d405ac8 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_multisample;
> GLboolean ARB_timer_query;
> GLboolean ARB_transform_feedback2;
> GLboolean ARB_transform_feedback3;
> diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
> index 8ed8fe0..1b76fba 100644
> --- a/src/mesa/main/texparam.c
> +++ b/src/mesa/main/texparam.c
> @@ -176,15 +176,9 @@ get_texobj(struct gl_context *ctx, GLenum target, GLboolean get)
> }
> break;
> case GL_TEXTURE_2D_MULTISAMPLE:
> - if (ctx->Extensions.ARB_texture_storage_multisample) {
> - return texUnit->CurrentTex[TEXTURE_2D_MULTISAMPLE_INDEX];
> - }
> - break;
> + return texUnit->CurrentTex[TEXTURE_2D_MULTISAMPLE_INDEX];
> case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
> - if (ctx->Extensions.ARB_texture_storage_multisample) {
> - return texUnit->CurrentTex[TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX];
> - }
> - break;
> + return texUnit->CurrentTex[TEXTURE_2D_MULTISAMPLE_ARRAY_INDEX];
> default:
> ;
> }
>
This looks like it'll make TexParameter accept GL_TEXTURE_2D_MULTISAMPLE
and GL_TEXTURE_2D_MULTISAMPLE_ARRAY even on drivers that don't support
multisampling at all, which seems wrong.
I believe you simply want to change these to:
if (ctx->Extensions.ARB_texture_multisample)
More information about the mesa-dev
mailing list