diff options
author | Younes Manton <younes.m@gmail.com> | 2009-02-11 11:52:32 -0500 |
---|---|---|
committer | Younes Manton <younes.m@gmail.com> | 2009-02-11 11:58:35 -0500 |
commit | 36b83f519864e20a8ddd69b7ced55e89624a390a (patch) | |
tree | 0f8e6f2c3ff3f37d9710996e0d1e2f33ec1bf196 /src | |
parent | 874f364e9ea3a03d29ae4b6e1c7e2843ef8b9e79 (diff) |
nouveau: 1xN, Nx1 levels of a swizzled mip tree shouldn't be aligned.
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/nv30/nv30_miptree.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/nv40/nv40_miptree.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/nv30/nv30_miptree.c b/src/gallium/drivers/nv30/nv30_miptree.c index fe13f50ebb..510c94d4e6 100644 --- a/src/gallium/drivers/nv30/nv30_miptree.c +++ b/src/gallium/drivers/nv30/nv30_miptree.c @@ -50,7 +50,8 @@ nv30_miptree_layout(struct nv30_miptree *nv30mt) for (l = 0; l < pt->last_level; l++) { nv30mt->level[l].image_offset[f] = offset; - if (!(pt->tex_usage & NOUVEAU_TEXTURE_USAGE_LINEAR)) + if (!(pt->tex_usage & NOUVEAU_TEXTURE_USAGE_LINEAR) && + pt->width[l + 1] > 1 && pt->height[l + 1] > 1) offset += align(nv30mt->level[l].pitch * pt->height[l], 64); else offset += nv30mt->level[l].pitch * pt->height[l]; diff --git a/src/gallium/drivers/nv40/nv40_miptree.c b/src/gallium/drivers/nv40/nv40_miptree.c index e4f8df910a..e38b1e7f5c 100644 --- a/src/gallium/drivers/nv40/nv40_miptree.c +++ b/src/gallium/drivers/nv40/nv40_miptree.c @@ -50,7 +50,8 @@ nv40_miptree_layout(struct nv40_miptree *mt) for (l = 0; l < pt->last_level; l++) { mt->level[l].image_offset[f] = offset; - if (!(pt->tex_usage & NOUVEAU_TEXTURE_USAGE_LINEAR)) + if (!(pt->tex_usage & NOUVEAU_TEXTURE_USAGE_LINEAR) && + pt->width[l + 1] > 1 && pt->height[l + 1] > 1) offset += align(mt->level[l].pitch * pt->height[l], 64); else offset += mt->level[l].pitch * pt->height[l]; |