mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
i965: Sweep NIR after linking phase to free held memory
After optimization passes and many trasfromations most of memory
NIR holds is a garbage which was being freed only after shader deletion.
Freeing it at the end of linking will save memory which would be useful
in case there are a lot of complex shaders being compiled.
The common case for this issue is 32bit game running under Wine.
The cost of the optimization is around ~3-5% of compilation speed
with complex shaders.
V2: by Jason Ekstrand
- Move nir_sweep up, right after the last change of NIR
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103274
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Cc: mesa-stable@lists.freedesktop.org
This commit is contained in:
parent
51d6b163da
commit
d219521379
1 changed files with 2 additions and 0 deletions
|
|
@ -317,6 +317,8 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
|
|||
NIR_PASS_V(prog->nir, nir_lower_atomics_to_ssbo,
|
||||
prog->nir->info.num_abos);
|
||||
|
||||
nir_sweep(prog->nir);
|
||||
|
||||
infos[stage] = &prog->nir->info;
|
||||
|
||||
update_xfb_info(prog->sh.LinkedTransformFeedback, infos[stage]);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue