Mesa (master): r600: fix mipmaps

Alex Deucher agd5f at kemper.freedesktop.org
Thu Jul 30 07:31:46 UTC 2009


Module: Mesa
Branch: master
Commit: 0fdac3529c8a7f7ce41420b79e817407d19a12a2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0fdac3529c8a7f7ce41420b79e817407d19a12a2

Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Thu Jul 30 03:30:46 2009 -0400

r600: fix mipmaps

redbook mipmap works

---

 src/mesa/drivers/dri/r600/r600_texstate.c |    5 +++++
 src/mesa/drivers/dri/r600/r700_render.c   |    2 +-
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/r600/r600_texstate.c b/src/mesa/drivers/dri/r600/r600_texstate.c
index 6918b3b..4840586 100644
--- a/src/mesa/drivers/dri/r600/r600_texstate.c
+++ b/src/mesa/drivers/dri/r600/r600_texstate.c
@@ -610,6 +610,11 @@ static void setup_hardware_state(context_t *rmesa, struct gl_texture_object *tex
 	SETfield(t->SQ_TEX_RESOURCE1, firstImage->Height - 1,
 		 TEX_HEIGHT_shift, TEX_HEIGHT_mask);
 
+	if ((t->mt->lastLevel - t->mt->firstLevel) > 0) {
+		t->SQ_TEX_RESOURCE3 = t->mt->levels[0].size / 256;
+		SETfield(t->SQ_TEX_RESOURCE4, t->mt->firstLevel, BASE_LEVEL_shift, BASE_LEVEL_mask);
+		SETfield(t->SQ_TEX_RESOURCE5, t->mt->lastLevel, LAST_LEVEL_shift, LAST_LEVEL_mask);
+	}
 }
 
 /**
diff --git a/src/mesa/drivers/dri/r600/r700_render.c b/src/mesa/drivers/dri/r600/r700_render.c
index 4e0d539..1810f4b 100644
--- a/src/mesa/drivers/dri/r600/r700_render.c
+++ b/src/mesa/drivers/dri/r600/r700_render.c
@@ -173,7 +173,7 @@ GLboolean r700SendTextureState(context_t *context)
 						 RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0, &offset_mod);
 			    R600_OUT_BATCH_RELOC(r700->textures[i]->SQ_TEX_RESOURCE3,
 						 bo,
-						 0,
+						 r700->textures[i]->SQ_TEX_RESOURCE3,
 						 RADEON_GEM_DOMAIN_GTT|RADEON_GEM_DOMAIN_VRAM, 0, 0, &offset_mod);
 			    R600_OUT_BATCH(r700->textures[i]->SQ_TEX_RESOURCE4);
 			    R600_OUT_BATCH(r700->textures[i]->SQ_TEX_RESOURCE5);




More information about the mesa-commit mailing list