diff options
author | Brian Paul <[email protected]> | 2010-05-04 17:25:33 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2010-05-04 17:25:36 -0600 |
commit | c6fdb950e9fdf42fb1d6c837019df23386fffee7 (patch) | |
tree | 6d4565f643b6893dcbe03b64c506ccad8cf8acab /src/mesa/state_tracker | |
parent | 87022efb4f1e40a70d34beb30754854608a49246 (diff) |
st/mesa: need to pass srcLevel to st_texture_image_copy()
Fixes a regression in mipmap setup.
Diffstat (limited to 'src/mesa/state_tracker')
-rw-r--r-- | src/mesa/state_tracker/st_cb_texture.c | 2 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_texture.c | 9 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_texture.h | 2 |
3 files changed, 6 insertions, 7 deletions
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 |