Mesa (master): dri/nouveau: Initialize tile_flags when allocating a render target.

Francisco Jerez currojerez at kemper.freedesktop.org
Tue Oct 12 02:19:55 UTC 2010


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

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Sat Oct  9 23:26:34 2010 +0200

dri/nouveau: Initialize tile_flags when allocating a render target.

---

 src/mesa/drivers/dri/nouveau/nouveau_surface.c |   16 ++++++++++++----
 src/mesa/drivers/dri/nouveau/nv10_state_fb.c   |    4 ++--
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_surface.c b/src/mesa/drivers/dri/nouveau/nouveau_surface.c
index 3339397..b6b5c64 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_surface.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_surface.c
@@ -34,8 +34,8 @@ nouveau_surface_alloc(GLcontext *ctx, struct nouveau_surface *s,
 		      unsigned flags, unsigned format,
 		      unsigned width, unsigned height)
 {
-	unsigned tile_mode, cpp = _mesa_get_format_bytes(format);
-	int ret;
+	unsigned tile_mode = 0, tile_flags = 0;
+	int ret, cpp = _mesa_get_format_bytes(format);
 
 	nouveau_bo_ref(NULL, &s->bo);
 
@@ -51,13 +51,21 @@ nouveau_surface_alloc(GLcontext *ctx, struct nouveau_surface *s,
 	if (layout == TILED) {
 		s->pitch = align(s->pitch, 256);
 		tile_mode = s->pitch;
+
+		if (cpp == 4)
+			tile_flags = NOUVEAU_BO_TILE_32BPP;
+		else if (cpp == 2)
+			tile_flags = NOUVEAU_BO_TILE_16BPP;
+
+		if (_mesa_get_format_bits(format, GL_DEPTH_BITS))
+			tile_flags |= NOUVEAU_BO_TILE_ZETA;
+
 	} else {
 		s->pitch = align(s->pitch, 64);
-		tile_mode = 0;
 	}
 
 	ret = nouveau_bo_new_tile(context_dev(ctx), flags, 0, s->pitch * height,
-				  tile_mode, 0, &s->bo);
+				  tile_mode, tile_flags, &s->bo);
 	assert(!ret);
 }
 
diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_fb.c b/src/mesa/drivers/dri/nouveau/nv10_state_fb.c
index f9f3eba..81edbe8 100644
--- a/src/mesa/drivers/dri/nouveau/nv10_state_fb.c
+++ b/src/mesa/drivers/dri/nouveau/nv10_state_fb.c
@@ -64,8 +64,8 @@ setup_lma_buffer(GLcontext *ctx)
 
 	if (!nfb->hierz.bo || nfb->hierz.bo->size != size) {
 		nouveau_bo_ref(NULL, &nfb->hierz.bo);
-		nouveau_bo_new(context_dev(ctx), NOUVEAU_BO_VRAM, 0, size,
-			       &nfb->hierz.bo);
+		nouveau_bo_new_tile(context_dev(ctx), NOUVEAU_BO_VRAM, 0, size,
+				    0, NOUVEAU_BO_TILE_ZETA, &nfb->hierz.bo);
 	}
 
 	nouveau_bo_markl(bctx, celsius, NV17TCL_LMA_DEPTH_BUFFER_OFFSET,




More information about the mesa-commit mailing list