[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 07:44:02 PDT 2012
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
> ---
> 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