Mesa (master): i965: Delete linked GLSL IR when using NIR.

Kenneth Graunke kwg at kemper.freedesktop.org
Wed Jun 24 19:58:35 UTC 2015


Module: Mesa
Branch: master
Commit: 104c8fc2c2aa5621261f80aa6b4f76c3163078f1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=104c8fc2c2aa5621261f80aa6b4f76c3163078f1

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Thu Jun 11 10:41:53 2015 +0300

i965: Delete linked GLSL IR when using NIR.

This is based on Kenneth's patch to delete 'most of the IR'. Due to
linker changes to clone variables, we can now free all of IR.

Saves 58MB of memory when replaying a Dota 2 trace on Broadwell.

Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Cc: mesa-stable at lists.freedesktop.org

---

 src/mesa/drivers/dri/i965/brw_shader.cpp |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 32c4013..5653d6b 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -387,8 +387,11 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
 
       brw_add_texrect_params(prog);
 
-      if (options->NirOptions)
+      if (options->NirOptions) {
          prog->nir = brw_create_nir(brw, shProg, prog, (gl_shader_stage) stage);
+         ralloc_free(shader->ir);
+         shader->ir = NULL;
+      }
 
       _mesa_reference_program(ctx, &prog, NULL);
    }




More information about the mesa-commit mailing list