On Mon, Oct 23, 2017 at 9:16 PM, Marek Olšák <mar...@gmail.com> wrote:
> From: Marek Olšák <marek.ol...@amd.com>
>
> ---
>  src/mesa/main/formatquery.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/src/mesa/main/formatquery.c b/src/mesa/main/formatquery.c
> index 05b7810..9c53d7c 100644
> --- a/src/mesa/main/formatquery.c
> +++ b/src/mesa/main/formatquery.c
> @@ -1094,43 +1094,54 @@ _mesa_GetInternalformativ(GLenum target, GLenum 
> internalformat, GLenum pname,
>     }
>
>     case GL_COLOR_COMPONENTS:
>        /* The ARB_internalformat_query2 spec says:
>         *
>         *     "- COLOR_COMPONENTS: If the internal format contains any color
>         *     components (R, G, B, or A), TRUE is returned in <params>.
>         *     If the internal format is unsupported or contains no color
>         *     components, FALSE is returned."
>         */
> +      if (target == GL_TEXTURE_BUFFER &&
> +          _mesa_validate_texbuffer_format(ctx, internalformat) ==
> +          MESA_FORMAT_NONE)
> +         break;

Because not all color formats are supported for TBO's, right?

Although _mesa_is_color_format returns true for unsupported formats as
well... although that's probably a separate bug.

Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu>

> +
>        if (_mesa_is_color_format(internalformat))
>           buffer[0] = GL_TRUE;
>        break;
>
>     case GL_DEPTH_COMPONENTS:
>        /* The ARB_internalformat_query2 spec says:
>         *
>         *     "- DEPTH_COMPONENTS: If the internal format contains a depth
>         *     component (D), TRUE is returned in <params>. If the internal 
> format
>         *     is unsupported or contains no depth component, FALSE is 
> returned."
>         */
> +      if (target == GL_TEXTURE_BUFFER)
> +         break;
> +
>        if (_mesa_is_depth_format(internalformat) ||
>            _mesa_is_depthstencil_format(internalformat))
>           buffer[0] = GL_TRUE;
>        break;
>
>     case GL_STENCIL_COMPONENTS:
>        /* The ARB_internalformat_query2 spec says:
>         *
>         *     "- STENCIL_COMPONENTS: If the internal format contains a stencil
>         *     component (S), TRUE is returned in <params>. If the internal 
> format
>         *     is unsupported or contains no stencil component, FALSE is 
> returned.
>         */
> +      if (target == GL_TEXTURE_BUFFER)
> +         break;
> +
>        if (_mesa_is_stencil_format(internalformat) ||
>            _mesa_is_depthstencil_format(internalformat))
>           buffer[0] = GL_TRUE;
>        break;
>
>     case GL_COLOR_RENDERABLE:
>     case GL_DEPTH_RENDERABLE:
>     case GL_STENCIL_RENDERABLE:
>        if (!_is_renderable(ctx, internalformat))
>           goto end;
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to