Re: [Dri-devel] Mach64: locking, patch

2001-10-27 Thread Leif Delgass


First off, I messed up on the FIFO size defines in mach64_drv.h (drm 
kernel module), they should be:

#   define MACH64_CMDFIFO_SIZE_MASK 0x0003ul
#   define MACH64_CMDFIFO_SIZE_192  0xul
#   define MACH64_CMDFIFO_SIZE_128  0x0001ul
#   define MACH64_CMDFIFO_SIZE_64   0x0002ul

I was mixing up my hex and binary, yikes! (at least 1 is always 1 so no
harm done) Embarassing.  Don't drink and code.  Anyway...

  Well. I've written a pair of macros to interlock drm and Xdriver and used
  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
  points 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.

What about mode switches?  The mga and i810 drivers use DRILock/DRIUnlock 
in the ModeInit functions, and the r128/radeon drivers have a comment that 
says:

/* FIXME?  DRILock/DRIUnlock here? */

  Anyway, I tried to reenable 2D acceleration and run gears. The engine
  locked after trying to close gears, but the cursor still worked.
 
  My idea is updating the branch with this changes (still without reenabling
  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 the
  DRI context. So, I'm also going to add another change to the host.def file:
 
  -#define BuildXFree86ConfigTools YES
  +#define BuildXFree86ConfigTools NO
 
  In this way, the Imakefile in programs/Xserver/hw/xfree86 will disable this
  tools build:
  ...
  #if !BuildServersOnly || BuildXFree86ConfigTools
  XF86CFGDIRS = 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 ?

I think these changes are fine for the branch, it should speed up the 
build.  We'll just need to make sure not to merge them to the trunk when 
the time comes.

-- 
Leif Delgass 


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



Re: [Dri-devel] Mach64: locking, patch

2001-10-27 Thread Manuel Teira

El Sáb 27 Oct 2001 18:49, Leif Delgass escribió:
 First off, I messed up on the FIFO size defines in mach64_drv.h (drm
 kernel module), they should be:

 #   define MACH64_CMDFIFO_SIZE_MASK 0x0003ul
 #   define MACH64_CMDFIFO_SIZE_192  0xul
 #   define MACH64_CMDFIFO_SIZE_128  0x0001ul
 #   define MACH64_CMDFIFO_SIZE_64   0x0002ul

 I was mixing up my hex and binary, yikes! (at least 1 is always 1 so no
 harm done) Embarassing.  Don't drink and code.  Anyway...

:-)
Fixed.


   Well. I've written a pair of macros to interlock drm and Xdriver and
   used 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 points 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.

 What about mode switches?  The mga and i810 drivers use DRILock/DRIUnlock
 in the ModeInit functions, and the r128/radeon drivers have a comment that
 says:

 /* FIXME?  DRILock/DRIUnlock here? */

I don't know if it's necessary. Perhaps we could try to change the screen
mode while running gears or Quake3. If the machine locks, then, it'll be
necessary. ;-)

   Anyway, I tried to reenable 2D acceleration and run gears. The engine
   locked after trying to close gears, but the cursor still worked.
  
   My idea is updating the branch with this changes (still without
   reenabling 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 the DRI context. So, I'm also going to add another change
   to the host.def file:
  
   -#define BuildXFree86ConfigTools YES
   +#define BuildXFree86ConfigTools NO
  
   In this way, the Imakefile in programs/Xserver/hw/xfree86 will disable
   this tools build:
   ...
   #if !BuildServersOnly || BuildXFree86ConfigTools
   XF86CFGDIRS = 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 ?

 I think these changes are fine for the branch, it should speed up the
 build.  We'll just need to make sure not to merge them to the trunk when
 the time comes.
Well, I think that we (or whoever that do it) don't even try to merge our
host.def to the main trunk, it has nosense.

I think that I will update the CVS branch this night. There aren't very
important changes, but I think that it's better to have the branch as updated
as possible.

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