Treewide: Remove Elements() macro
[mesa.git] / src / gallium / winsys / amdgpu / drm / amdgpu_cs.c
index 9534b972a469f147a139491b4bf7abbf25c59d0f..29692cdb0355e8ad94bc375b79e7c35befc2b577 100644 (file)
@@ -306,7 +306,7 @@ static boolean amdgpu_init_cs_context(struct amdgpu_cs *cs,
       return FALSE;
    }
 
-   for (i = 0; i < Elements(cs->buffer_indices_hashlist); i++) {
+   for (i = 0; i < ARRAY_SIZE(cs->buffer_indices_hashlist); i++) {
       cs->buffer_indices_hashlist[i] = -1;
    }
    return TRUE;
@@ -327,7 +327,7 @@ static void amdgpu_cs_context_cleanup(struct amdgpu_cs *cs)
    cs->used_gart = 0;
    cs->used_vram = 0;
 
-   for (i = 0; i < Elements(cs->buffer_indices_hashlist); i++) {
+   for (i = 0; i < ARRAY_SIZE(cs->buffer_indices_hashlist); i++) {
       cs->buffer_indices_hashlist[i] = -1;
    }
 }
@@ -427,7 +427,7 @@ amdgpu_cs_add_const_preamble_ib(struct radeon_winsys_cs *rcs)
 
 int amdgpu_lookup_buffer(struct amdgpu_cs *cs, struct amdgpu_winsys_bo *bo)
 {
-   unsigned hash = bo->unique_id & (Elements(cs->buffer_indices_hashlist)-1);
+   unsigned hash = bo->unique_id & (ARRAY_SIZE(cs->buffer_indices_hashlist)-1);
    int i = cs->buffer_indices_hashlist[hash];
 
    /* not found or found */
@@ -461,7 +461,7 @@ static unsigned amdgpu_add_buffer(struct amdgpu_cs *cs,
                                  enum radeon_bo_domain *added_domains)
 {
    struct amdgpu_cs_buffer *buffer;
-   unsigned hash = bo->unique_id & (Elements(cs->buffer_indices_hashlist)-1);
+   unsigned hash = bo->unique_id & (ARRAY_SIZE(cs->buffer_indices_hashlist)-1);
    int i = -1;
 
    assert(priority < 64);
@@ -563,6 +563,13 @@ static boolean amdgpu_cs_memory_below_limit(struct radeon_winsys_cs *rcs, uint64
    return gtt < ws->info.gart_size * 0.7;
 }
 
+static uint64_t amdgpu_cs_query_memory_usage(struct radeon_winsys_cs *rcs)
+{
+   struct amdgpu_cs *cs = amdgpu_cs(rcs);
+
+   return cs->used_vram + cs->used_gart;
+}
+
 static unsigned amdgpu_cs_get_buffer_list(struct radeon_winsys_cs *rcs,
                                           struct radeon_bo_list_item *list)
 {
@@ -828,6 +835,7 @@ void amdgpu_cs_init_functions(struct amdgpu_winsys *ws)
    ws->base.cs_lookup_buffer = amdgpu_cs_lookup_buffer;
    ws->base.cs_validate = amdgpu_cs_validate;
    ws->base.cs_memory_below_limit = amdgpu_cs_memory_below_limit;
+   ws->base.cs_query_memory_usage = amdgpu_cs_query_memory_usage;
    ws->base.cs_get_buffer_list = amdgpu_cs_get_buffer_list;
    ws->base.cs_flush = amdgpu_cs_flush;
    ws->base.cs_is_buffer_referenced = amdgpu_bo_is_referenced;