st/mesa: fix regression since a22aba4eae9b29db731487bce90e8292f7e82c72
authorDave Airlie <airlied@redhat.com>
Sun, 24 Apr 2011 07:35:45 +0000 (17:35 +1000)
committerDave Airlie <airlied@redhat.com>
Sun, 24 Apr 2011 19:59:47 +0000 (05:59 +1000)
"st/mesa: check image size before copy_image_data_to_texture()" caused
a regression in piglit fbo-generatemipmap-formats test on all gallium drivers.

Level 0 for NPOT textures will not match minified values, so don't do this
check for level 0.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/mesa/state_tracker/st_cb_texture.c

index ab7f6a5..a27c30e 100644 (file)
@@ -1843,9 +1843,9 @@ st_finalize_texture(struct gl_context *ctx,
          /* Need to import images in main memory or held in other textures.
           */
          if (stImage && stObj->pt != stImage->pt) {
-            if (stImage->base.Width == u_minify(stObj->width0, level) &&
+            if (level == 0 || (stImage->base.Width == u_minify(stObj->width0, level) &&
                 stImage->base.Height == u_minify(stObj->height0, level) &&
-                stImage->base.Depth == u_minify(stObj->depth0, level)) {
+                stImage->base.Depth == u_minify(stObj->depth0, level))) {
                /* src image fits expected dest mipmap level size */
                copy_image_data_to_texture(st, stObj, level, stImage);
             }