[Nouveau] Interrupt setting
Shinpei KATO
shinpei at il.is.s.u-tokyo.ac.jp
Sat Mar 13 08:47:24 PST 2010
Just one more thing.
If two commands, (1) simple DMA data copies and (2) fencing, are executed in
this order, it is possible to have the fence value written before completing DMA
data copies, since DMA and GPU are independent, isn't is?
> -----Original Message-----
> From: nouveau-bounces at lists.freedesktop.org
> [mailto:nouveau-bounces at lists.freedesktop.org] On Behalf Of Shinpei KATO
> Sent: Sunday, March 14, 2010 1:37 AM
> To: 'Luca Barbieri'
> Cc: nouveau at lists.freedesktop.org
> Subject: Re: [Nouveau] Interrupt setting
>
> Dear Luca,
>
> > > Since you create one fence object for each pushbuf, I thought that we can
> > > synchronize only with last the command.
> > > Not sure if my assumption is correct...
> > All the commands in the pushbuffer are executed sequentially and the
> > fence setting command is written at the end of the pushbuffer, so when
> > the fence register is updated, all commands will have been already
> > executed.
> >
> > However, this does indeed mean that to wait for the completion of any
> > command, we also need to wait for the completion of all the other
> > commands in the pushbuffer sent in the pushbuf ioctl call.
>
> Interesting... So fencing at the end of the pushbuf ioctl results in
> synchronizing with not necessarily the last command sent from a CPU but with
> the
> last command finished on a GPU.
>
> > This could be improved, but I doubt it is worth the significant
> > additional complexity and CPU performance costs. Userspace can always
> > send commands in smaller chunks if it wants to.
>
> Totally agree with you.
>
> I learned a lot here, thanks!
>
> Best,
> - Shinpei
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/nouveau
More information about the Nouveau
mailing list