On 1 Feb 2002, Michel [ISO-8859-1] Dänzer wrote:

> On Mit, 2002-01-30 at 15:26, Vladimir Dergachev wrote:
> >
> > On 30 Jan 2002, Michel [ISO-8859-1] Dänzer wrote:
> >
> > > On Mit, 2002-01-30 at 10:32, Vladimir Dergachev wrote:
> > > >
> > > > On 30 Jan 2002, Michel [ISO-8859-1] Dänzer wrote:
> > > >
> > > > > > Btw, while I've been sleeping I thought how we could get CCE support into
> > > > > > Xvideo. The thing I am really against is duplicating code for case with
> > > > > > CCE  and without.
> > > > >
> > > > > Very much agreed. Eliminating that would also do the 2D acceleration
> > > > > much good, where a lot of functions are exact duplicates for both cases.
> > > > >
> > > > > > So, I thought, what about having "Software CCE" ? I.e. always use CCE
> > > > > > commands except that in case when dri driver is not availabe emulate
> > > > > > it. I am fairly certain emulating indirect buffer and 2d commands
> > > > > > would be pretty easy.
> > >
> > > I'm not sure it's so easy BTW. Have you looked at what CCE commands are
> > > available? I wouldn't want to implement a software emulation, but if you
> > > want to, have fun. :)
> >
> > Yes. The fact is you can either DMA them up to CCE engine or write them
> > directly into the FIFO.
>
> Interesting, didn't know that. How would the FIFO be accessed then?
>

Through MMIO registers - don't have the documentation close by to look
this up (I think this was in one of the windows files).

>
> > > >   b) It might turn out that emulating CCE in software is faster then usual
> > > >      OUTREGs
> > >
> > > How? The CCE doesn't do anything besides programming registers, does it?
> >
> > Because, for example, we are batching up register transfers.
>
> I don't understand what you mean, please elaborate.

Well, instead of doing: compute value, OUTREG, compute value, OUTREG,
we'll be doing: compute, compute, compute, OUTREG, OUTREG, OUTREG..
Different order, might turn out to be a little faster.

>
>
> > > >   f) the real problem is not outregs in the code, but INREGs - we'll need
> > > >      to make them CCE aware anyways
> > >
> > > Are you sure that's a problem at all? IIRC the DRM code reads registers
> > > without special precautions about the CCE, but I don't have time to
> > > check right now.
> >
> > This depends on which registers you are reading. Some can be read all the
> > time, but some are not. Regardless, many INREGs depend on previous OUTREGs
> > having actually made it to the hardware.
>
> I hope there's a way besides shutting down the CCE to achieve that?
>

It's not shutting it down really, but rather making sure it has nothing to
in ring buffer to execute. As I understand it the problems comes not from
CCE being active (in the end Radeons are ok with video capture and 3d
DMA transfers going simultaneously), but from the fact that you can
suddenly get entries in the register fifo after WaitForIdle call because
CCE engine put them there.

>
> PS: Please trim the citations in your posts.

Good advice :)) Sometimes I do that, but I generally prefer to leave more
when in doubt. I do not think there is anyone left who reads mail over
2400 baud modem.

                           Vladimir Dergachev

>
> --
> Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
> XFree86 and DRI project member   /  CS student, Free Software enthusiast
>


_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to