R600/SI Patchset: Initial support for compute shaders

Tom Stellard tom at stellard.net
Tue Mar 12 10:54:50 PDT 2013


On Tue, Mar 12, 2013 at 11:38:20AM +0100, Michel Dänzer wrote:
> On Mon, 2013-03-11 at 12:20 -0700, Tom Stellard wrote:
> > On Mon, Mar 11, 2013 at 05:24:36PM +0100, Christian König wrote:
> > > >
> > > >2. Allows us to pass 64-bit pointer values to the shader and avoid
> > > >having to deal with arithmetic on 128-bit pointers.  This might not be
> > > >too hard to solve, but it would require some additional work.
> > > 
> > > Why not use the ADDR64 bit in the MUBUF for this instead? If I'm not
> > > completely wrong the resource destribtor can be just a "S_MOV_B64 0"
> > > in this case.
> > 
> > This was my first approach, but even with the ADDR64 bit I couldn't
> > get the instructions to work unless I added the number and data format
> > to the resource descriptor. 
> 
> Could MTBUF work for this instead of MUBUF? The former takes the number
> and data format as instruction operands.
> 

I was able to get the ADDR64 implementation working.  I was using zero
for RSRC dwords 2 and 3, but as Christian pointed out 0 is an illegal
value for the data format field in dword 2.  So now I am using a "magic
constant" for dword 2 that sets one of the data format bits and now
things are working fine.

-Tom
 

> 
> -- 
> Earthling Michel Dänzer           |                   http://www.amd.com
> Libre software enthusiast         |          Debian, X and DRI developer
> 
> 




More information about the llvm-commits mailing list