Re: DRI on i810

2005-02-02 Thread David Dawes
On Tue, Feb 01, 2005 at 08:11:35PM +, Alan Hourihane wrote:
On Mon, Jan 31, 2005 at 07:27:51PM -0500, David Dawes wrote:
 On Mon, Jan 31, 2005 at 09:20:06AM +, Alan Hourihane wrote:
 On Sun, Jan 30, 2005 at 08:11:38PM -0500, David Dawes wrote:
  Has anyone tried DRI on an i810 with the current tree?  I get a
  ring buffer lockup almost immediately after running glxgears.  This
  is with the current i810 DRM module built and loaded against an
  otherwise stock 2.4.24 kernel.
  
 I've not tried it for a while, but I might be able to give it a go.
 
 I'm also getting lockups with the i810 in 2D with DRI not enabled on at
 least one system.  I haven't narrowed this down yet.

I think this is down to the change I made moving LpRing to an allocated
structure.

Changing the xalloc I was using for the LpRing early in PreInit to xcalloc
seems to have fixed the problem.  It gets referenced before AllocFront(),
and in some ways that assume it is already cleared before then.  That does
fix the problem, both for 2D and 3D/DRI.

Thanks for the feedback.

David
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: DRI on i810

2005-02-01 Thread Alan Hourihane
On Mon, Jan 31, 2005 at 07:27:51PM -0500, David Dawes wrote:
 On Mon, Jan 31, 2005 at 09:20:06AM +, Alan Hourihane wrote:
 On Sun, Jan 30, 2005 at 08:11:38PM -0500, David Dawes wrote:
  Has anyone tried DRI on an i810 with the current tree?  I get a
  ring buffer lockup almost immediately after running glxgears.  This
  is with the current i810 DRM module built and loaded against an
  otherwise stock 2.4.24 kernel.
  
 I've not tried it for a while, but I might be able to give it a go.
 
 I'm also getting lockups with the i810 in 2D with DRI not enabled on at
 least one system.  I haven't narrowed this down yet.

I think this is down to the change I made moving LpRing to an allocated
structure.

The patch below should correct things.

Alan.

Index: i810_driver.c
===
RCS file: 
/home/x-cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v
retrieving revision 1.109
diff -u -r1.109 i810_driver.c
--- i810_driver.c   9 Jan 2005 20:47:19 -   1.109
+++ i810_driver.c   1 Feb 2005 20:11:01 -
@@ -2069,6 +2069,13 @@
pI810 = I810PTR(pScrn);
hwp = VGAHWPTR(pScrn);
 
+   pI810-LpRing = xcalloc(sizeof(I810RingBuffer),1);
+   if (!pI810-LpRing) {
+ xf86DrvMsg(pScrn-scrnIndex, X_ERROR, 
+   Could not allocate lpring data structure.\n);
+ return FALSE;
+   }
+   
miClearVisualTypes();
 
/* Re-implemented Direct Color support, -jens */
@@ -2487,6 +2494,9 @@
 */
xf86GARTCloseScreen(scrnIndex);
 
+   xfree(pI810-LpRing);
+   pI810-LpRing = NULL;
+
pScrn-vtSema = FALSE;
pScreen-CloseScreen = pI810-CloseScreen;
return (*pScreen-CloseScreen) (scrnIndex, pScreen);
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: DRI on i810

2005-02-01 Thread David Dawes
On Tue, Feb 01, 2005 at 08:11:35PM +, Alan Hourihane wrote:
On Mon, Jan 31, 2005 at 07:27:51PM -0500, David Dawes wrote:
 On Mon, Jan 31, 2005 at 09:20:06AM +, Alan Hourihane wrote:
 On Sun, Jan 30, 2005 at 08:11:38PM -0500, David Dawes wrote:
  Has anyone tried DRI on an i810 with the current tree?  I get a
  ring buffer lockup almost immediately after running glxgears.  This
  is with the current i810 DRM module built and loaded against an
  otherwise stock 2.4.24 kernel.
  
 I've not tried it for a while, but I might be able to give it a go.
 
 I'm also getting lockups with the i810 in 2D with DRI not enabled on at
 least one system.  I haven't narrowed this down yet.

I think this is down to the change I made moving LpRing to an allocated
structure.

I already added code early in I810PreInit() to allocate the LpRing.
Without that the driver was segfaulting in I810MapMem().

David
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: DRI on i810

2005-01-31 Thread Alan Hourihane
On Sun, Jan 30, 2005 at 08:11:38PM -0500, David Dawes wrote:
 Has anyone tried DRI on an i810 with the current tree?  I get a
 ring buffer lockup almost immediately after running glxgears.  This
 is with the current i810 DRM module built and loaded against an
 otherwise stock 2.4.24 kernel.
 
I've not tried it for a while, but I might be able to give it a go.

 Separately, the ARGB cursor allocation fails, but presumably that requires
 an updated agpgart module since the stock one fails for AGP_PHYS_MEMORY
 requests larger than one page?

Indeed it does need a later version of agpgart that's available in later
2.4 and 2.6 kernels.

Alan.
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: DRI on i810

2005-01-31 Thread Dr Andrew C Aitchison
David Dawes [EMAIL PROTECTED]:
 Has anyone tried DRI on an i810 with the current tree?  I get a
 ring buffer lockup almost immediately after running glxgears.  This
 is with the current i810 DRM module built and loaded against an
 otherwise stock 2.4.24 kernel.

Can you remind me how to build the i810 DRM module ?
makefile.linux seems to have disappeared.

-- 
Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge
[EMAIL PROTECTED]   http://www.dpmms.cam.ac.uk/~werdna

___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: DRI on i810

2005-01-31 Thread David Dawes
On Mon, Jan 31, 2005 at 10:19:07AM +, Dr Andrew C Aitchison wrote:
David Dawes [EMAIL PROTECTED]:
 Has anyone tried DRI on an i810 with the current tree?  I get a
 ring buffer lockup almost immediately after running glxgears.  This
 is with the current i810 DRM module built and loaded against an
 otherwise stock 2.4.24 kernel.

Can you remind me how to build the i810 DRM module ?
makefile.linux seems to have disappeared.

After a 'make World' there will be a Makefile.linux file in
os-support/linux/drm/kernel/.  However, the workaround that used
to be present to allow a 'make -f Makefile.linux' build to work has
been removed, but I'll either add it back in a slightly modified form,
or change the build location to avoid the need for it.

What does work right now is running 'make install' from
os-support/linux/drm/kernel/, and building the modules in the resulting
$(DESTDIR)ProjectRoot/src/drm/linux/kernel/.

I have noticed that the drm modules no longer build on older 2.4.x kernels.
Does anyone know what the minimum requirements are so that at a minimum
the relevant Makefile can be updated to report this?

David
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


Re: DRI on i810

2005-01-31 Thread David Dawes
On Mon, Jan 31, 2005 at 11:36:41AM -0500, David Dawes wrote:
On Mon, Jan 31, 2005 at 10:19:07AM +, Dr Andrew C Aitchison wrote:
David Dawes [EMAIL PROTECTED]:
 Has anyone tried DRI on an i810 with the current tree?  I get a
 ring buffer lockup almost immediately after running glxgears.  This
 is with the current i810 DRM module built and loaded against an
 otherwise stock 2.4.24 kernel.

Can you remind me how to build the i810 DRM module ?
makefile.linux seems to have disappeared.

After a 'make World' there will be a Makefile.linux file in
os-support/linux/drm/kernel/.  However, the workaround that used
to be present to allow a 'make -f Makefile.linux' build to work has
been removed, but I'll either add it back in a slightly modified form,
or change the build location to avoid the need for it.

I've opted for the latter method.  A patch is attached.  This should
allow building (manually) from os-support/linux/drm/kernel_source/
after a 'make World'.  Let me know if you find problems with it.

David
Index: xc/programs/Xserver/hw/xfree86/os-support/shared/drm/Imakefile.inc
diff -u /dev/null 
xc/programs/Xserver/hw/xfree86/os-support/shared/drm/Imakefile.inc:1.2
--- /dev/null   Mon Jan 31 13:24:22 2005
+++ xc/programs/Xserver/hw/xfree86/os-support/shared/drm/Imakefile.inc  Mon Jan 
31 13:23:58 2005
@@ -0,0 +1,273 @@
+XCOMM $XFree86: 
xc/programs/Xserver/hw/xfree86/os-support/shared/drm/Imakefile.inc,v 1.2 
2005/01/31 18:23:58 dawes Exp $
+/*
+ * Copyright (c) 1994-2005 by The XFree86 Project, Inc.
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * Software), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject
+ * to the following conditions:
+ *
+ *   1.  Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions, and the following disclaimer.
+ *
+ *   2.  Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer
+ *   in the documentation and/or other materials provided with the
+ *   distribution, and in the same place and form as other copyright,
+ *   license and disclaimer information.
+ *
+ *   3.  The end-user documentation included with the redistribution,
+ *   if any, must include the following acknowledgment: This product
+ *   includes software developed by The XFree86 Project, Inc
+ *   (http://www.xfree86.org/) and its contributors, in the same
+ *   place and form as other third-party acknowledgments.  Alternately,
+ *   this acknowledgment may appear in the software itself, in the
+ *   same form and location as other such third-party acknowledgments.
+ *
+ *   4.  Except as contained in this notice, the name of The XFree86
+ *   Project, Inc shall not be used in advertising or otherwise to
+ *   promote the sale, use or other dealings in this Software without
+ *   prior written authorization from The XFree86 Project, Inc.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE XFREE86 PROJECT, INC OR ITS CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DRMCopySubdir
+#define DRMCopySubdir kernel_source
+#endif
+
+DRM_COPY_DIR = DRMCopySubdir
+
+#ifndef LinkSourceFileListToSubdir
+#define LinkSourceFileListToSubdir(step,list,srcdir,subdir)@@\
+step:: @@\
+   MakeDir(subdir) @@\
+   @MakeFlagsToShellFlags(i,set +e); \ @@\
+   UP=`$(REVPATH) subdir`; export UP; \  @@\
+   for i in list; do ( set -x; $(RM) subdir/$$i; \ @@\
+  $(LN) $${UP}srcdir/$$i subdir/$$i); done
+#endif
+
+clean::
+   $(RM) -r $(DRM_COPY_DIR)
+
+/* Need to add SRC_*_BSD definitions */
+
+SRCS_DRM_SHARED = \
+   drm.h \
+   drm_sarea.h
+
+SRCS_DRM_LINUX = \
+   drmP.h \
+   drm_agpsupport.h \
+   drm_auth.h

Re: DRI on i810

2005-01-31 Thread David Dawes
On Mon, Jan 31, 2005 at 09:20:06AM +, Alan Hourihane wrote:
On Sun, Jan 30, 2005 at 08:11:38PM -0500, David Dawes wrote:
 Has anyone tried DRI on an i810 with the current tree?  I get a
 ring buffer lockup almost immediately after running glxgears.  This
 is with the current i810 DRM module built and loaded against an
 otherwise stock 2.4.24 kernel.
 
I've not tried it for a while, but I might be able to give it a go.

I'm also getting lockups with the i810 in 2D with DRI not enabled on at
least one system.  I haven't narrowed this down yet.

 Separately, the ARGB cursor allocation fails, but presumably that requires
 an updated agpgart module since the stock one fails for AGP_PHYS_MEMORY
 requests larger than one page?

Indeed it does need a later version of agpgart that's available in later
2.4 and 2.6 kernels.

OK.

David
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel


DRI on i810

2005-01-30 Thread David Dawes
Has anyone tried DRI on an i810 with the current tree?  I get a
ring buffer lockup almost immediately after running glxgears.  This
is with the current i810 DRM module built and loaded against an
otherwise stock 2.4.24 kernel.

Separately, the ARGB cursor allocation fails, but presumably that requires
an updated agpgart module since the stock one fails for AGP_PHYS_MEMORY
requests larger than one page?

David
___
Devel mailing list
Devel@XFree86.Org
http://XFree86.Org/mailman/listinfo/devel