[Mesa-dev] Status of the GLSL->TGSI translator

Brian Paul brianp at vmware.com
Thu Jun 16 07:08:42 PDT 2011


On 06/15/2011 03:38 PM, Bryan Cain wrote:
> My work on the GLSL IR to TGSI translator I announced on the list this
> April is now at the point where I think it is ready to be merged into
> Mesa.  It is stable and doesn't regress any piglit tests on softpipe or
> nv50.
>
> It adds native integer support as required by GLSL 1.30, although it is
> currently disabled for all drivers since GLSL 1.30 support is not
> complete yet and most Gallium drivers haven't implemented the TGSI
> integer opcodes.  (This would be a good time for Gallium driver
> developers to add support for TGSI's integer opcodes, which are
> currently only implemented in softpipe.)
>
> Developing this necessitated significant changes elsewhere in Mesa, and
> some small changes in Gallium.  This means that some of the commits in
> my branch probably need to be reviewed by the developers of those
> components.
>
> If I had commit access to Mesa, I would create a branch for this work in
> the main Mesa repository.  But since I am still waiting on my
> freedesktop.org account to be created, I have pushed the latest version
> to the "glsl-to-tgsi" branch of my personal Mesa repository on GitHub:
>
> Git clone URL: git://github.com/Plombo/mesa.git
> Web interface for viewing commits:
> https://github.com/Plombo/mesa/commits/glsl-to-tgsi
>
> Hopefully my freedesktop.org account will be created soon (I have
> already had my account request approved), so that I can push this to a
> branch in the central repository.

Looks like nice work, Bryan.

Just a few minor questions/comments for now:

1. The st_fragment/vertex/geometry_program structs now have a 
glsl_to_tgsi field.  I did a grep, but I couldn't find where that 
field is assigned.  Can you clue me in?

2. The above mentioned program structs contains an old Mesa 
instruction program AND/OR(?) a GLSL IR.  Do both types of 
representations co-exist sometimes?  Perhaps you could update the 
comments on those structs to explain that.

3. Kind of a follow-on: for glDrawPixels and glBitmap we take the 
original program code (in Mesa form) and prepend extra instructions 
for fetching the fragment color or doing the fragment kill.  Do we 
always have the Mesa instructions for this?  It seems we don't 
normally want to generate Mesa instructions all the time but we still 
need them sometimes.

4. At least one commit message is slightly mis-named: changes to the 
gallium/util/tgsi/ files were labeled as "softpipe".  Not a big deal, 
but maybe be more careful about that.

5. I also see the compilation failure that Dave mentioned.

-Brian


More information about the mesa-dev mailing list