[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