[Mesa-dev] [PATCH] mesa: more TBO fixes for ARB_internalformat_query2
Alejandro Piñeiro
apinheiro at igalia.com
Tue Oct 24 09:44:09 UTC 2017
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.olsak at 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list