Mesa (main): zink: clamp descriptor allocation bucket sizing to defined limit

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jul 22 01:42:17 UTC 2021


Module: Mesa
Branch: main
Commit: 559e009af19c26b534bc1dec35f8ff0488e83982
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=559e009af19c26b534bc1dec35f8ff0488e83982

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri May 21 16:45:08 2021 -0400

zink: clamp descriptor allocation bucket sizing to defined limit

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11690>

---

 src/gallium/drivers/zink/zink_descriptors.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c
index 71f4291e3d2..7c312e5c126 100644
--- a/src/gallium/drivers/zink/zink_descriptors.c
+++ b/src/gallium/drivers/zink/zink_descriptors.c
@@ -609,6 +609,8 @@ allocate_desc_set(struct zink_context *ctx, struct zink_program *pg, enum zink_d
       for (unsigned desc_factor = DESC_BUCKET_FACTOR; desc_factor < descs_used; desc_factor *= DESC_BUCKET_FACTOR)
          bucket_size = desc_factor;
    }
+   /* never grow more than this many at a time */
+   bucket_size = MIN2(bucket_size, ZINK_DEFAULT_MAX_DESCS);
    VkDescriptorSet *desc_set = alloca(sizeof(*desc_set) * bucket_size);
    if (!zink_descriptor_util_alloc_sets(screen, push_set ? ctx->dd->push_dsl[is_compute]->layout : pg->dsl[type + 1], pool->descpool, desc_set, bucket_size))
       return VK_NULL_HANDLE;



More information about the mesa-commit mailing list