Merge remote branch 'origin/master' into pipe-video
[mesa.git] / src / gallium / winsys / r600 / drm / r600_bo.c
index 122a68884b4eeeeb12183c97a92126e2f9054844..40d6ec4c6257dfb2ca92f68e712c76cb6bff91de 100644 (file)
@@ -63,12 +63,25 @@ struct r600_bo *r600_bo(struct radeon *radeon,
         * and are used for uploads and downloads from regular
         * resources.  We generate them internally for some transfers.
         */
-       if (usage == PIPE_USAGE_STAGING)
-               bo->domains = RADEON_GEM_DOMAIN_CPU | RADEON_GEM_DOMAIN_GTT;
-       else
-               bo->domains = (RADEON_GEM_DOMAIN_CPU |
+       switch (usage) {
+        case PIPE_USAGE_DEFAULT:
+               bo->domains = RADEON_GEM_DOMAIN_CPU |
                                RADEON_GEM_DOMAIN_GTT |
-                               RADEON_GEM_DOMAIN_VRAM);
+                               RADEON_GEM_DOMAIN_VRAM;
+                break;
+
+        case PIPE_USAGE_DYNAMIC:
+        case PIPE_USAGE_STREAM:
+        case PIPE_USAGE_STAGING:
+               bo->domains = RADEON_GEM_DOMAIN_CPU |
+                                RADEON_GEM_DOMAIN_GTT;
+               break;
+
+        case PIPE_USAGE_STATIC:
+        case PIPE_USAGE_IMMUTABLE:
+               bo->domains = RADEON_GEM_DOMAIN_VRAM;
+               break;
+        }
 
        pipe_reference_init(&bo->reference, 1);
        return bo;