On Tue, Nov 20, 2018 at 6:40 PM Ian Romanick <i...@freedesktop.org> wrote:
> From: Ian Romanick <ian.d.roman...@intel.com> > > Changes in peak memory usage according to Valgrind massif: > > mean soft fp64 using uint64: 1,342,766,051 => 1,010,677,195 > gfxbench5 aztec ruins high 11: 62,369,974 => 62,369,974 > deus ex mankind divided 148: 62,290,717 => 62,290,717 > deus ex mankind divided 2890: 72,105,042 => 71,930,254 > dirt showdown 676: 72,243,383 => 72,243,383 > dolphin ubershaders 210: 80,650,936 => 80,650,936 > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > --- > src/intel/compiler/brw_fs.cpp | 6 ++++++ > src/intel/compiler/brw_vec4.cpp | 6 ++++++ > 2 files changed, 12 insertions(+) > > diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp > index 3e083723471..e0e6b34d41a 100644 > --- a/src/intel/compiler/brw_fs.cpp > +++ b/src/intel/compiler/brw_fs.cpp > @@ -7170,6 +7170,12 @@ brw_compile_fs(const struct brw_compiler *compiler, > void *log_data, > prog_data->barycentric_interp_modes = > brw_compute_barycentric_interp_modes(compiler->devinfo, shader); > > + /* Release memory used by NIR metadata. It is not needed any longer. > */ > + nir_foreach_function(function, shader) { > + if (function->impl) > + nir_live_ssa_defs_impl_flush(function->impl); > + } > + > cfg_t *simd8_cfg = NULL, *simd16_cfg = NULL, *simd32_cfg = NULL; > > fs_visitor v8(compiler, log_data, mem_ctx, key, > diff --git a/src/intel/compiler/brw_vec4.cpp > b/src/intel/compiler/brw_vec4.cpp > index 74a4d09fc79..3401d999a15 100644 > --- a/src/intel/compiler/brw_vec4.cpp > +++ b/src/intel/compiler/brw_vec4.cpp > @@ -2947,6 +2947,12 @@ brw_compile_vs(const struct brw_compiler *compiler, > void *log_data, > brw_print_vue_map(stderr, &prog_data->base.vue_map); > } > > + /* Release memory used by NIR metadata. It is not needed any longer. > */ > + nir_foreach_function(function, shader) { > + if (function->impl) > + nir_live_ssa_defs_impl_flush(function->impl); > + } > I just had a look at this and it looks like nir_sweep will also clean up the metadata. Maybe we should just add a nir_sweep() call to the end of brw_postprocess_nir()? That would clean up other artifacts of stage-specific lowering as well and putting it in brw_postprocess_nir() would make it apply to all stages. > + > if (is_scalar) { > prog_data->base.dispatch_mode = DISPATCH_MODE_SIMD8; > > -- > 2.14.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev