[Mesa-dev] [PATCH 2/4] mesa: Add helper function to see if we have a float depth format.

Roland Scheidegger sroland at vmware.com
Mon Sep 15 07:41:07 PDT 2014


Am 14.09.2014 16:07, schrieb Mathias.Froehlich at gmx.net:
> From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>
> 
> Will be used in the implementation of NV_depth_buffer_float.
> 
> Signed-off-by: Mathias Froehlich <Mathias.Froehlich at web.de
> ---
>  src/mesa/main/glformats.c | 18 ++++++++++++++++++
>  src/mesa/main/glformats.h |  3 +++
>  2 files changed, 21 insertions(+)
> 
> diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
> index 00478f9..16f7d6b 100644
> --- a/src/mesa/main/glformats.c
> +++ b/src/mesa/main/glformats.c
> @@ -983,6 +983,24 @@ _mesa_is_depth_or_stencil_format(GLenum format)
>  
>  
>  /**
> + * Test if the given image format is a float depth format.
> + */
> +GLboolean
> +_mesa_is_float_depth_format(GLenum format)
> +{
> +   switch (format) {
> +      case GL_DEPTH_COMPONENT32F:
> +      case GL_DEPTH_COMPONENT32F_NV:
> +      case GL_DEPTH32F_STENCIL8:
> +      case GL_DEPTH32F_STENCIL8_NV:
> +         return GL_TRUE;
> +      default:
> +         return GL_FALSE;
> +   }
> +}
> +
> +
> +/**
>   * Test if an image format is a supported compressed format.
>   * \param format the internal format token provided by the user.
>   * \return GL_TRUE if compressed, GL_FALSE if uncompressed
> diff --git a/src/mesa/main/glformats.h b/src/mesa/main/glformats.h
> index 7b03215..a960786 100644
> --- a/src/mesa/main/glformats.h
> +++ b/src/mesa/main/glformats.h
> @@ -93,6 +93,9 @@ extern GLboolean
>  _mesa_is_depth_or_stencil_format(GLenum format);
>  
>  extern GLboolean
> +_mesa_is_float_depth_format(GLenum format);
> +
> +extern GLboolean
>  _mesa_is_compressed_format(struct gl_context *ctx, GLenum format);
>  
>  extern GLenum
> 

I'm amazed that the format enums are different. ARB_depth_buffer_float
claims that's due to incompatible clamping behavior as per the revision
history, but since the clamping behavior seems to be entirely controlled
by the function entry points I don't see why that makes any sense.
In any case the patches make sense to me but someone else should look at
them.

Roland




More information about the mesa-dev mailing list