From: Brian Paul Date: Tue, 4 May 2010 23:25:33 +0000 (-0600) Subject: st/mesa: need to pass srcLevel to st_texture_image_copy() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c6fdb950e9fdf42fb1d6c837019df23386fffee7;p=mesa.git st/mesa: need to pass srcLevel to st_texture_image_copy() Fixes a regression in mipmap setup. --- diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c index b66630f9a6a..11952a033a5 100644 --- a/src/mesa/state_tracker/st_cb_texture.c +++ b/src/mesa/state_tracker/st_cb_texture.c @@ -1778,7 +1778,7 @@ copy_image_data_to_texture(struct st_context *st, */ st_texture_image_copy(st->pipe, stObj->pt, dstLevel, /* dest texture, level */ - stImage->pt, /* src texture */ + stImage->pt, stImage->level, /* src texture, level */ stImage->face); pipe_resource_reference(&stImage->pt, NULL); diff --git a/src/mesa/state_tracker/st_texture.c b/src/mesa/state_tracker/st_texture.c index 80135fe9420..32011f294fa 100644 --- a/src/mesa/state_tracker/st_texture.c +++ b/src/mesa/state_tracker/st_texture.c @@ -280,7 +280,7 @@ print_center_pixel(struct pipe_context *pipe, struct pipe_resource *src) void st_texture_image_copy(struct pipe_context *pipe, struct pipe_resource *dst, GLuint dstLevel, - struct pipe_resource *src, + struct pipe_resource *src, GLuint srcLevel, GLuint face) { struct pipe_screen *screen = pipe->screen; @@ -289,12 +289,11 @@ st_texture_image_copy(struct pipe_context *pipe, GLuint depth = u_minify(dst->depth0, dstLevel); struct pipe_surface *src_surface; struct pipe_surface *dst_surface; - const GLuint srcLevel = 0; GLuint i; - assert(src->width0 == width); - assert(src->height0 == height); - assert(src->depth0 == depth); + assert(u_minify(src->width0, srcLevel) == width); + assert(u_minify(src->height0, srcLevel) == height); + assert(u_minify(src->depth0, srcLevel) == depth); /* Loop over 3D image slices */ for (i = 0; i < depth; i++) { diff --git a/src/mesa/state_tracker/st_texture.h b/src/mesa/state_tracker/st_texture.h index 447f091db1f..ef31a1361e3 100644 --- a/src/mesa/state_tracker/st_texture.h +++ b/src/mesa/state_tracker/st_texture.h @@ -205,7 +205,7 @@ st_texture_image_data(struct st_context *st, extern void st_texture_image_copy(struct pipe_context *pipe, struct pipe_resource *dst, GLuint dstLevel, - struct pipe_resource *src, + struct pipe_resource *src, GLuint srcLevel, GLuint face); extern void