Huh I see this went in already, I've noticed a problem and thought to share it.

Currently program resource list (used by gl api shader queries) is generated in linker, before backend LinkShader call. What this means is that it relies on frontend optimization passes to get rid of dead inputs and outputs. But .. this does not seem to always happen, sometimes these get removed only during backend optimization passes. I have a bug on this as #90925.

There's 2 possibilities to move with this, either move resource list creation to happen after LinkShader (which would mean we should not free IR during LinkShader) or try to fix frontend dead code removal to recognize the case in the bug. I will keep digging why the variable in question is not recognized by the frontend passes, just wanted to let you know!


On 06/11/2015 07:40 PM, Jason Ekstrand wrote:
On Thu, Jun 11, 2015 at 12:41 AM, Tapani Pälli <tapani.pa...@intel.com> wrote:
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.

I think we've saved ~50 MB 3 times now on that one dota trace.  Good work guys!

Signed-off-by: Tapani Pälli <tapani.pa...@intel.com>
---
  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 76285f2..99de1cd 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -297,8 +297,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);
     }
--
2.1.0

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

Reply via email to