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

Author: Jason Ekstrand <[email protected]>
Date:   Thu Sep 10 13:56:08 2015 -0700

nir/lower_outputs_to_temporaries: Reparent the output name

We copy the output, make the old output the temporary, and give the
temporary a new name.  The copy keeps the pointer to the old name.  This
works just fine up until the point where we lower things to SSA and delete
the old variable and, with it, the name.  Instead, we should re-parent to
the copy.

Reviewed-by: Eduardo Lima Mitev <[email protected]>

---

 src/glsl/nir/nir_lower_outputs_to_temporaries.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/glsl/nir/nir_lower_outputs_to_temporaries.c 
b/src/glsl/nir/nir_lower_outputs_to_temporaries.c
index b730cad..4ea5fd4 100644
--- a/src/glsl/nir/nir_lower_outputs_to_temporaries.c
+++ b/src/glsl/nir/nir_lower_outputs_to_temporaries.c
@@ -91,6 +91,9 @@ nir_lower_outputs_to_temporaries(nir_shader *shader)
       /* The orignal is now the temporary */
       nir_variable *temp = var;
 
+      /* Reparent the name to the new variable */
+      ralloc_steal(output, output->name);
+
       /* Give the output a new name with @out-temp appended */
       temp->name = ralloc_asprintf(var, "%s@out-temp", output->name);
       temp->data.mode = nir_var_global;

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to