winsys/amdgpu: don't assume GTT if the VRAM flag isn't set
authorMarek Olšák <marek.olsak@amd.com>
Sun, 11 Sep 2016 19:49:24 +0000 (21:49 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 13 Sep 2016 18:38:25 +0000 (20:38 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/winsys/amdgpu/drm/amdgpu_bo.c

index a6d4aa4aaa298b22571aefd6c6b63941275804fe..5b099b09a6365fb38fa9efff5cc1d4d934d5f685 100644 (file)
@@ -145,7 +145,7 @@ void amdgpu_bo_destroy(struct pb_buffer *_buf)
    if (bo->map_count >= 1) {
       if (bo->initial_domain & RADEON_DOMAIN_VRAM)
          bo->ws->mapped_vram -= bo->base.size;
-      else
+      else if (bo->initial_domain & RADEON_DOMAIN_GTT)
          bo->ws->mapped_gtt -= bo->base.size;
    }
 
@@ -261,7 +261,7 @@ static void *amdgpu_bo_map(struct pb_buffer *buf,
    if (p_atomic_inc_return(&bo->map_count) == 1) {
       if (bo->initial_domain & RADEON_DOMAIN_VRAM)
          bo->ws->mapped_vram += bo->base.size;
-      else
+      else if (bo->initial_domain & RADEON_DOMAIN_GTT)
          bo->ws->mapped_gtt += bo->base.size;
    }
    return cpu;
@@ -277,7 +277,7 @@ static void amdgpu_bo_unmap(struct pb_buffer *buf)
    if (p_atomic_dec_zero(&bo->map_count)) {
       if (bo->initial_domain & RADEON_DOMAIN_VRAM)
          bo->ws->mapped_vram -= bo->base.size;
-      else
+      else if (bo->initial_domain & RADEON_DOMAIN_GTT)
          bo->ws->mapped_gtt -= bo->base.size;
    }