diff options
author | Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> | 2020-08-18 08:31:42 -0400 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2020-08-21 12:55:40 -0700 |
commit | 83c32b9d900eb7d600645a2130de32962a934778 (patch) | |
tree | 915adf5519e35a520841f9df259ea512a46ea63a | |
parent | b4c5c7cbf5421890723b9c9766f3a280725ba2aa (diff) |
panfrost: Use memctx for sysvals
8.74KB leaked over 52 calls from:
0xffffbb5b9fc3
in ??
_mesa_hash_table_init
at ../src/util/hash_table.c:163
in /home/alyssa/rockchip_dri.so
_mesa_hash_table_create
at ../src/util/hash_table.c:186
_mesa_hash_table_u64_create
at ../src/util/hash_table.c:701
in /home/alyssa/rockchip_dri.so
panfrost_nir_assign_sysvals
at ../src/panfrost/util/pan_sysval.c:130
in /home/alyssa/rockchip_dri.so
midgard_compile_shader_nir
at ../src/panfrost/midgard/midgard_compile.c:2905
in /home/alyssa/rockchip_dri.so
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Cc: mesa-stable
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6373>
(cherry picked from commit 680fb05f99d701d2156d231f6b5ae614b146c7ce)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rw-r--r-- | src/panfrost/bifrost/bifrost_compile.c | 2 | ||||
-rw-r--r-- | src/panfrost/midgard/midgard_compile.c | 2 | ||||
-rw-r--r-- | src/panfrost/util/pan_ir.h | 2 | ||||
-rw-r--r-- | src/panfrost/util/pan_sysval.c | 4 |
5 files changed, 6 insertions, 6 deletions
diff --git a/.pick_status.json b/.pick_status.json index beb42c79f92..7c0b29ec762 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -544,7 +544,7 @@ "description": "panfrost: Use memctx for sysvals", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index ed8741ddb5a..79f25f6645f 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -1342,7 +1342,7 @@ bifrost_compile_shader_nir(nir_shader *nir, panfrost_program *program, unsigned nir_print_shader(nir, stdout); } - panfrost_nir_assign_sysvals(&ctx->sysvals, nir); + panfrost_nir_assign_sysvals(&ctx->sysvals, ctx, nir); program->sysval_count = ctx->sysvals.sysval_count; memcpy(program->sysvals, ctx->sysvals.sysvals, sizeof(ctx->sysvals.sysvals[0]) * ctx->sysvals.sysval_count); ctx->blend_types = program->blend_types; diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index c1167c21d66..43434bd4bfc 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -2902,7 +2902,7 @@ midgard_compile_shader_nir(nir_shader *nir, panfrost_program *program, bool is_b /* Assign sysvals and counts, now that we're sure * (post-optimisation) */ - panfrost_nir_assign_sysvals(&ctx->sysvals, nir); + panfrost_nir_assign_sysvals(&ctx->sysvals, ctx, nir); program->sysval_count = ctx->sysvals.sysval_count; memcpy(program->sysvals, ctx->sysvals.sysvals, sizeof(ctx->sysvals.sysvals[0]) * ctx->sysvals.sysval_count); diff --git a/src/panfrost/util/pan_ir.h b/src/panfrost/util/pan_ir.h index 99a8e5ba70f..07c53ee0c42 100644 --- a/src/panfrost/util/pan_ir.h +++ b/src/panfrost/util/pan_ir.h @@ -77,7 +77,7 @@ struct panfrost_sysvals { }; void -panfrost_nir_assign_sysvals(struct panfrost_sysvals *ctx, nir_shader *shader); +panfrost_nir_assign_sysvals(struct panfrost_sysvals *ctx, void *memctx, nir_shader *shader); int panfrost_sysval_for_instr(nir_instr *instr, nir_dest *dest); diff --git a/src/panfrost/util/pan_sysval.c b/src/panfrost/util/pan_sysval.c index 5f67e71f68c..2789c52daaf 100644 --- a/src/panfrost/util/pan_sysval.c +++ b/src/panfrost/util/pan_sysval.c @@ -124,10 +124,10 @@ panfrost_nir_assign_sysval_body(struct panfrost_sysvals *ctx, nir_instr *instr) } void -panfrost_nir_assign_sysvals(struct panfrost_sysvals *ctx, nir_shader *shader) +panfrost_nir_assign_sysvals(struct panfrost_sysvals *ctx, void *memctx, nir_shader *shader) { ctx->sysval_count = 0; - ctx->sysval_to_id = _mesa_hash_table_u64_create(NULL); + ctx->sysval_to_id = _mesa_hash_table_u64_create(memctx); nir_foreach_function(function, shader) { if (!function->impl) continue; |