Mesa (master): r600g: Actually use the info from the flushed depth texture when creating a sampler view on a depth texture .

Henri Verbeet hverbeet at kemper.freedesktop.org
Tue Feb 1 00:20:10 UTC 2011


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

Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Tue Feb  1 01:17:02 2011 +0100

r600g: Actually use the info from the flushed depth texture when creating a sampler view on a depth texture.

R600/R700 was using incorrect tiling information from the (compressed) depth
buffer. Evergreen worked anyway because tiling doesn't work.

---

 src/gallium/drivers/r600/evergreen_state.c |   15 ++++++---------
 src/gallium/drivers/r600/r600_state.c      |   14 +++++---------
 2 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 1afbf89..5a923db 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -380,18 +380,15 @@ static struct pipe_sampler_view *evergreen_create_sampler_view(struct pipe_conte
 	if (desc == NULL) {
 		R600_ERR("unknow format %d\n", state->format);
 	}
-	tmp = (struct r600_resource_texture*)texture;
-	rbuffer = &tmp->resource;
-	bo[0] = rbuffer->bo;
-	bo[1] = rbuffer->bo;
-	/* FIXME depth texture decompression */
+	tmp = (struct r600_resource_texture *)texture;
 	if (tmp->depth) {
 		r600_texture_depth_flush(ctx, texture);
-		tmp = (struct r600_resource_texture*)texture;
-		rbuffer = &tmp->flushed_depth_texture->resource;
-		bo[0] = rbuffer->bo;
-		bo[1] = rbuffer->bo;
+		tmp = tmp->flushed_depth_texture;
 	}
+	rbuffer = &tmp->resource;
+	bo[0] = rbuffer->bo;
+	bo[1] = rbuffer->bo;
+
 	pitch = align(tmp->pitch_in_pixels[0], 8);
 
 	/* FIXME properly handle first level != 0 */
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index 8c583b4..d23f242 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -428,18 +428,14 @@ static struct pipe_sampler_view *r600_create_sampler_view(struct pipe_context *c
 	if (desc == NULL) {
 		R600_ERR("unknow format %d\n", state->format);
 	}
-	tmp = (struct r600_resource_texture*)texture;
-	rbuffer = &tmp->resource;
-	bo[0] = rbuffer->bo;
-	bo[1] = rbuffer->bo;
-	/* FIXME depth texture decompression */
+	tmp = (struct r600_resource_texture *)texture;
 	if (tmp->depth) {
 		r600_texture_depth_flush(ctx, texture);
-		tmp = (struct r600_resource_texture*)texture;
-		rbuffer = &tmp->flushed_depth_texture->resource;
-		bo[0] = rbuffer->bo;
-		bo[1] = rbuffer->bo;
+		tmp = tmp->flushed_depth_texture;
 	}
+	rbuffer = &tmp->resource;
+	bo[0] = rbuffer->bo;
+	bo[1] = rbuffer->bo;
 	pitch = align(tmp->pitch_in_pixels[0], 8);
 	if (tmp->tiled) {
 		array_mode = tmp->array_mode[0];




More information about the mesa-commit mailing list