On Mon, 2002-01-28 at 15:30, Vladimir Dergachev wrote:
> 
> 
> On 28 Jan 2002, Michel [ISO-8859-1] Dänzer wrote:
> 
> > On Mon, 2002-01-28 at 10:00, Vladimir Dergachev wrote:
> > >
> > >
> > > On 28 Jan 2002, Michel [ISO-8859-1] Dänzer wrote:
> > >
> > > > On Mon, 2002-01-28 at 04:54, Davor Buvinic wrote:
> > > > >
> > > > > Yes, running glxgears cause the movie player to crawl and if I start to move
> > > > > or resize their windows X crashes.
> > > > >
> > > > > The movie player is MPlayer, today cvs.
> > > > >
> > > > > Here is my log file from X. As you can see, at the end of the file the
> > > > > following messages appears:
> > > > >
> > > > > [...]
> > > > > (II) R128(0): StopVideo
> > > > > (EE) R128(0): Idle timed out, resetting engine...
> > > > > [...]
> > > >
> > > > I have an idea what the problem could be. The Xv code still uses direct
> > > > register access, even when the CCE is running. That's exactly what we
> > > > want to avoid, because it can crash the chip. :)
> > > >
> > > > I probably won't have time this week to work on a solution but I suggest
> > > > you try either shutting down the CCE before accessing registers or
> > > > adding new Xv functions which use the CCE for register access (à la the
> > > > CCE accel functions). I'd prefer not shutting down the CCE at any rate.
> > > >
> > >
> > > Yes, that's what happens. I do think we need to shutdown CCE because in
> > > some case we want to read registers - and not only write. The short term
> > > solution would be to use XAA->Sync() instead of WaitForEngineIdle because
> > > WaitForEngineIdle does not guarantee the card is quiscent in CCE mode.
> >
> > Sounds like the correct fix, except I don't even see 'WaitForEngineIdle'
> > in my trees - is that a GATOS novelty? :)
> 
> Ahh.. sorry it's called XXXXXWaitForIdle :)) WaitForEngineIdle is how its
> called in ATI sample code.

Okay, but those aren't either in the Xv code I have, (where) have you
added them?

> 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 think that's taking it too far (CCE commands are mostly normal
register writes or complex commands which can be hard to translate into
normal register access), but R128WaitForFifo() and OUTREG() shouldn't be
hard to modify such that they use BEGIN_RING(), OUT_RING_REG() and
ADVANCE_RING() for the CCE case?


-- 
Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer
XFree86 and DRI project member   /  CS student, Free Software enthusiast
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to