On Fri, Feb 07, 2003 at 09:24:21PM -0500, David Dawes wrote:
>On Fri, Feb 07, 2003 at 05:33:09PM -0800, Michael Cardenas wrote:
>>Hello all.
>>
>>I'm implementing a resolution test in our display control panel, which
>>basically starts a second X server on another terminal with the
>>desired resolution.
>>
>>This seems to work with some cards, but on the intel i810, I get the
>>following error:
>
>What hardare are you using? I just checked and noticed that the
>agpgart isn't being released when switching away for the 830M and
>later. Adding that allows a second X server to be started. If
>DRI is enabled, I notice some contention there when starting the
>second server, so that's something else to watch out for.
>
>If you're using an 830M or later, try this patch. The code for the
>810/815 already has this.
I had another look, and for the 810/815 it doesn't do this when
DRI is enabled. I'm not sure why not. Nothing should be referencing
those mappings when the X server is switched away, so it should be safe
to unbind them. If you're using an 810 or 815, try removing the
'&& !pI810->directRenderingEnabled' part below and see if there are
any bad consequences.
Bool
I810UnbindGARTMemory(ScrnInfoPtr pScrn)
{
I810Ptr pI810 = I810PTR(pScrn);
if (xf86AgpGARTSupported() && !pI810->directRenderingEnabled
&& pI810->GttBound) {
if (pI810->VramKey != -1
&& !xf86UnbindGARTMemory(pScrn->scrnIndex, pI810->VramKey))
return FALSE;
if (pI810->DcacheKey != -1
&& !xf86UnbindGARTMemory(pScrn->scrnIndex, pI810->DcacheKey))
return FALSE;
if (pI810->HwcursKey != -1
&& !xf86UnbindGARTMemory(pScrn->scrnIndex, pI810->HwcursKey))
return FALSE;
if (!xf86ReleaseGART(pScrn->scrnIndex))
return FALSE;
pI810->GttBound = 0;
}
return TRUE;
}
>
>Index: i830_memory.c
>===================================================================
>RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c,v
>retrieving revision 1.5
>diff -u -r1.5 i830_memory.c
>--- i830_memory.c 2002/12/10 01:27:05 1.5
>+++ i830_memory.c 2003/02/08 02:13:15
>@@ -1429,6 +1429,9 @@
> return FALSE;
> }
> #endif
>+ if (!xf86ReleaseGART(pScrn->scrnIndex))
>+ return FALSE;
>+
> pI830->GttBound = 0;
> }
>
>
>David
>--
>David Dawes
>Release Engineer/Architect The XFree86 Project
>www.XFree86.org/~dawes
>_______________________________________________
>XFree86 mailing list
>[EMAIL PROTECTED]
>http://XFree86.Org/mailman/listinfo/xfree86
David
--
David Dawes
Release Engineer/Architect The XFree86 Project
www.XFree86.org/~dawes
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel