diff options
author | Brian Paul <[email protected]> | 2011-09-22 17:01:18 +0200 |
---|---|---|
committer | Michel Dänzer <[email protected]> | 2011-09-22 17:01:18 +0200 |
commit | 4beb8f9e9d0d45d64a9d60ef48ede95b4723c9a5 (patch) | |
tree | cc8716105e13174ba2ada9b8bd59afb059827133 /src/mesa/state_tracker/st_texture.c | |
parent | 0cf1a55568dc7e511cbd8e3f5277ccfc272e4feb (diff) |
st/mesa: Convert size assertions to conditionals in st_texture_image_copy.
Prevents potential assertion failures in piglit fbo-incomplete-texture-03 test.
NOTE: This is a candidate for the 7.11 branch.
Diffstat (limited to 'src/mesa/state_tracker/st_texture.c')
-rw-r--r-- | src/mesa/state_tracker/st_texture.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_texture.c b/src/mesa/state_tracker/st_texture.c index c5dc7dcc484..bf98e76c783 100644 --- a/src/mesa/state_tracker/st_texture.c +++ b/src/mesa/state_tracker/st_texture.c @@ -366,9 +366,15 @@ st_texture_image_copy(struct pipe_context *pipe, struct pipe_box src_box; GLuint i; - assert(u_minify(src->width0, srcLevel) == width); - assert(u_minify(src->height0, srcLevel) == height); - assert(u_minify(src->depth0, srcLevel) == depth); + if (u_minify(src->width0, srcLevel) != width || + u_minify(src->height0, srcLevel) != height || + u_minify(src->depth0, srcLevel) != depth) { + /* The source image size doesn't match the destination image size. + * This can happen in some degenerate situations such as rendering to a + * cube map face which was set up with mismatched texture sizes. + */ + return; + } src_box.x = 0; src_box.y = 0; |