r300g: Slightly saner initialization of some texture / transfer fields.
authorMichel Dänzer <daenzer@vmware.com>
Tue, 4 Aug 2009 08:57:47 +0000 (10:57 +0200)
committerMichel Dänzer <daenzer@vmware.com>
Tue, 4 Aug 2009 08:57:47 +0000 (10:57 +0200)
src/gallium/drivers/r300/r300_screen.c
src/gallium/drivers/r300/r300_texture.c

index 258e4ac7b2a50b2076132004f3fd3cc7dccec067..96a730462177cd58a3b99eb4c3c44ee13ed553f3 100644 (file)
@@ -322,13 +322,14 @@ r300_get_tex_transfer(struct pipe_screen *screen,
     trans = CALLOC_STRUCT(r300_transfer);
     if (trans) {
         pipe_texture_reference(&trans->transfer.texture, texture);
-        trans->transfer.format = trans->transfer.format;
+        trans->transfer.format = texture->format;
         trans->transfer.width = w;
         trans->transfer.height = h;
         trans->transfer.block = texture->block;
         trans->transfer.nblocksx = texture->nblocksx[level];
         trans->transfer.nblocksy = texture->nblocksy[level];
-        trans->transfer.stride = tex->stride;
+        trans->transfer.stride = align(pf_get_stride(&trans->transfer.block,
+                                                     texture->width[level]), 32);
         trans->transfer.usage = usage;
         trans->offset = offset;
     }
index daf1647bee8e481424e2c5c437a44582b6a5e8b3..0164f05096196b96072313bd6c04c226a50f7ece 100644 (file)
@@ -81,13 +81,11 @@ static void r300_setup_miptree(struct r300_texture* tex)
          * XXX
          * POT, uncompressed, unmippmapped textures can be aligned to 32,
          * instead of 64. */
-        stride = align(
-                (base->nblocksx[i] * base->block.size) / base->block.width,
-                32);
+        stride = align(pf_get_stride(&base->block, base->width[i]), 32);
         size = stride * base->nblocksy[i] * base->depth[i];
 
         tex->offset[i] = align(tex->size, 32);
-        tex->size += tex->offset[i] + size;
+        tex->size = tex->offset[i] + size;
 
         debug_printf("r300: Texture miptree: Level %d "
                 "(%dx%dx%d px, pitch %d bytes)\n",