[Nouveau] SERIALIZE command

Shinpei KATO shinpei at il.is.s.u-tokyo.ac.jp
Fri Apr 9 16:43:35 PDT 2010


> > By the way, when I was dumping the commands, I sometimes saw 0x00000000
> without any data.
> > Do you have any idea what this value means? (just a NOP?)
> 
> That's probably the null object (handle=0, class=0x30). It's created
> for every channel, see libdrm/nouveau_channel.c:86.

Do we write data (0x00000000) to the pushbuf (chan->cur) when we create an
object?.
Because I see that mostly every pushbuf flush, by the pushbuf_flush()
function, includes multiple 0x00000000 values, which are not written through
BEGIN_RING().
I am not certain who writes these values to the pushbuf.
They may be written through OUT_RING(), but I am sure that they are not
following any header data written through BEGIN_RING().
Do you think it is possible that someone just writes 0x00000000 to the
pushbuf?
FYI, I am dumping the pushbuf in such a way that (1) outputs the data A
(packet header) at the start address of the pushbuf, (2) gets the size X by
(A >> 18 & 0x3fff), (3) skips the address by X * 32, and (4) outputs the
data again.

> >> - m2mf [5039]: memory copies
> >> - eng2d [502d]: 2d engine
> >> - tesla [5097, 8297, 8397, 8597]: 3d engine
> >> - turing [50c0, 85c0]: computation engine: CUDA and the like
> >>
> >> Very likely there are more types, using different engine than PGRAPH,
> but
> >> we
> >> don't know anything about them yet. At the very least there should be
> the
> >> video decoding engine.
> >
> > Got it.
> > Regarding turing, you mean that Nouveau now supports CUDA?
> 
> I think the kernel allows that object to be created, but that's all.
> We don't have any userspace GPGPU library yet.

Ok. Well, it is wonderful if Nouveau supports CUDA in the user space someday
;-)

Thanks,
- Shinpei




More information about the Nouveau mailing list