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
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
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:
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.
mesa-dev mailing list