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

Author: Francisco Jerez <curroje...@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,

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to