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