<p dir="ltr"><br>
On Mar 23, 2016 1:15 PM, "Rob Clark" <<a href="mailto:robdclark@gmail.com">robdclark@gmail.com</a>> wrote:<br>
><br>
> From: Rob Clark <<a href="mailto:robclark@freedesktop.org">robclark@freedesktop.org</a>><br>
><br>
> Signed-off-by: Rob Clark <<a href="mailto:robclark@freedesktop.org">robclark@freedesktop.org</a>><br>
> ---<br>
>  src/compiler/nir/nir.h       |  1 +<br>
>  src/compiler/nir/nir_clone.c | 16 ++++++++++++++++<br>
>  2 files changed, 17 insertions(+)<br>
><br>
> diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h<br>
> index 69a3084..724aa77 100644<br>
> --- a/src/compiler/nir/nir.h<br>
> +++ b/src/compiler/nir/nir.h<br>
> @@ -2053,6 +2053,7 @@ void nir_print_instr(const nir_instr *instr, FILE *fp);<br>
><br>
>  nir_shader * nir_shader_clone(void *mem_ctx, const nir_shader *s);<br>
>  nir_function_impl *nir_function_impl_clone(const nir_function_impl *fi);<br>
> +nir_variable * nir_variable_clone(nir_variable *var);<br>
><br>
>  #ifdef DEBUG<br>
>  void nir_validate_shader(nir_shader *shader);<br>
> diff --git a/src/compiler/nir/nir_clone.c b/src/compiler/nir/nir_clone.c<br>
> index 7444dfe..03b4fbd 100644<br>
> --- a/src/compiler/nir/nir_clone.c<br>
> +++ b/src/compiler/nir/nir_clone.c<br>
> @@ -149,6 +149,22 @@ clone_variable(clone_state *state, const nir_variable *var)<br>
>     return nvar;<br>
>  }<br>
><br>
> +nir_variable *<br>
> +nir_variable_clone(nir_variable *var)<br>
> +{<br>
> +   clone_state state;<br>
> +   init_clone_state(&state, false);<br>
> +<br>
> +   /* We use the same shader */<br>
> +   state.ns = ralloc_parent(var);<br>
> +<br>
> +   nir_variable *nvar = clone_variable(&state, var);</p>
<p dir="ltr">Do we really need a full-on clone state or can we just make clone_variable not take a state?</p>
<p dir="ltr">> +<br>
> +   free_clone_state(&state);<br>
> +<br>
> +   return nvar;<br>
> +}<br>
> +<br>
>  /* clone list of nir_variable: */<br>
>  static void<br>
>  clone_var_list(clone_state *state, struct exec_list *dst,<br>
> --<br>
> 2.5.0<br>
><br>
</p>