Mesa (master): i965: Don't try to print the GLSL IR if it has been freed

Neil Roberts nroberts at kemper.freedesktop.org
Mon Jun 29 10:46:49 UTC 2015


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

Author: Neil Roberts <neil at linux.intel.com>
Date:   Fri Jun 26 17:54:15 2015 +0100

i965: Don't try to print the GLSL IR if it has been freed

Since commit 104c8fc2c2aa5621261f8 the GLSL IR will be freed if NIR is
being used. This was causing it to segfault if INTEL_DEBUG=wm is set.
This patch just makes it avoid dumping the GLSL IR in that case.

Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

---

 src/mesa/drivers/dri/i965/brw_program.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c
index 2327af7..85e271d 100644
--- a/src/mesa/drivers/dri/i965/brw_program.c
+++ b/src/mesa/drivers/dri/i965/brw_program.c
@@ -574,10 +574,13 @@ brw_dump_ir(const char *stage, struct gl_shader_program *shader_prog,
             struct gl_shader *shader, struct gl_program *prog)
 {
    if (shader_prog) {
-      fprintf(stderr,
-              "GLSL IR for native %s shader %d:\n", stage, shader_prog->Name);
-      _mesa_print_ir(stderr, shader->ir, NULL);
-      fprintf(stderr, "\n\n");
+      if (shader->ir) {
+         fprintf(stderr,
+                 "GLSL IR for native %s shader %d:\n",
+                 stage, shader_prog->Name);
+         _mesa_print_ir(stderr, shader->ir, NULL);
+         fprintf(stderr, "\n\n");
+      }
    } else {
       fprintf(stderr, "ARB_%s_program %d ir for native %s shader\n",
               stage, prog->Id, stage);




More information about the mesa-commit mailing list