[Mesa-dev] [PATCH 1/4] mesa: expose dimension check for glTex*Storage functions

Brian Paul brianp at vmware.com
Mon Aug 10 09:50:52 PDT 2015


On 08/10/2015 02:06 AM, Tapani Pälli wrote:
> This is done so that following patch can use it to verify dimenstions
> for multisample variants of glTex*Storage.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
>   src/mesa/main/texstorage.c | 22 +++++++++++++++++++++-
>   src/mesa/main/texstorage.h |  3 +++
>   2 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c
> index 4a2cc60..9a321cc 100644
> --- a/src/mesa/main/texstorage.c
> +++ b/src/mesa/main/texstorage.c
> @@ -266,6 +266,26 @@ _mesa_AllocTextureStorage_sw(struct gl_context *ctx,
>      return GL_TRUE;
>   }
>
> +/**
> + * Texture width, height and depth check shared with the
> + * multisample variants of TexStorage functions.
> + *
> + * From OpenGL 4.5 Core spec, page 260 (section 8.19)
> + *
> + *     "An INVALID_VALUE error is generated if width, height, depth
> + *     or levels are less than 1, for commands with the corresponding
> + *     parameters."
> + *
> + * (referring to TextureStorage* commands, these also match values
> + * specified for OpenGL ES 3.1.)
> + */
> +GLboolean

s/GLboolean/bool/


> +_mesa_tex_storage_invalid_dim(GLsizei width, GLsizei height, GLsizei depth)
> +{
> +   if (width < 1 || height < 1 || depth < 1)
> +      return true;
> +   return false;
> +}
>
>   /**
>    * Do error checking for calls to glTexStorage1/2/3D().
> @@ -287,7 +307,7 @@ tex_storage_error_check(struct gl_context *ctx,
>       * order to allow meta functions to use legacy formats. */
>
>      /* size check */
> -   if (width < 1 || height < 1 || depth < 1) {
> +   if (_mesa_tex_storage_invalid_dim(width, height, depth)) {
>         _mesa_error(ctx, GL_INVALID_VALUE,
>                     "glTex%sStorage%uD(width, height or depth < 1)",
>                     suffix, dims);
> diff --git a/src/mesa/main/texstorage.h b/src/mesa/main/texstorage.h
> index 6f5495f..62108a8 100644
> --- a/src/mesa/main/texstorage.h
> +++ b/src/mesa/main/texstorage.h
> @@ -98,4 +98,7 @@ _mesa_AllocTextureStorage_sw(struct gl_context *ctx,
>                                GLsizei levels, GLsizei width,
>                                GLsizei height, GLsizei depth);
>
> +extern GLboolean
> +_mesa_tex_storage_invalid_dim(GLsizei width, GLsizei height, GLsizei depth);
> +
>   #endif /* TEXSTORAGE_H */
>



More information about the mesa-dev mailing list