[Mesa-dev] [PATCH 00/17] Rework Mesa/ST shader compilation logic (Part 1)
Brian Paul
brianp at vmware.com
Wed Oct 7 11:34:38 PDT 2015
On 10/05/2015 07:26 PM, Marek Olšák wrote:
> Hi,
>
> This is a start of reworking how st/mesa translates and creates shaders. The result of this patch series is this:
>
> In LinkShader or ProgramStringNotify, the shader is translated to TGSI as-is. There are no shader code modifications for shader variants. The glsl-to-tgsi visitor is released.
>
> We can't release the GLSL IR at this point yet, because core Mesa needs it for program resource queries at least.
>
> That's the only place st/mesa interacts with Mesa IR and GLSL IR. After that, it only works with the TGSI representation.
>
> When we get to a draw call, tgsi_transform_shader is used to modify shaders to produce shader variants. It does:
> - feature emulation (color clamping, per-sample shading, edgeflags)
> - adding glDrawPixels shader code
> - adding glBitmap shader code
>
> All the shader transformations are rewritten completely. There is no patching with Mesa IR or glsl-to-tgsi anymore.
>
> It shouldn't be so difficult to add support for some new IR or phase out Mesa IR and GLSL IR support at some point.
>
> The main motivations for this series are:
> - translate to TGSI as soon as possible
> - possibility to create gallium shaders after that if drivers don't need many variants
> - if variants are needed, the path to get them is much simpler
>
> There will be part 2 when it's ready.
>
> Please review. Thanks.
I did a quick review and it looks good. Some nice clean-ups for sure.
Unfortunately, it looks like the conform drawpix.c test is now failing
with this series. It uses glPixelMap so maybe that's it. I'll see if I
can learn more.
-Brian
More information about the mesa-dev
mailing list