nouveau: switch to nouveau_bo_new_tile()
authorBen Skeggs <bskeggs@redhat.com>
Fri, 12 Feb 2010 02:50:24 +0000 (12:50 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 12 Feb 2010 06:03:20 +0000 (16:03 +1000)
src/gallium/drivers/nouveau/nouveau_screen.c

index 156cb2d..81bc296 100644 (file)
@@ -55,7 +55,7 @@ nouveau_screen_bo_new(struct pipe_screen *pscreen, unsigned alignment,
 {
        struct nouveau_device *dev = nouveau_screen(pscreen)->device;
        struct nouveau_bo *bo = NULL;
-       uint32_t flags = NOUVEAU_BO_MAP;
+       uint32_t flags = NOUVEAU_BO_MAP, tile_mode = 0, tile_flags = 0;
        int ret;
 
        if (usage & NOUVEAU_BUFFER_USAGE_TRANSFER)
@@ -77,13 +77,15 @@ nouveau_screen_bo_new(struct pipe_screen *pscreen, unsigned alignment,
                        flags |= NOUVEAU_BO_VRAM;
 
                if (dev->chipset == 0x50 || dev->chipset >= 0x80) {
-                       flags |= NOUVEAU_BO_TILED;
                        if (usage & NOUVEAU_BUFFER_USAGE_ZETA)
-                               flags |= NOUVEAU_BO_ZTILE;
+                               tile_flags = 0x2800;
+                       else
+                               tile_flags = 0x7000;
                }
        }
 
-       ret = nouveau_bo_new(dev, flags, alignment, size, &bo);
+       ret = nouveau_bo_new_tile(dev, flags, alignment, size,
+                                 tile_mode, tile_flags, &bo);
        if (ret)
                return NULL;