DRI on i810
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
Re: DRI on i810
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
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
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
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.
Re: DRI on i810
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
Re: DRI on i810
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
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
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