summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2012-12-04 19:09:28 +0000
committerJosé Fonseca <[email protected]>2012-12-04 19:33:04 +0000
commit294d8a71efe0d85d7212c9b0f465e8637cc25e77 (patch)
treed139d1974268db09e5ad95c9a954ebfc21252a60
parent7d44d354bdba853e453ce3991396e2b0933468f4 (diff)
llvmpipe: Fix alignment.
My understanding and actual implementation of how the pixels are being fetch differed. This fixes bug 57863. Trivial.
-rw-r--r--src/gallium/drivers/llvmpipe/lp_state_fs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c
index c56ce9ee71c..f89f9525eee 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c
@@ -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 */