Module: Mesa Branch: main Commit: ab859cfffe37eaa263abaf77c5c51a384cc8968b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=ab859cfffe37eaa263abaf77c5c51a384cc8968b
Author: Alyssa Rosenzweig <[email protected]> Date: Wed May 12 18:31:54 2021 -0400 panfrost: Label pools Allows the allocated BOs to be labeled more intelligently. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10866> --- src/gallium/drivers/panfrost/pan_job.c | 5 +++-- src/panfrost/lib/pan_blitter.c | 6 +++--- src/panfrost/lib/pan_indirect_draw.c | 2 +- src/panfrost/lib/pan_pool.c | 7 ++++--- src/panfrost/lib/pan_pool.h | 5 ++++- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c index b33aa5b6296..225d60244c5 100644 --- a/src/gallium/drivers/panfrost/pan_job.c +++ b/src/gallium/drivers/panfrost/pan_job.c @@ -85,12 +85,13 @@ panfrost_batch_init(struct panfrost_context *ctx, /* Preallocate the main pool, since every batch has at least one job * structure so it will be used */ - panfrost_pool_init(&batch->pool, NULL, dev, 0, true, true); + panfrost_pool_init(&batch->pool, NULL, dev, 0, "Batch pool", true, true); /* Don't preallocate the invisible pool, since not every batch will use * the pre-allocation, particularly if the varyings are larger than the * preallocation and a reallocation is needed after anyway. */ - panfrost_pool_init(&batch->invisible_pool, NULL, dev, PAN_BO_INVISIBLE, false, true); + panfrost_pool_init(&batch->invisible_pool, NULL, dev, + PAN_BO_INVISIBLE, "Varyings", false, true); panfrost_batch_add_fbo_bos(batch); } diff --git a/src/panfrost/lib/pan_blitter.c b/src/panfrost/lib/pan_blitter.c index 5322d025c14..fe7b9916093 100644 --- a/src/panfrost/lib/pan_blitter.c +++ b/src/panfrost/lib/pan_blitter.c @@ -1348,7 +1348,7 @@ pan_blit_ctx_init(struct panfrost_device *dev, struct pan_blit_context *ctx) { memset(ctx, 0, sizeof(*ctx)); - panfrost_pool_init(&ctx->pool, NULL, dev, 0, false, true); + panfrost_pool_init(&ctx->pool, NULL, dev, 0, "Blitter pool", false, true); ctx->z_scale = (float)(info->dst.end.z - info->dst.start.z + 1) / (info->src.end.z - info->src.start.z + 1); @@ -1599,11 +1599,11 @@ pan_blitter_init(struct panfrost_device *dev) _mesa_hash_table_create(NULL, pan_blit_blend_shader_key_hash, pan_blit_blend_shader_key_equal); panfrost_pool_init(&dev->blitter.shaders.pool, NULL, dev, - PAN_BO_EXECUTE, false, true); + PAN_BO_EXECUTE, "Blitter shaders", false, true); pthread_mutex_init(&dev->blitter.shaders.lock, NULL); pan_blitter_prefill_blit_shader_cache(dev); - panfrost_pool_init(&dev->blitter.rsds.pool, NULL, dev, 0, false, true); + panfrost_pool_init(&dev->blitter.rsds.pool, NULL, dev, 0, "Blitter RSDs", false, true); dev->blitter.rsds.rsds = _mesa_hash_table_create(NULL, pan_blit_rsd_key_hash, pan_blit_rsd_key_equal); diff --git a/src/panfrost/lib/pan_indirect_draw.c b/src/panfrost/lib/pan_indirect_draw.c index bae6f106f4f..6156038bb8d 100644 --- a/src/panfrost/lib/pan_indirect_draw.c +++ b/src/panfrost/lib/pan_indirect_draw.c @@ -1372,7 +1372,7 @@ panfrost_init_indirect_draw_shaders(struct panfrost_device *dev) */ pthread_mutex_init(&dev->indirect_draw_shaders.lock, NULL); panfrost_pool_init(&dev->indirect_draw_shaders.bin_pool, NULL, dev, - PAN_BO_EXECUTE, false, true); + PAN_BO_EXECUTE, "Indirect draw shaders", false, true); } void diff --git a/src/panfrost/lib/pan_pool.c b/src/panfrost/lib/pan_pool.c index c5eb2b31977..b2044d34705 100644 --- a/src/panfrost/lib/pan_pool.c +++ b/src/panfrost/lib/pan_pool.c @@ -51,7 +51,7 @@ panfrost_pool_alloc_backing(struct pan_pool *pool, size_t bo_sz) * fragment/vertex+tiler pools separate. */ struct panfrost_bo *bo = panfrost_bo_create(pool->dev, bo_sz, - pool->create_flags, "Pool memory"); + pool->create_flags, pool->label); if (pool->owned) util_dynarray_append(&pool->bos, struct panfrost_bo *, bo); @@ -67,13 +67,14 @@ panfrost_pool_alloc_backing(struct pan_pool *pool, size_t bo_sz) void panfrost_pool_init(struct pan_pool *pool, void *memctx, struct panfrost_device *dev, - unsigned create_flags, bool prealloc, - bool owned) + unsigned create_flags, const char *label, + bool prealloc, bool owned) { memset(pool, 0, sizeof(*pool)); pool->dev = dev; pool->create_flags = create_flags; pool->owned = owned; + pool->label = label; if (owned) util_dynarray_init(&pool->bos, memctx); diff --git a/src/panfrost/lib/pan_pool.h b/src/panfrost/lib/pan_pool.h index 84eb170118e..f0b639a6ce4 100644 --- a/src/panfrost/lib/pan_pool.h +++ b/src/panfrost/lib/pan_pool.h @@ -47,6 +47,9 @@ struct pan_pool { /* Within the topmost transient BO, how much has been used? */ unsigned transient_offset; + /* Label for created BOs */ + const char *label; + /* BO flags to use in the pool */ unsigned create_flags; @@ -58,7 +61,7 @@ struct pan_pool { void panfrost_pool_init(struct pan_pool *pool, void *memctx, struct panfrost_device *dev, unsigned create_flags, - bool prealloc, bool owned); + const char *label, bool prealloc, bool owned); void panfrost_pool_cleanup(struct pan_pool *pool); _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
