st/mesa: Convert size assertions to conditionals in st_texture_image_copy.
authorBrian Paul <brianp@vmware.com>
Thu, 22 Sep 2011 15:01:18 +0000 (17:01 +0200)
committerMichel Dänzer <michel@daenzer.net>
Thu, 22 Sep 2011 15:01:18 +0000 (17:01 +0200)
Prevents potential assertion failures in piglit fbo-incomplete-texture-03 test.

NOTE: This is a candidate for the 7.11 branch.

src/mesa/state_tracker/st_texture.c

index c5dc7dcc484bf7a7918db6e0121f7866b964cc59..bf98e76c78301383f322010aac409f59842596b5 100644 (file)
@@ -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;