iris: Tidy BO sizing code and comments
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 26 May 2019 23:21:55 +0000 (16:21 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 30 May 2019 02:42:15 +0000 (19:42 -0700)
Buckets haven't been power of two sized in over a decade.

Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
src/gallium/drivers/iris/iris_bufmgr.c

index 43ac0a144f5db380e70bc368ab00d88515727f8c..60645fbb2cc9f5bab24f075142e90e38a75348ae 100644 (file)
@@ -460,21 +460,14 @@ bo_alloc_internal(struct iris_bufmgr *bufmgr,
 {
    struct iris_bo *bo;
    unsigned int page_size = getpagesize();
-   struct bo_cache_bucket *bucket;
-   uint64_t bo_size;
    bool alloc_pages = false;
+   struct bo_cache_bucket *bucket = bucket_for_size(bufmgr, size);
 
-   /* Round the allocated size up to a power of two number of pages. */
-   bucket = bucket_for_size(bufmgr, size);
-
-   /* If we don't have caching at this size, don't actually round the
-    * allocation up.
+   /* Round the size up to the bucket size, or if we don't have caching
+    * at this size, a multiple of the page size.
     */
-   if (bucket == NULL) {
-      bo_size = MAX2(ALIGN(size, page_size), page_size);
-   } else {
-      bo_size = bucket->size;
-   }
+   uint64_t bo_size =
+      bucket ? bucket->size : MAX2(ALIGN(size, page_size), page_size);
 
    mtx_lock(&bufmgr->lock);