summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/iris/iris_bufmgr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/iris/iris_bufmgr.c')
-rw-r--r--src/gallium/drivers/iris/iris_bufmgr.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c
index 43ac0a144f5..60645fbb2cc 100644
--- a/src/gallium/drivers/iris/iris_bufmgr.c
+++ b/src/gallium/drivers/iris/iris_bufmgr.c
@@ -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);