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

Brian Paul brianp at vmware.com
Thu Jun 16 08:38:46 PDT 2011


On 06/16/2011 08:41 AM, Jerome Glisse wrote:
> On Thu, Jun 16, 2011 at 10:08 AM, Brian Paul<brianp at vmware.com>  wrote:
>> 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.
>
> I must be missing something but why do we need to take the original program for
> those ?

Fragment programs apply to glDrawPixels, glCopyPixels, glBitmap.

-Brian


More information about the mesa-dev mailing list