[Mesa-dev] [PATCH] mesa: add missing SNORM formats in _mesa_base_fbo_format()

Jose Fonseca jfonseca at vmware.com
Thu Jan 9 08:58:51 PST 2014



----- Original Message -----
> We weren't handling the LUMINANCE_SNORM, LUMINANCE_ALPHA_SNORM and
> INTENSITY_SNORM cases.  Note that adding these cases here does not
> require a driver to support rendering to these surface types.  If
> the driver can't do it we'll report an incomplete framebuffer.
> 
> NVIDIA doesn't support GL_EXT_texture_snorm but their driver
> accepts these formats in glRenderBufferStorage().
> ---
>  src/mesa/main/fbobject.c |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
> index 2892784..d846808 100644
> --- a/src/mesa/main/fbobject.c
> +++ b/src/mesa/main/fbobject.c
> @@ -1504,6 +1504,22 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum
> internalFormat)
>        return ctx->API == API_OPENGL_COMPAT &&
>               ctx->Extensions.EXT_texture_snorm &&
>               ctx->Extensions.ARB_framebuffer_object ? GL_ALPHA : 0;
> +   case GL_LUMINANCE_SNORM:
> +   case GL_LUMINANCE8_SNORM:
> +   case GL_LUMINANCE16_SNORM:
> +      return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_snorm
> +         ? GL_LUMINANCE : 0;
> +   case GL_LUMINANCE_ALPHA_SNORM:
> +   case GL_LUMINANCE8_ALPHA8_SNORM:
> +   case GL_LUMINANCE16_ALPHA16_SNORM:
> +      return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_snorm
> +         ? GL_LUMINANCE_ALPHA : 0;
> +   case GL_INTENSITY_SNORM:
> +   case GL_INTENSITY8_SNORM:
> +   case GL_INTENSITY16_SNORM:
> +      return _mesa_is_desktop_gl(ctx) && ctx->Extensions.EXT_texture_snorm
> +         ? GL_INTENSITY : 0;
> +
>     case GL_R16F:
>     case GL_R32F:
>        return ((_mesa_is_desktop_gl(ctx) &&
> --
> 1.7.10.4
> 


Reviewed-by: Jose Fonseca <jfonseca at vmware.com>


More information about the mesa-dev mailing list