From: Manuel T. <man...@so...> - 2001-10-27 10:37:20
|
El Vie 26 Oct 2001 22:11, Leif Delgass escribi=F3: > Manuel, the hang when switching back from a vt to X with Quake running > hangs both in fullscreen and windowed mode (other GL apps like gears d= on't > exhibit this problem, although there is initially some garbage at the = top > of the screen when returning to X). I'm sure you're right that it has= to > do with the locking (or lack thereof) in the enter/leaveVT. And with = that > I'm heading out, I'll try to do some more investigation tommorow... Well. I've written a pair of macros to interlock drm and Xdriver and use= d it in all the accelerated access from the XDriver. I've also used the DRILock/DRIUnlock API to lock the ATILeaveVT and ATIEnterVT in the aticonsole.c file. After this, we cannot enable 2D accelerated rendering= yet, because the drm and mesa sides are not honouring this interlocking. This= should be made when Frank has the new DMA API finished, because the poi= nts to lock will be less than now (I suppose that we only will need to lock = the actual DMA transfers) because the DMAOUTREG is only going to append the register writes to a DMA buffer. So, I suppose that the EnterVT/LeaveVT = bug is still here, because of a non locking DRM. Anyway, I tried to reenable 2D acceleration and run gears. The engine lo= cked after trying to close gears, but the cursor still worked. My idea is updating the branch with this changes (still without reenabli= ng the 2D acceleration) and Leif ones for the AGP corrections. Leif, I've (#ifdef)ed the AGP code as you told me, but I think that your host.def changes are good for the mach64 branch (disabling the Glide dependencies= and enabling builds of DRM drivers) and I plan update it too. Another secondary issue: I'm still have a problem compiling the branch: = The xf86cfg directory in programs/Xserver/hw/xfree86 needs a lot of shared libraries and I think that there is no need to build this utilities in t= he DRI context. So, I'm also going to add another change to the host.def fi= le: -#define BuildXFree86ConfigTools YES +#define BuildXFree86ConfigTools NO In this way, the Imakefile in programs/Xserver/hw/xfree86 will disable t= his tools build: ... #if !BuildServersOnly || BuildXFree86ConfigTools XF86CFGDIRS =3D xf86cfg xf86config #endif ... and we will need less libraries. Finally, and to accelerate the build, the line: #define XF86CardDrivers tdfx i810 mga ati glint vga should be: #define XF86CardDrivers ati And perhaps: #define XFree86CustomVersion "DRI trunk" should be replaced by: #define XFree86CustomVersion "DRI mach64 branch" Do you agree ? |