nv50: fix dri3 prime buffer creation
[mesa.git] / src / gallium / drivers / nouveau / nv50 / nv50_miptree.c
index 4c5517978c01d686937488cf3a8effbe5babbf5e..14e5a0da077fa76e6c322d858429711e6c197f56 100644 (file)
@@ -352,7 +352,12 @@ nv50_miptree_create(struct pipe_screen *pscreen,
    }
    bo_config.nv50.tile_mode = mt->level[0].tile_mode;
 
-   bo_flags = NOUVEAU_BO_VRAM | NOUVEAU_BO_NOSNOOP;
+   if (!bo_config.nv50.memtype && (pt->bind & PIPE_BIND_SHARED))
+      mt->base.domain = NOUVEAU_BO_GART;
+   else
+      mt->base.domain = NOUVEAU_BO_VRAM;
+
+   bo_flags = mt->base.domain | NOUVEAU_BO_NOSNOOP;
    if (mt->base.base.bind & (PIPE_BIND_CURSOR | PIPE_BIND_DISPLAY_TARGET))
       bo_flags |= NOUVEAU_BO_CONTIG;
 
@@ -362,7 +367,6 @@ nv50_miptree_create(struct pipe_screen *pscreen,
       FREE(mt);
       return NULL;
    }
-   mt->base.domain = NOUVEAU_BO_VRAM;
    mt->base.address = mt->base.bo->offset;
 
    return pt;