summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanley Chery <nanley.g.chery@intel.com>2021-12-01 13:45:05 -0500
committerMarge Bot <emma+marge@anholt.net>2021-12-14 07:37:42 +0000
commit7a8bf62ac83e50e9da7a24ae474bcf5c7b2f43d0 (patch)
treef24b6f078377c354923942a984f655b809e70791
parentb77935a83d40746b7a6591b4ca938e5ccd4e8fec (diff)
iris: Use a num_buckets pointer in add_bucket
Store a pointer to the appropriate cache bucket counter, then increment the integer it points to. This keeps us from having to add code for incrementing when a new cache bucket is added. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14012>
-rw-r--r--src/gallium/drivers/iris/iris_bufmgr.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c
index 71d09fd9afd..30ff727a7f1 100644
--- a/src/gallium/drivers/iris/iris_bufmgr.c
+++ b/src/gallium/drivers/iris/iris_bufmgr.c
@@ -1993,22 +1993,18 @@ iris_bo_export_gem_handle_for_device(struct iris_bo *bo, int drm_fd,
static void
add_bucket(struct iris_bufmgr *bufmgr, int size, bool local)
{
- unsigned int i = local ?
- bufmgr->num_local_buckets : bufmgr->num_buckets;
+ int *num_buckets = local ?
+ &bufmgr->num_local_buckets : &bufmgr->num_buckets;
struct bo_cache_bucket *buckets = local ?
bufmgr->local_cache_bucket : bufmgr->cache_bucket;
+ unsigned int i = (*num_buckets)++;
assert(i < ARRAY_SIZE(bufmgr->cache_bucket));
list_inithead(&buckets[i].head);
buckets[i].size = size;
- if (local)
- bufmgr->num_local_buckets++;
- else
- bufmgr->num_buckets++;
-
assert(bucket_for_size(bufmgr, size, local) == &buckets[i]);
assert(bucket_for_size(bufmgr, size - 2048, local) == &buckets[i]);
assert(bucket_for_size(bufmgr, size + 1, local) != &buckets[i]);