R300 idling (new subject)

Michel Dänzer michel at daenzer.net
Sun Dec 19 14:35:05 PST 2004


On Sat, 2004-12-18 at 14:42 -0500, Vladimir Dergachev wrote:
> 
> On Sat, 18 Dec 2004, Michel [ISO-8859-1] Dnzer wrote:
> 
> > On Sat, 2004-12-18 at 02:05 -0500, Vladimir Dergachev wrote:
> >>
> >> On Sat, 18 Dec 2004, Michel [ISO-8859-1] Dnzer wrote:
> >>
> >>> On Fri, 2004-12-17 at 11:21 -0500, Vladimir Dergachev wrote:
> >>>>
> >>>> Calling DO_CP_IDLE is a hack no matter where you put it - the right way to
> >>>> do things is to do a proper cache flush (plus whatever magic is required)
> >>>> each time 3d activity is followed by 2d one.
> >>>
> >>> So is emitting the cache flush(es) in EnterServer() not enough?
> >>
> >> No.
> >
> > Not even instead of the current sledgehammer hack?
> 
> The reason for it that simply instructing R300 to flash all caches is not 
> enough. One gets a lockup. The command streams that we have that are known 
> to work perform some "magic" sequence of writes to registers to get it to 
> a sane state.
> 
> I wanted to have a driver that would be compatible with developing code so 
> that people can test things without the need to recompile X.

Right now, those people will need an experimental or at least bleeding
edge DRM anyway, won't they? 

> >> and a proper DRM driver must be able to prevent lockups in case user-space
> >> client screws up.
> >>
> >> So either the packet validation code or ioctls will have to deal with
> >> 3d->2d transition.
> >
> > Maybe you're right, and considering the above, it may even be relatively
> > simple to do. But then I still don't understand why you put such a hack
> > into the X tree, before even asking for other ideas?
> 
> Thing is I don't understand why you are so opposed to this ?

Because it hurts my sense of aesthetics, for one. ;) Seriously though,
considering all of the above and that you yourself say the real solution
should be in the DRM, I don't understand why you put such an experiment
in the X code.

But again, what really struck me as bad is that you did it without any
prior discussion. If you're not sure what the best way to do something
is, please ask for other opinions first.


> Lastly, it is CVS head after all - what is wrong with committing working 
> code that facilitates further development ?

You say yourself it doesn't ultimately belong there, but now it may end
up in a release.

> (For example, I am trying to get render acceleration working on R300 
> cards - this would involve actual use of 3d engine).

If you get that far, hopefully you'll know how to handle this correctly.


-- 
Earthling Michel Dänzer      |     Debian (powerpc), X and DRI developer
Libre software enthusiast    |   http://svcs.affero.net/rm.php?r=daenzer



More information about the xorg mailing list