From: Michel Dänzer <michel.daen...@amd.com>

This should make its meaning clearer.

The value it holds is the CPU page size, which can be different from
the GART page size.

Signed-off-by: Michel Dänzer <michel.daen...@amd.com>
---
 src/gallium/drivers/r300/r300_query.c             |  4 +--
 src/gallium/drivers/radeon/r600_pipe_common.c     |  4 +--
 src/gallium/drivers/radeon/r600_query.c           |  2 +-
 src/gallium/drivers/radeon/radeon_winsys.h        |  2 +-
 src/gallium/drivers/radeonsi/si_debug.c           |  8 +++---
 src/gallium/winsys/amdgpu/drm/amdgpu_bo.c         | 24 +++++++++---------
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c         |  6 ++---
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c     |  2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_bo.c     | 30 +++++++++++------------
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c |  4 +--
 10 files changed, 43 insertions(+), 43 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_query.c 
b/src/gallium/drivers/r300/r300_query.c
index 79e2198..a7a90f7 100644
--- a/src/gallium/drivers/r300/r300_query.c
+++ b/src/gallium/drivers/r300/r300_query.c
@@ -59,8 +59,8 @@ static struct pipe_query *r300_create_query(struct 
pipe_context *pipe,
         q->num_pipes = r300screen->info.r300_num_gb_pipes;
 
     q->buf = r300->rws->buffer_create(r300->rws,
-                                      r300screen->info.gart_page_size,
-                                      r300screen->info.gart_page_size,
+                                      r300screen->info.bo_alignment,
+                                      r300screen->info.bo_alignment,
                                       RADEON_DOMAIN_GTT, 0);
     if (!q->buf) {
         FREE(q);
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
b/src/gallium/drivers/radeon/r600_pipe_common.c
index a5966d9..2a9f064 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -369,7 +369,7 @@ bool r600_common_context_init(struct r600_common_context 
*rctx,
        cayman_init_msaa(&rctx->b);
 
        rctx->allocator_so_filled_size =
-               u_suballocator_create(&rctx->b, rscreen->info.gart_page_size,
+               u_suballocator_create(&rctx->b, rscreen->info.bo_alignment,
                                      4, 0, PIPE_USAGE_DEFAULT, TRUE);
        if (!rctx->allocator_so_filled_size)
                return false;
@@ -929,7 +929,7 @@ struct pipe_resource *r600_resource_create_common(struct 
pipe_screen *screen,
 
        if (templ->target == PIPE_BUFFER) {
                return r600_buffer_create(screen, templ,
-                                         rscreen->info.gart_page_size);
+                                         rscreen->info.bo_alignment);
        } else {
                return r600_texture_create(screen, templ);
        }
diff --git a/src/gallium/drivers/radeon/r600_query.c 
b/src/gallium/drivers/radeon/r600_query.c
index 9f12ccd..c1b6207 100644
--- a/src/gallium/drivers/radeon/r600_query.c
+++ b/src/gallium/drivers/radeon/r600_query.c
@@ -263,7 +263,7 @@ static struct r600_resource *r600_new_query_buffer(struct 
r600_common_context *c
                                                   struct r600_query_hw *query)
 {
        unsigned buf_size = MAX2(query->result_size,
-                                ctx->screen->info.gart_page_size);
+                                ctx->screen->info.bo_alignment);
 
        /* Queries are normally read by the CPU after
         * being written by the gpu, hence staging is probably a good
diff --git a/src/gallium/drivers/radeon/radeon_winsys.h 
b/src/gallium/drivers/radeon/radeon_winsys.h
index e73fa14..385e386 100644
--- a/src/gallium/drivers/radeon/radeon_winsys.h
+++ b/src/gallium/drivers/radeon/radeon_winsys.h
@@ -242,7 +242,7 @@ struct radeon_info {
     uint32_t                    pci_id;
     enum radeon_family          family;
     enum chip_class             chip_class;
-    uint32_t                    gart_page_size;
+    uint32_t                    bo_alignment; /* BO address & size alignment */
     uint64_t                    gart_size;
     uint64_t                    vram_size;
     bool                        has_dedicated_vram;
diff --git a/src/gallium/drivers/radeonsi/si_debug.c 
b/src/gallium/drivers/radeonsi/si_debug.c
index f227e5a..dada502 100644
--- a/src/gallium/drivers/radeonsi/si_debug.c
+++ b/src/gallium/drivers/radeonsi/si_debug.c
@@ -597,8 +597,8 @@ static void si_dump_last_bo_list(struct si_context *sctx, 
FILE *f)
                "VM end page           Usage" COLOR_RESET "\n");
 
        for (i = 0; i < sctx->last_bo_count; i++) {
-               /* Note: Buffer sizes are expected to be aligned to 4k by the 
winsys. */
-               const unsigned page_size = sctx->b.screen->info.gart_page_size;
+               /* Note: Buffer sizes are expected to be aligned by the winsys. 
*/
+               const unsigned alignment = sctx->b.screen->info.bo_alignment;
                uint64_t va = sctx->last_bo_list[i].vm_address;
                uint64_t size = sctx->last_bo_list[i].buf->size;
                bool hit = false;
@@ -610,13 +610,13 @@ static void si_dump_last_bo_list(struct si_context *sctx, 
FILE *f)
 
                        if (va > previous_va_end) {
                                fprintf(f, "  %10"PRIu64"    -- hole --\n",
-                                       (va - previous_va_end) / page_size);
+                                       (va - previous_va_end) / alignment);
                        }
                }
 
                /* Print the buffer. */
                fprintf(f, "  %10"PRIu64"    0x%013"PRIx64"       
0x%013"PRIx64"       ",
-                       size / page_size, va / page_size, (va + size) / 
page_size);
+                       size / alignment, va / alignment, (va + size) / 
alignment);
 
                /* Print the usage. */
                for (j = 0; j < 64; j++) {
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
index ed12f30..b5c607c 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c
@@ -137,9 +137,9 @@ void amdgpu_bo_destroy(struct pb_buffer *_buf)
       amdgpu_fence_reference(&bo->fence[i], NULL);
 
    if (bo->initial_domain & RADEON_DOMAIN_VRAM)
-      bo->ws->allocated_vram -= align64(bo->base.size, 
bo->ws->info.gart_page_size);
+      bo->ws->allocated_vram -= align64(bo->base.size, 
bo->ws->info.bo_alignment);
    else if (bo->initial_domain & RADEON_DOMAIN_GTT)
-      bo->ws->allocated_gtt -= align64(bo->base.size, 
bo->ws->info.gart_page_size);
+      bo->ws->allocated_gtt -= align64(bo->base.size, 
bo->ws->info.bo_alignment);
    FREE(bo);
 }
 
@@ -327,9 +327,9 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct 
amdgpu_winsys *ws,
    bo->unique_id = __sync_fetch_and_add(&ws->next_bo_unique_id, 1);
 
    if (initial_domain & RADEON_DOMAIN_VRAM)
-      ws->allocated_vram += align64(size, ws->info.gart_page_size);
+      ws->allocated_vram += align64(size, ws->info.bo_alignment);
    else if (initial_domain & RADEON_DOMAIN_GTT)
-      ws->allocated_gtt += align64(size, ws->info.gart_page_size);
+      ws->allocated_gtt += align64(size, ws->info.bo_alignment);
 
    amdgpu_add_buffer_to_global_list(bo);
 
@@ -465,12 +465,12 @@ amdgpu_bo_create(struct radeon_winsys *rws,
    struct amdgpu_winsys_bo *bo;
    unsigned usage = 0;
 
-   /* Align size to page size. This is the minimum alignment for normal
-    * BOs. Aligning this here helps the cached bufmgr. Especially small BOs,
-    * like constant/uniform buffers, can benefit from better and more reuse.
+   /* This is the minimum address & size alignment for normal BOs. Aligning
+    * these here helps the cached bufmgr. Especially small BOs, like
+    * constant/uniform buffers, can benefit from better and more reuse.
     */
-   size = align64(size, ws->info.gart_page_size);
-   alignment = align(alignment, ws->info.gart_page_size);
+   size = align64(size, ws->info.bo_alignment);
+   alignment = align(alignment, ws->info.bo_alignment);
 
    /* Only set one usage bit each for domains and flags, or the cache manager
     * might consider different sets of domains / flags compatible
@@ -577,9 +577,9 @@ static struct pb_buffer *amdgpu_bo_from_handle(struct 
radeon_winsys *rws,
       *offset = whandle->offset;
 
    if (bo->initial_domain & RADEON_DOMAIN_VRAM)
-      ws->allocated_vram += align64(bo->base.size, ws->info.gart_page_size);
+      ws->allocated_vram += align64(bo->base.size, ws->info.bo_alignment);
    else if (bo->initial_domain & RADEON_DOMAIN_GTT)
-      ws->allocated_gtt += align64(bo->base.size, ws->info.gart_page_size);
+      ws->allocated_gtt += align64(bo->base.size, ws->info.bo_alignment);
 
    amdgpu_add_buffer_to_global_list(bo);
 
@@ -669,7 +669,7 @@ static struct pb_buffer *amdgpu_bo_from_ptr(struct 
radeon_winsys *rws,
     bo->initial_domain = RADEON_DOMAIN_GTT;
     bo->unique_id = __sync_fetch_and_add(&ws->next_bo_unique_id, 1);
 
-    ws->allocated_gtt += align64(bo->base.size, ws->info.gart_page_size);
+    ws->allocated_gtt += align64(bo->base.size, ws->info.bo_alignment);
 
     amdgpu_add_buffer_to_global_list(bo);
 
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
index a5d7033..e42a55a 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_cs.c
@@ -138,8 +138,8 @@ static struct radeon_winsys_ctx *amdgpu_ctx_create(struct 
radeon_winsys *ws)
       return NULL;
    }
 
-   alloc_buffer.alloc_size = ctx->ws->info.gart_page_size;
-   alloc_buffer.phys_alignment = ctx->ws->info.gart_page_size;
+   alloc_buffer.alloc_size = ctx->ws->info.bo_alignment;
+   alloc_buffer.phys_alignment = ctx->ws->info.bo_alignment;
    alloc_buffer.preferred_heap = AMDGPU_GEM_DOMAIN_GTT;
 
    r = amdgpu_bo_alloc(ctx->ws->dev, &alloc_buffer, &buf_handle);
@@ -237,7 +237,7 @@ static bool amdgpu_get_new_ib(struct radeon_winsys *ws, 
struct amdgpu_ib *ib,
       ib->used_ib_space = 0;
 
       ib->big_ib_buffer = ws->buffer_create(ws, buffer_size,
-                                            aws->info.gart_page_size,
+                                            aws->info.bo_alignment,
                                             RADEON_DOMAIN_GTT,
                                             RADEON_FLAG_CPU_ACCESS);
       if (!ib->big_ib_buffer)
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c 
b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
index ad4f21f..713427bb 100644
--- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
+++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c
@@ -292,7 +292,7 @@ static boolean do_winsys_init(struct amdgpu_winsys *ws, int 
fd)
    memcpy(ws->info.cik_macrotile_mode_array, ws->amdinfo.gb_macro_tile_mode,
           sizeof(ws->amdinfo.gb_macro_tile_mode));
 
-   ws->info.gart_page_size = alignment_info.size_remote;
+   ws->info.bo_alignment = alignment_info.size_remote;
 
    return TRUE;
 
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c 
b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
index b07afe6..2054f16 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_bo.c
@@ -144,7 +144,7 @@ static uint64_t radeon_bomgr_find_va(struct 
radeon_drm_winsys *rws,
     /* All VM address space holes will implicitly start aligned to the
      * size alignment, so we don't need to sanitize the alignment here
      */
-    size = align(size, rws->info.gart_page_size);
+    size = align(size, rws->info.bo_alignment);
 
     pipe_mutex_lock(rws->bo_va_mutex);
     /* first look for a hole */
@@ -202,7 +202,7 @@ static void radeon_bomgr_free_va(struct radeon_drm_winsys 
*rws,
 {
     struct radeon_bo_va_hole *hole;
 
-    size = align(size, rws->info.gart_page_size);
+    size = align(size, rws->info.bo_alignment);
 
     pipe_mutex_lock(rws->bo_va_mutex);
     if ((va + size) == rws->va_offset) {
@@ -313,9 +313,9 @@ void radeon_bo_destroy(struct pb_buffer *_buf)
     pipe_mutex_destroy(bo->map_mutex);
 
     if (bo->initial_domain & RADEON_DOMAIN_VRAM)
-        rws->allocated_vram -= align(bo->base.size, rws->info.gart_page_size);
+        rws->allocated_vram -= align(bo->base.size, rws->info.bo_alignment);
     else if (bo->initial_domain & RADEON_DOMAIN_GTT)
-        rws->allocated_gtt -= align(bo->base.size, rws->info.gart_page_size);
+        rws->allocated_gtt -= align(bo->base.size, rws->info.bo_alignment);
     FREE(bo);
 }
 
@@ -591,9 +591,9 @@ static struct radeon_bo *radeon_create_bo(struct 
radeon_drm_winsys *rws,
     }
 
     if (initial_domains & RADEON_DOMAIN_VRAM)
-        rws->allocated_vram += align(size, rws->info.gart_page_size);
+        rws->allocated_vram += align(size, rws->info.bo_alignment);
     else if (initial_domains & RADEON_DOMAIN_GTT)
-        rws->allocated_gtt += align(size, rws->info.gart_page_size);
+        rws->allocated_gtt += align(size, rws->info.bo_alignment);
 
     return bo;
 }
@@ -727,12 +727,12 @@ radeon_winsys_bo_create(struct radeon_winsys *rws,
     if (size > UINT_MAX)
         return NULL;
 
-    /* Align size to page size. This is the minimum alignment for normal
-     * BOs. Aligning this here helps the cached bufmgr. Especially small BOs,
-     * like constant/uniform buffers, can benefit from better and more reuse.
+    /* This is the minimum address & size alignment for normal BOs. Aligning
+     * these here helps the cached bufmgr. Especially small BOs, like
+     * constant/uniform buffers, can benefit from better and more reuse.
      */
-    size = align(size, ws->info.gart_page_size);
-    alignment = align(alignment, ws->info.gart_page_size);
+    size = align(size, ws->info.bo_alignment);
+    alignment = align(alignment, ws->info.bo_alignment);
 
     /* Only set one usage bit each for domains and flags, or the cache manager
      * might consider different sets of domains / flags compatible
@@ -780,7 +780,7 @@ static struct pb_buffer *radeon_winsys_bo_from_ptr(struct 
radeon_winsys *rws,
 
     memset(&args, 0, sizeof(args));
     args.addr = (uintptr_t)pointer;
-    args.size = align(size, ws->info.gart_page_size);
+    args.size = align(size, ws->info.bo_alignment);
     args.flags = RADEON_GEM_USERPTR_ANONONLY |
         RADEON_GEM_USERPTR_VALIDATE |
         RADEON_GEM_USERPTR_REGISTER;
@@ -843,7 +843,7 @@ static struct pb_buffer *radeon_winsys_bo_from_ptr(struct 
radeon_winsys *rws,
         pipe_mutex_unlock(ws->bo_handles_mutex);
     }
 
-    ws->allocated_gtt += align(bo->base.size, ws->info.gart_page_size);
+    ws->allocated_gtt += align(bo->base.size, ws->info.bo_alignment);
 
     return (struct pb_buffer*)bo;
 }
@@ -981,9 +981,9 @@ done:
     bo->initial_domain = radeon_bo_get_initial_domain((void*)bo);
 
     if (bo->initial_domain & RADEON_DOMAIN_VRAM)
-        ws->allocated_vram += align(bo->base.size, ws->info.gart_page_size);
+        ws->allocated_vram += align(bo->base.size, ws->info.bo_alignment);
     else if (bo->initial_domain & RADEON_DOMAIN_GTT)
-        ws->allocated_gtt += align(bo->base.size, ws->info.gart_page_size);
+        ws->allocated_gtt += align(bo->base.size, ws->info.bo_alignment);
 
     return (struct pb_buffer*)bo;
 
diff --git a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c 
b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
index 5c85c8f..2d005c8 100644
--- a/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
+++ b/src/gallium/winsys/radeon/drm/radeon_drm_winsys.c
@@ -833,8 +833,8 @@ radeon_drm_winsys_create(int fd, radeon_screen_create_t 
screen_create)
     ws->va_offset = ws->va_start;
     list_inithead(&ws->va_holes);
 
-    /* TTM aligns the BO size to the CPU page size */
-    ws->info.gart_page_size = sysconf(_SC_PAGESIZE);
+    /* TTM aligns the BO address & size to the CPU page size */
+    ws->info.bo_alignment = sysconf(_SC_PAGESIZE);
 
     ws->ncs = 0;
     pipe_semaphore_init(&ws->cs_queued, 0);
-- 
2.8.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to