llvmpipe: Call llvmpipe_set_texture_tile_layout only when necessary.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 27 May 2010 15:17:06 +0000 (16:17 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 30 May 2010 15:38:46 +0000 (16:38 +0100)
Like the other places.

src/gallium/drivers/llvmpipe/lp_texture.c

index 5696683f454b75740d3eeec288818e9a9ddf52e8..d86056ca34c6a235e37344cbdd153478db9fa9b9 100644 (file)
@@ -1045,6 +1045,7 @@ llvmpipe_get_texture_image(struct llvmpipe_resource *lpr,
                                      lpr->tiles_per_row[level]);
                }
                else {
+                  assert(layout == LP_TEX_LAYOUT_LINEAR);
                   lp_tiled_to_linear(other_data, target_data,
                                      x * TILE_SIZE, y * TILE_SIZE,
                                      TILE_SIZE, TILE_SIZE,
@@ -1054,8 +1055,9 @@ llvmpipe_get_texture_image(struct llvmpipe_resource *lpr,
                }
             }
 
-            llvmpipe_set_texture_tile_layout(lpr, face_slice, level, x, y,
-                                             new_layout);
+            if (new_layout != cur_layout)
+               llvmpipe_set_texture_tile_layout(lpr, face_slice, level, x, y,
+                                                new_layout);
          }
       }
    }