OSDN Git Service

llvmpipe: Fix alignment.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 4 Dec 2012 19:09:28 +0000 (19:09 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Tue, 4 Dec 2012 19:33:04 +0000 (19:33 +0000)
My understanding and actual implementation of how the pixels are being
fetch differed.

This fixes bug 57863.

Trivial.

src/gallium/drivers/llvmpipe/lp_state_fs.c

index c56ce9e..f89f952 100644 (file)
@@ -1337,7 +1337,12 @@ generate_unswizzled_blend(struct gallivm_state *gallivm,
    mask_type.length = fs_type.length;
 
    /* Compute the alignment of the destination pointer in bytes */
+#if 0
    dst_alignment = (block_width * out_format_desc->block.bits + 7)/(out_format_desc->block.width * 8);
+#else
+   /* FIXME -- currently we're fetching pixels one by one, instead of row by row */
+   dst_alignment = (1 * out_format_desc->block.bits + 7)/(out_format_desc->block.width * 8);
+#endif
    /* Force power-of-two alignment by extracting only the least-significant-bit */
    dst_alignment = 1 << (ffs(dst_alignment) - 1);
    /* Resource base and stride pointers are aligned to 16 bytes, so that's the maximum alignment we can guarantee */