Well, I had a "Eureka!" moment and figured out the problem with 2D accel,
which was also the cause of the signal 11 on server shutdown.  "Hidden" in
atiaccel.c there is a second initialization of the framebuffer manager
that was causing XAA to use the entire offscreen area (including our back,
depth and texture areas) for the pixmap cache and offscreen pixmaps.  
What confused me was there was a _third_ intialization in atiscreen.c if
direct rendering is disabled.  I discovered that Gareth had added that and
probably missed the one in atiaccel.c.  So I removed the third init and
bypassed the one in atiaccel.c for the direct rendering path.  Between
that and restoring the registers used by 3D driver in the XAA sync to the
what the Xserver expected, I got 2D accel working.  VT and mode switches
also work now without locking up.

I've also implemented the functions to init and move the back and depth 
buffers (with the exception of depth moves), based on the Rage128 and 
Radeon versions respectively.  This makes moving windows much smoother.  
We've still got some problems with the scissors not being updated 
properly, which can be seen when moving windows.  I've also had lockups 
with the texenv Mesa demo in single-buffered mode, which could be because 
of the scissors or the fact that we don't do cliprects for vertex buffers 
yet.  I'm not sure what the cause is yet.

OK, now for the bad news:  the driver currently allocates only 128 
scanlines for the XAA pixmap cache and offscreen pixmaps.  This is what 
the calculations for the size of the local texture area have been based 
on.  To get good 2D performance, we should probably allocate a full 
viewport's worth of offscreen mem for XAA.  This will put an even bigger 
crunch on cards with less than 8MB of framebuffer mem.  I think we'll need 
to figure out a good tradeoff here, and then include a config option so 
people can decide if 2D or 3D is more important to them.  Dynamic 
allocation of back and depth buffers would help here and would allow using 
higher resolutions on cards with low mem.

For people using Jose's binary packages from the DRI website: this should
appear in the next build (will be named mach64-20020614..., I think), if
you want to try it out.

-- 
Leif Delgass 
http://www.retinalburn.net


_______________________________________________________________

Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to