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.

BTW, I'm not completely sure I understand the INDEXABLE_TEMP syntax in 
your example.

-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