[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