[Mesa-dev] [PATCH] meta: Allocate texture before initializing texture coordinates

Patrick Baggett baggett.patrick at gmail.com
Fri Feb 22 12:28:17 PST 2013


On Fri, Feb 22, 2013 at 2:23 PM, Ian Romanick <idr at freedesktop.org> wrote:

> On 02/15/2013 11:20 AM, Anuj Phogat wrote:
>
>> tex->Sright and tex->Ttop are initialized during texture allocation.
>> This fixes depth buffer blitting failures in khronos conformance tests
>> when run on desktop GL 3.0.
>>
>> Note: This is a candidate for stable branches.
>>
>> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
>>
>
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>
> I think there is a lot of room for other improvements in this code.
> Like... why are we doing glReadPixels into malloc memory, then handing that
> same pointer to glTexImage2D.  We should (at least for desktop and GLES3)
> use a PBO.

 ---
>>   src/mesa/drivers/common/meta.c |   17 ++++++++---------
>>   1 files changed, 8 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/mesa/drivers/common/**meta.c b/src/mesa/drivers/common/*
>> *meta.c
>> index 4e32b50..29a209e 100644
>> --- a/src/mesa/drivers/common/**meta.c
>> +++ b/src/mesa/drivers/common/**meta.c
>> @@ -1910,6 +1910,14 @@ _mesa_meta_BlitFramebuffer(**struct gl_context
>> *ctx,
>>         GLuint *tmp = malloc(srcW * srcH * sizeof(GLuint));
>>
>>         if (tmp) {
>> +
>> +         newTex = alloc_texture(depthTex, srcW, srcH,
>> GL_DEPTH_COMPONENT);
>>
>
Are out of memory conditions handled in alloc_texture?


> +         _mesa_ReadPixels(srcX, srcY, srcW, srcH, GL_DEPTH_COMPONENT,
>> +                          GL_UNSIGNED_INT, tmp);
>> +         setup_drawpix_texture(ctx, depthTex, newTex, GL_DEPTH_COMPONENT,
>> +                               srcW, srcH, GL_DEPTH_COMPONENT,
>> +                               GL_UNSIGNED_INT, tmp);
>> +
>>            /* texcoords (after texture allocation!) */
>>            {
>>               verts[0].s = 0.0F;
>> @@ -1928,15 +1936,6 @@ _mesa_meta_BlitFramebuffer(**struct gl_context
>> *ctx,
>>            if (!blit->DepthFP)
>>               init_blit_depth_pixels(ctx);
>>
>> -         /* maybe change tex format here */
>> -         newTex = alloc_texture(depthTex, srcW, srcH,
>> GL_DEPTH_COMPONENT);
>> -
>> -         _mesa_ReadPixels(srcX, srcY, srcW, srcH,
>> -                          GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, tmp);
>> -
>> -         setup_drawpix_texture(ctx, depthTex, newTex,
>> GL_DEPTH_COMPONENT, srcW, srcH,
>> -                               GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, tmp);
>> -
>>            _mesa_BindProgramARB(GL_**FRAGMENT_PROGRAM_ARB,
>> blit->DepthFP);
>>            _mesa_set_enable(ctx, GL_FRAGMENT_PROGRAM_ARB, GL_TRUE);
>>            _mesa_ColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
>>
>>
> ______________________________**_________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/**mailman/listinfo/mesa-dev<http://lists.freedesktop.org/mailman/listinfo/mesa-dev>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130222/d3dd2bb4/attachment.html>


More information about the mesa-dev mailing list