Could it be pushed? The commit is independent from other in series.

- Danil


On 12.07.18 00:27, Jason Ekstrand wrote:
Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net <mailto:ja...@jlekstrand.net>>

On Wed, Jul 11, 2018 at 5:29 AM Danylo Piliaiev <danylo.pilia...@gmail.com <mailto:danylo.pilia...@gmail.com>> wrote:

    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.pilia...@globallogic.com
    <mailto:danylo.pilia...@globallogic.com>>
    ---
     src/mesa/drivers/dri/i965/brw_link.cpp | 2 ++
     1 file changed, 2 insertions(+)

    diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp
    b/src/mesa/drivers/dri/i965/brw_link.cpp
    index 1071056f14..378426101b 100644
    --- a/src/mesa/drivers/dri/i965/brw_link.cpp
    +++ b/src/mesa/drivers/dri/i965/brw_link.cpp
    @@ -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]);
-- 2.17.1


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to