<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Nov 20, 2018 at 6:40 PM Ian Romanick <<a href="mailto:idr@freedesktop.org">idr@freedesktop.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com" target="_blank">ian.d.romanick@intel.com</a>><br>
<br>
Changes in peak memory usage according to Valgrind massif:<br>
<br>
mean soft fp64 using uint64: 1,342,766,051 => 1,010,677,195<br>
gfxbench5 aztec ruins high 11: 62,369,974 => 62,369,974<br>
deus ex mankind divided 148: 62,290,717 => 62,290,717<br>
deus ex mankind divided 2890: 72,105,042 => 71,930,254<br>
dirt showdown 676: 72,243,383 => 72,243,383<br>
dolphin ubershaders 210: 80,650,936 => 80,650,936<br>
<br>
Signed-off-by: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com" target="_blank">ian.d.romanick@intel.com</a>><br>
---<br>
src/intel/compiler/brw_fs.cpp | 6 ++++++<br>
src/intel/compiler/brw_vec4.cpp | 6 ++++++<br>
2 files changed, 12 insertions(+)<br>
<br>
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp<br>
index 3e083723471..e0e6b34d41a 100644<br>
--- a/src/intel/compiler/brw_fs.cpp<br>
+++ b/src/intel/compiler/brw_fs.cpp<br>
@@ -7170,6 +7170,12 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,<br>
prog_data->barycentric_interp_modes =<br>
brw_compute_barycentric_interp_modes(compiler->devinfo, shader);<br>
<br>
+ /* Release memory used by NIR metadata. It is not needed any longer. */<br>
+ nir_foreach_function(function, shader) {<br>
+ if (function->impl)<br>
+ nir_live_ssa_defs_impl_flush(function->impl);<br>
+ }<br>
+<br>
cfg_t *simd8_cfg = NULL, *simd16_cfg = NULL, *simd32_cfg = NULL;<br>
<br>
fs_visitor v8(compiler, log_data, mem_ctx, key,<br>
diff --git a/src/intel/compiler/brw_vec4.cpp b/src/intel/compiler/brw_vec4.cpp<br>
index 74a4d09fc79..3401d999a15 100644<br>
--- a/src/intel/compiler/brw_vec4.cpp<br>
+++ b/src/intel/compiler/brw_vec4.cpp<br>
@@ -2947,6 +2947,12 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,<br>
brw_print_vue_map(stderr, &prog_data->base.vue_map);<br>
}<br>
<br>
+ /* Release memory used by NIR metadata. It is not needed any longer. */<br>
+ nir_foreach_function(function, shader) {<br>
+ if (function->impl)<br>
+ nir_live_ssa_defs_impl_flush(function->impl);<br>
+ }<br></blockquote><div><br></div><div>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.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+<br>
if (is_scalar) {<br>
prog_data->base.dispatch_mode = DISPATCH_MODE_SIMD8;<br>
<br>
-- <br>
2.14.4<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div></div>