diff options
author | José Fonseca <[email protected]> | 2012-12-04 19:09:28 +0000 |
---|---|---|
committer | José Fonseca <[email protected]> | 2012-12-04 19:33:04 +0000 |
commit | 294d8a71efe0d85d7212c9b0f465e8637cc25e77 (patch) | |
tree | d139d1974268db09e5ad95c9a954ebfc21252a60 /src | |
parent | 7d44d354bdba853e453ce3991396e2b0933468f4 (diff) |
llvmpipe: Fix alignment.
My understanding and actual implementation of how the pixels are being
fetch differed.
This fixes bug 57863.
Trivial.
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_state_fs.c | 5 |
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 */ |