summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>2020-08-18 08:31:42 -0400
committerDylan Baker <dylan.c.baker@intel.com>2020-08-21 12:55:40 -0700
commit83c32b9d900eb7d600645a2130de32962a934778 (patch)
tree915adf5519e35a520841f9df259ea512a46ea63a
parentb4c5c7cbf5421890723b9c9766f3a280725ba2aa (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.json2
-rw-r--r--src/panfrost/bifrost/bifrost_compile.c2
-rw-r--r--src/panfrost/midgard/midgard_compile.c2
-rw-r--r--src/panfrost/util/pan_ir.h2
-rw-r--r--src/panfrost/util/pan_sysval.c4
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;