[Mesa-dev] [PATCH] st/mesa: Fix source miptree level for copying data to finalized miptree.

Andreas Boll andreas.boll.dev at gmail.com
Fri Oct 19 08:22:50 PDT 2012


2012/10/19 Andreas Boll <andreas.boll.dev at gmail.com>:
> 2012/10/19 Michel Dänzer <michel at daenzer.net>:
>> From: Michel Dänzer <michel.daenzer at amd.com>
>>
>> Fixes WebGL texture mips conformance test, no piglit regressions.
>>
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44912
>>
>> NOTE: This is a candidate for the stable branches.
>>
>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
>
> Tested-by: Andreas Boll <andreas.boll.dev at gmail.com>
>
>
> I've tested this patch with r600g (rv770), llvmpipe and softpipe.
> Now r600g passes all WebGL conformance tests!
>
> Thank you very much!
>
> P.S.: I'll test the patch on 9.0 and 8.0 branch
>

As promised I tested the patch on 9.0 and 8.0 branch and
I can confirm that the texture mips test passes now with
r600g (rv770), llvmpipe and softpipe.

Additionally I've run all conformance tests on 9.0 and 8.0 with the patch
on r600g.
The result is on both branches:
8877 of 8877 tests passed. ;-)

Andreas.

>> ---
>>  src/mesa/state_tracker/st_cb_texture.c |   12 ++++++++----
>>  1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
>> index 218c8d1..d947836 100644
>> --- a/src/mesa/state_tracker/st_cb_texture.c
>> +++ b/src/mesa/state_tracker/st_cb_texture.c
>> @@ -1112,12 +1112,16 @@ copy_image_data_to_texture(struct st_context *st,
>>     if (stImage->pt) {
>>        /* Copy potentially with the blitter:
>>         */
>> -      GLuint src_level;
>> -      if (stImage->pt != stObj->pt)
>> -         src_level = 0;
>> -      else
>> +      GLuint src_level = 0;
>> +
>> +      if (stImage->pt->last_level > 0) {
>>           src_level = stImage->base.Level;
>>
>> +         assert(src_level <= stImage->pt->last_level);
>> +         assert(u_minify(stImage->pt->width0, src_level) == stImage->base.Width);
>> +         assert(u_minify(stImage->pt->height0, src_level) == stImage->base.Height);
>> +      }
>> +
>>        st_texture_image_copy(st->pipe,
>>                              stObj->pt, dstLevel,  /* dest texture, level */
>>                              stImage->pt, src_level, /* src texture, level */
>> --
>> 1.7.10.4
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list