Brian Paul wrote:
> Keith Whitwell wrote:
>> On Mon, 2010-01-04 at 09:47 -0800, Brian Paul wrote:
>>> Christoph Bumiller wrote:
>>>> On 31.12.2009 12:05, Keith Whitwell wrote:
>>>>> Luca,
>>>>>
>>>>> This is an impressive body of work.  I want to give Jose a chance to
>>>>> review the EGL/GLX extensions before pushing, but in the meantime I hope
>>>>> it's ok if I make a couple of quick suggestions/requests:
>>>>>
>>>>> Firstly, we're going to be evolving the TGSI instruction set a fair bit
>>>>> over the coming months to catch up with newer GLSL versions, CL, etc.
>>>> At that point I'd like to ask if, when all the nice memory spaces
>>>> are introduced to TGSI, these nasty indirect accesses to TEMP
>>>> will go away.
>>>>
>>>> They are really painful to implement because you cannot index
>>>> registers on nv50+ and thus we'd have to regard TEMP as memory.
>>>> And since there is no information in the TGSI tokens about
>>>> what TEMPs constitute an array, we'd have to store and load
>>>> all of them, which would be quite costly.
>>>>
>>>> So I was hoping that, optionally (older cards without actual memory
>>>> won't like it I suppose), the compiler can just generate the
>>>> appropriate stores and loads.
>>> One possibility is to define a new "register" file such as "MEM" that 
>>> would be just like TEMP but would be used for indirectly addressed r/w 
>>> storage (arrays).
>>>
>>> This would give optimizers more information about how storage is used 
>>> and allow for better register allocation.  Some of the program 
>>> optimization code in Mesa currently gives up if it discovers that temp 
>>> registers are indirectly addressed.
>> I think this is pretty much equivalent to restricting indexing to
>> defined ranges of indexable temporaries.  I'm guessing the way that
>> would work is we'd say something like:
>>
>> DECL OUT[0]
>> DECL ADDR[0]
>> DECL INDEXABLE_TEMP V[2][0..10]
>>
>> # Populate temporaries
>> MOV V[2][0], FOO
>> MOV V[2][1], BAR
>>
>> # Extract something with dynamic indexing:
>> MOV OUT[0], V[2][ADDR[0].x]
>> END
>>
>> I think that's pretty much the same as you're proposing.
> 
> Yes, though I think the MEM convention would be easier to work with in 
> the GLSL compiler and gl_program data structures/code.

Backing up a bit:  I'd prefer the MEM convention in core Mesa but that 
could be mapped to INDEXABLE_TEMP in TGSI.  I was thinking of two 
different places but didn't make that clear.

-Brian


------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to