On 2002.04.21 02:31 Felix K�hling wrote:
> ...
>
> OK, I checked the mach64-0-0-4-branch out tonight and compiled it. It
> runs surprisingly usable. The only big difference to mach64-0-0-3 which I
> noticed is that all the CPU load is in the kernel now :)
>
Good. I guess that I can start making binary snapshots of this branch as
well.
> > There are locks in place in aticonsole.c for vt/mode switches
> > (xc/programs/Xserver/hw/xfree86/drivers/ati) and in atimach64.c for the
> > XAA functions. The disabled code to initialize 2D acceleration is in
> > ATIMach64AccelInit() in atimach64.c. I guess the first thing to do is
> to
> > make sure that the locks are in the right place, and that the 2D
> driver's
> > state is restored correctly. Currently, if a GL context is active, a
> vt
> > or mode switch will cause a lockup on returning to the X server
> > (ATIEnterVT and ATISwitchMode). Also dragging a window or other XAA
>
> Ok, I checked aticonsole.c. The existing locks seem to be in the right
> places. If I understand the problem correctly I will have to make sure
> that the hardware is in 2d state when the X-server has the lock. This
> means that it has to check whether it had the lock before. Only if not it
> will have to restore 2d state. This mechanism could look similar to
> LOCK_HARDWARE and mach64GetLock in mach64_lock.[ch].
I gave a look into aticonsole.c and it seems that we have everything
that's needed for VT switching. When DMA is working we'll gonna need a
MACH64DMA_START/MACH64DMA_STOP but we still don't have it. Looking at the
TDFX driver (which doesn't do DMA either), it hasn't nothing that the
current Mach64 doesn't has, so I don't understand very well why VT switchs
still locks the system.
>
> ...
>
> As I mentioned before, I don't have another machine to do this. But maybe
> I can build a simple input device which is not used by X to trigger a
> background process to kill the X-server.
>
You could attempt to do something like (with root):
at now + 1 minutes
killall -9 X
^D
and you got 1 minutes to do the testing. If everything worked allright,
you could still stop the job. Check "at" manpage for details.
> ...
>
> Felix
>
Jos� Fonseca
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel