mesa: Handle 3d block sizes in _mesa_compute_compressed_pixelstore
authorAnuj Phogat <anuj.phogat@gmail.com>
Fri, 11 Mar 2016 23:05:38 +0000 (15:05 -0800)
committerAnuj Phogat <anuj.phogat@gmail.com>
Tue, 3 May 2016 10:43:18 +0000 (03:43 -0700)
Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/texstore.c

index 48f60867088a8b9569652b78079b7fcc34b89f8a..b54e03337493a990c909a0975d60dd77808d6e07 100644 (file)
@@ -1267,16 +1267,16 @@ _mesa_compute_compressed_pixelstore(GLuint dims, mesa_format texFormat,
                                     const struct gl_pixelstore_attrib *packing,
                                     struct compressed_pixelstore *store)
 {
-   GLuint bw, bh;
+   GLuint bw, bh, bd;
 
-   _mesa_get_format_block_size(texFormat, &bw, &bh);
+   _mesa_get_format_block_size_3d(texFormat, &bw, &bh, &bd);
 
    store->SkipBytes = 0;
    store->TotalBytesPerRow = store->CopyBytesPerRow =
          _mesa_format_row_stride(texFormat, width);
    store->TotalRowsPerSlice = store->CopyRowsPerSlice =
          (height + bh - 1) / bh;
-   store->CopySlices = depth;
+   store->CopySlices = (depth + bd - 1) / bd;
 
    if (packing->CompressedBlockWidth &&
        packing->CompressedBlockSize) {