On 27 October 2017 at 14:53, Lionel Landwerlin <lionel.g.landwer...@intel.com> wrote: > On 27/10/17 14:46, Emil Velikov wrote: >> >> On 27 October 2017 at 13:55, Tapani Pälli <tapani.pa...@intel.com> wrote: >>> >>> Patch uses mem_ctx for allocation to ensure param array gets freed >>> later, in blorp clear case this happens in blorp_params_get_clear_kernel. >>> >>> ==6164== 48 bytes in 1 blocks are definitely lost in loss record 61 of >>> 193 >>> ==6164== at 0x4C2EB6B: malloc (vg_replace_malloc.c:299) >>> ==6164== by 0x12E31C6C: ralloc_size (ralloc.c:121) >>> ==6164== by 0x130189F1: fs_visitor::assign_constant_locations() >>> (brw_fs.cpp:2095) >>> ==6164== by 0x13022D32: fs_visitor::optimize() (brw_fs.cpp:5715) >>> ==6164== by 0x13024D5A: fs_visitor::run_fs(bool, bool) >>> (brw_fs.cpp:6229) >>> ==6164== by 0x1302549A: brw_compile_fs (brw_fs.cpp:6570) >>> ==6164== by 0x130C4B07: blorp_compile_fs (blorp.c:194) >>> ==6164== by 0x130D384B: blorp_params_get_clear_kernel >>> (blorp_clear.c:79) >>> ==6164== by 0x130D3C56: blorp_fast_clear (blorp_clear.c:332) >>> ==6164== by 0x12EFA439: do_single_blorp_clear (brw_blorp.c:1261) >>> ==6164== by 0x12EFC4AF: brw_blorp_clear_color (brw_blorp.c:1326) >>> ==6164== by 0x12EFF72B: brw_clear (brw_clear.c:297) >>> >>> Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> >>> --- >>> src/intel/compiler/brw_fs.cpp | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/src/intel/compiler/brw_fs.cpp >>> b/src/intel/compiler/brw_fs.cpp >>> index 4616529abc..6b27c38be7 100644 >>> --- a/src/intel/compiler/brw_fs.cpp >>> +++ b/src/intel/compiler/brw_fs.cpp >>> @@ -2092,7 +2092,7 @@ fs_visitor::assign_constant_locations() >>> */ >>> uint32_t *param = stage_prog_data->param; >>> stage_prog_data->nr_params = num_push_constants; >>> - stage_prog_data->param = ralloc_array(NULL, uint32_t, >>> num_push_constants); >>> + stage_prog_data->param = ralloc_array(mem_ctx, uint32_t, >>> num_push_constants); >> >> I'm likely having a dull moment: >> isn't param/stage_prog_data->param freed (via ralloc_free) at the end >> of the function? > > > The old one is freed, here we create a new one. I'm a genius, indeed is. Thanks for Lionel.
-Emil Note to self: Don't skip afternoon coffee :-\ _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev