summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbieri <luca@luca-barbieri.com>2010-01-19 17:39:27 -0800
committerBrian Paul <brianp@vmware.com>2010-01-25 08:11:49 -0700
commit9328f3a670993167d7fb9a590f9e712467e77c7c (patch)
treea68b5f92ab08ee4b8865bec29414a8300615e933
parent2204447de320afe201a9369f57658cae0a11a440 (diff)
Fix compressed texture loads for non-minimal pitches again
My commit eea6a7639f767b1d30b6ef1f91a9c49e3f3b78f0 does a memcpy of height lines, but that's wrong because the texture has a block layout and we must thus use the number of vertical blocks instead of the height. Signed-off-by: Brian Paul <brianp@vmware.com>
-rw-r--r--src/mesa/state_tracker/st_cb_texture.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index b94bfc8538..cee2452eaf 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -686,9 +686,11 @@ st_TexImage(GLcontext * ctx,
{
char *dst = texImage->Data;
const char *src = pixels;
- int i;
+ GLuint i, bw, bh, lines;
+ _mesa_get_format_block_size(texImage->TexFormat, &bw, &bh);
+ lines = (height + bh - 1) / bh;
- for(i = 0; i < height; ++i)
+ for(i = 0; i < lines; ++i)
{
memcpy(dst, src, srcImageStride);
dst += dstRowStride;