Also: "mesa: fix GL_{COLOR,DEPTH,STENCIL}_COMPONENTS queries for TBOs"
Marek On Tue, Oct 24, 2017 at 11:44 AM, Alejandro Piñeiro <apinhe...@igalia.com> wrote: > On 24/10/17 11:41, Alejandro Piñeiro wrote: >> Well, I have just realized one thing: "more TBO fixes"? did I miss the >> first TBO fixes? > > Never mind, I found it on the ARB_compatibility thread. Sorry for the noise. > >> >> On 24/10/17 11:02, Marek Olšák wrote: >>> From: Marek Olšák <marek.ol...@amd.com> >>> >>> --- >>> src/mesa/main/formatquery.c | 8 ++++++++ >>> 1 file changed, 8 insertions(+) >>> >>> diff --git a/src/mesa/main/formatquery.c b/src/mesa/main/formatquery.c >>> index 9c53d7c..619904f 100644 >>> --- a/src/mesa/main/formatquery.c >>> +++ b/src/mesa/main/formatquery.c >>> @@ -919,20 +919,25 @@ _mesa_GetInternalformativ(GLenum target, GLenum >>> internalformat, GLenum pname, >>> * >>> * "- INTERNALFORMAT_PREFERRED: The implementation-preferred >>> internal >>> * format for representing resources of the specified >>> <internalformat> is >>> * returned in <params>. >>> * >>> * Therefore, we let the driver answer. Note that if we reach this >>> * point, it means that the internalformat is supported, so the >>> driver >>> * is called just to try to get a preferred format. If not supported, >>> * GL_NONE was already returned and the driver is not called. >>> */ >>> + if (target == GL_TEXTURE_BUFFER && >>> + _mesa_validate_texbuffer_format(ctx, internalformat) == >>> + MESA_FORMAT_NONE) >>> + goto end; >>> + >>> ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname, >>> buffer); >>> break; >>> >>> case GL_INTERNALFORMAT_RED_SIZE: >>> case GL_INTERNALFORMAT_GREEN_SIZE: >>> case GL_INTERNALFORMAT_BLUE_SIZE: >>> case GL_INTERNALFORMAT_ALPHA_SIZE: >>> case GL_INTERNALFORMAT_DEPTH_SIZE: >>> case GL_INTERNALFORMAT_STENCIL_SIZE: >>> @@ -1139,20 +1144,23 @@ _mesa_GetInternalformativ(GLenum target, GLenum >>> internalformat, GLenum pname, >>> _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; >>> >>> + if (target == GL_TEXTURE_BUFFER) >>> + goto end; >>> + >>> if (pname == GL_COLOR_RENDERABLE) { >>> if (!_mesa_is_color_format(internalformat)) >>> goto end; >>> } else { >>> GLenum baseFormat = _mesa_base_fbo_format(ctx, internalformat); >>> if (baseFormat != GL_DEPTH_STENCIL && >>> ((pname == GL_DEPTH_RENDERABLE && baseFormat != >>> GL_DEPTH_COMPONENT) || >>> (pname == GL_STENCIL_RENDERABLE && baseFormat != >>> GL_STENCIL_INDEX))) >>> goto end; >>> } >> _______________________________________________ >> 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