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

Reply via email to