[Mesa-dev] [PATCH] nir/lower_outputs_to_temporaries: Reparent the output name
Eduardo Lima Mitev
elima at igalia.com
Fri Sep 11 05:45:25 PDT 2015
Reviewed-by: Eduardo Lima Mitev <elima at igalia.com>
On 09/10/2015 10:58 PM, Jason Ekstrand wrote:
> 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.
> ---
> 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 fb8070c..9d3a913 100644
> --- a/src/glsl/nir/nir_lower_outputs_to_temporaries.c
> +++ b/src/glsl/nir/nir_lower_outputs_to_temporaries.c
> @@ -97,6 +97,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 at out-temp", output->name);
> temp->data.mode = nir_var_global;
>
More information about the mesa-dev
mailing list