[Mesa-dev] [PATCH] nir: Embed the shader_info in the nir_shader again

Timothy Arceri tarceri at itsqueeze.com
Tue May 9 01:35:59 UTC 2017



On 09/05/17 03:54, Jason Ekstrand wrote:
> Commit e1af20f18a86f52a9640faf2d4ff8a71b0a4fa9b changed the shader_info
> from being embedded into being just a pointer.  The idea was that
> sharing the shader_info between NIR and GLSL would be easier if it were
> a pointer pointing to the same shader_info struct.  This, however, has
> caused a few problems:
> 
>   1) There are many things which generate NIR without GLSL.  This means
>      we have to support both NIR shaders which come from GLSL and ones
>      that don't and need to have an info elsewhere.
> 
>   2) The solution to (1) raises all sorts of ownership issues which have
>      to be resolved with ralloc_parent checks.
> 
>   3) Ever since 00620782c92100d77c660f9783504c6d80fa1d58, we've been
>      using nir_gather_info to fill out the final shader_info.  Thanks to
>      cloning and the above ownership issues, the nir_shader::info may not
>      point back to the gl_shader anymore and so we have to do a copy of
>      the shader_info from NIR back to GLSL anyway.
> 
> All of these issues go away if we just embed the shader_info in the
> nir_shader.  There's a little downside of having to copy it back after
> calling nir_gather_info but, as explained above, we have to do that
> anyway.
> 
> Cc: Kenneth Graunke <kenneth at whitecape.org>
> 
> ---

Sorry to see my change is still haunting you :P

I've skimmed over the patch and didn't pick up and obvious issues.

Acked-by: Timothy Arceri <tarceri at itsqueeze.com>


More information about the mesa-dev mailing list