[prev in list] [next in list] [prev in thread] [next in thread]
List: xfree86-devel
Subject: Re: Linear Allocator (Was Re: Alan H's new linear allocator and Neomagic Xv)
From: Alan Hourihane <alanh () fairlite ! demon ! co ! uk>
Date: 2003-10-30 11:06:45
[Download RAW message or body]
On Thu, Oct 30, 2003 at 10:07:13AM +0000, Alan Hourihane wrote:
> On Thu, Oct 30, 2003 at 08:09:05AM +0000, Andrew C Aitchison wrote:
> > On Wed, 29 Oct 2003, Alan Hourihane wrote:
> >
> > > On Wed, Oct 29, 2003 at 12:26:45PM -0800, Alex Deucher wrote:
> > > > As I recall we had problems with allocating additional memory for Xv on
> > > > neomagic chips (hence the overly_mem option). As I recall there was an
> > > > issue with allocating memory beyond the limits of the blitter, similar
> > > > to the problems with Xv on via (bug 525). Could this issue be resolved
> > > > with Alan H's new linear allocator?
> > >
> > > > From looking at the driver. Yes it can. But I don't have a neomagic
> > > chipset to test.
> >
> > I have a chipset, if someone can can give me pointers to what to look at.
> >
> > I wont be able to look for a week or two, since the hard disk on the
> > laptop has died, and needs to be replaced.
>
> Well, if someone else has a chip, or wants to update and test other
> drivers (but be careful with DRI enabled drivers as it needs more work
> in the driver). Here's a patch to the neomagic that should work, and
> could be used as a template for the other drivers.
>
> That's all. Most Xv (if not all) use linear allocation already and will
> take advantage of it straight away without any furthur modifications.
Actually,
Due to the neomagic driver having different use of NeoFbMapSize, here's
a new followup.
Alan.
Index: neo_driver.c
===================================================================
RCS file: /X11R6/x-cvs/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v
retrieving revision 1.71
diff -u -r1.71 neo_driver.c
--- neo_driver.c 24 Sep 2003 03:16:55 -0000 1.71
+++ neo_driver.c 30 Oct 2003 11:05:23 -0000
@@ -1685,11 +1685,21 @@
AvailFBArea.y1 = 0;
AvailFBArea.x2 = pScrn->displayWidth;
AvailFBArea.y2 = lines;
- xf86InitFBManager(pScreen, &AvailFBArea);
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Using %i scanlines of offscreen memory \n",
+ if (xf86InitFBManager(pScreen, &AvailFBArea)) {
+ int cpp = pScrn->bitsPerPixel / 8;
+ int area = lines * pScrn->displayWidth;
+ int areaoffset = area * cpp;
+ int totalmapsize = (pScrn->videoRam * 1024);
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Using %i scanlines of offscreen memory for area's \n",
lines - pScrn->virtualY);
+
+ if ( xf86InitFBManagerLinear(pScreen, area, (totalmapsize - area))) {
+ xf86DrvMsg(scrnIndex, X_INFO,
+ "Using the rest of offscreen memory for linear (offset=0x%x,size=%3.1fMB)\n", \
areaoffset, (float)(totalmapsize - (areaoffset/(1024*1024)))); + }
+ }
}
/* Setup the acceleration primitives */
_______________________________________________
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic