From 70828aa246464d5e1ae0c32a9301c4dccfa54935 Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Sat, 9 Oct 2010 23:26:34 +0200 Subject: [PATCH] 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, -- 2.7.4