diff options
author | dawes <dawes> | 2000-11-30 18:49:38 +0000 |
---|---|---|
committer | dawes <dawes> | 2000-11-30 18:49:38 +0000 |
commit | 055ef92b0fcbf4afffd0a6b1e0593f3e9c44b623 (patch) | |
tree | c75c2f8883c8b6fff44f9c7b0aea55be7c4f3001 /xc/programs | |
parent | d129f7fd02961869422c111dd8c3cf824bc54243 (diff) |
XFree86 4.0.1f mergeX_4_0_1f-20001130-merge
Diffstat (limited to 'xc/programs')
47 files changed, 483 insertions, 183 deletions
diff --git a/xc/programs/Xserver/GL/dri/dri.c b/xc/programs/Xserver/GL/dri/dri.c index bbc8622db..23f410b53 100644 --- a/xc/programs/Xserver/GL/dri/dri.c +++ b/xc/programs/Xserver/GL/dri/dri.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/GL/dri/dri.c,v 1.21 2000/09/26 15:57:01 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/GL/dri/dri.c,v 1.22 2000/11/08 05:02:55 dawes Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Config.c b/xc/programs/Xserver/hw/xfree86/common/xf86Config.c index 49e5b540a..2556136e6 100644 --- a/xc/programs/Xserver/hw/xfree86/common/xf86Config.c +++ b/xc/programs/Xserver/hw/xfree86/common/xf86Config.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.234 2000/11/06 19:24:06 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.235 2000/11/14 18:20:36 dawes Exp $ */ /* @@ -41,7 +41,7 @@ extern DeviceAssocRec mouse_assoc; #if (defined(i386) || defined(__i386__)) && \ (defined(__FreeBSD__) || defined(__NetBSD__) || defined(linux) || \ - (defined(SVR4) && !defined(sun))) + (defined(SVR4) && !defined(sun)) || defined(__GNU__)) #define SUPPORT_PC98 #endif diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp b/xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp index b577262a7..8a0a8ea33 100644 --- a/xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp +++ b/xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp @@ -2,7 +2,7 @@ VA Linux Systems, Inc. Professional Services - Graphics. - 8 August 2000 + 29 October 2000 1. Preamble @@ -403,7 +403,7 @@ Issue the following commands: cd /usr/X11R6/bin mv Xwrapper Xwrapper.old rm X - ln -s /usr/X11R6-4.0.1/lib/X11/XFree86 X + ln -s /usr/X11R6-DRI/bin/XFree86 X This will cause the new X server to be used instead of the original one. @@ -486,7 +486,7 @@ At this point your X server should be up and running with hardware-acceler- ated direct rendering. Please read the DRI User Guide for information about trouble shooting and how to use the DRI-enabled X server for 3D applications. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.6 2000/09/24 13:51:26 alanh Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.7 2000/11/08 05:03:03 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp,v 3.3 2000/11/06 22:07:05 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp,v 3.4 2000/11/16 15:50:04 dawes Exp $ diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml index f4dd63b09..4a533cc4a 100644 --- a/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml +++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml @@ -15,7 +15,7 @@ <date>20 November 2000 <ident> - $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.8 2000/09/24 13:51:26 alanh Exp $ + $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.12 2000/11/16 18:36:25 dawes Exp $ </ident> <toc> @@ -74,16 +74,53 @@ Edits, corrections and updates to this document may be mailed to brianp@valinux.com. + <sect>Supported Architectures & Hardware + <p> + <sect1>Architectures + <p> + The Architectures currently supported by the DRI have grown + from the initial Intel i386 based machines to now include, + the Alpha Processor and the Sun SPARC machines. - <sect>Supported Hardware -<p> - 3D acceleration is currently only available for systems with - Intel-compatible CPUs. - Support for Alpha, and perhaps other CPUs, should be available in the - future. - <p> - XFree86 4.0 (or later versions) includes 3D acceleration for the - following graphics hardware: + The build environment for both of these new architectures + have a pre-build environment that will correctly build the + DRI drivers and Mesa meaning no extra configuration is necessary + to build the DRI for these architectures. + + <sect2>Alpha Features + <p> + On newer Alpha processors, it should be noted that a + significant performance increase can be seen with the + addition of the -mcpu= command that should be passed to + GCC upon compilation. Dependent of the architecture of the + processor, for example -mcpu=ev6 will build specifically + for the EV6 based AXP's, giving both byte and word alignment + access to the DRI/Mesa drivers. + + Use this as an example of compiling with this extra speed. + In your host.def file that should reside in the xc/config + directory, add the line. + + #define DefaultCCOptions -ansi GccWarningOptions -pipe -mcpu=ev6 + + Additional speed improvements to 3D rendering can be achieved + by installing Compaq's Math Libraries (CPML) which can be + obtained from the following URL. + + http://www.support.compaq.com/alpha-tools/software/index.html + + Once installed, you can set this option in your host.def + to build against the CPML libraries. + + #define UseCompaqMathLibrary YES + + <sect1> Graphics Hardware + <p> + XFree86 4.0 (or later versions) includes 3D acceleration for the + following graphics hardware: + + NOTE: This is a complete list of graphics hardware supported. It + may not be supported on your platform. <itemize> <item>3dfx: @@ -766,7 +803,7 @@ The Voodoo5 supports 3D rendering in 16 and 32 bpp modes. When running in 32bpp mode an 8-bit stencil buffer and 24-bit Z (depth) buffer are offered. - When running in 32bpp mode only a 16-bit Z (depth) buffer is + When running in 16bpp mode only a 16-bit Z (depth) buffer is offered and stencil is implemented in software. <p> A software-based accumulation buffer is available in both diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml index a6ce69277..d8974f398 100644 --- a/xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml +++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml @@ -15,7 +15,7 @@ <date>29 October 2000 <ident> - $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.6 2000/09/24 13:51:26 alanh Exp $ + $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.7 2000/11/08 05:03:03 dawes Exp $ </ident> <toc> diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h index c024e35d3..680d076f0 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h,v 1.1 2000/11/02 16:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h,v 1.2 2000/11/09 03:24:35 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c index 7ba150663..5b68c8cd3 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c,v 1.1 2000/11/02 16:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_accel.c,v 1.2 2000/11/09 03:24:35 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_cursor.c index 7bd580fb0..23ae3d7da 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_cursor.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_cursor.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_cursor.c,v 1.1 2000/11/02 16:55:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_cursor.c,v 1.2 2000/11/09 03:24:35 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c index 9bfc7daeb..fd4b93fa0 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c,v 1.1 2000/11/02 16:55:32 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dga.c,v 1.2 2000/11/09 03:24:35 martin Exp $ */ /* * Authors: * Ove Kĺven <ovek@transgaming.com>, diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c index a1228da9f..50dd50c7d 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c,v 1.2 2000/11/03 01:15:49 martin Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c,v 1.3 2000/11/09 03:24:35 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.h index b74deaa43..db0100b67 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.h,v 1.1 2000/11/02 16:55:33 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.h,v 1.2 2000/11/09 03:24:35 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h index 7c2ff59c7..e0fe31bbe 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h,v 1.1 2000/11/02 16:55:34 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dripriv.h,v 1.2 2000/11/09 03:24:35 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c index 4833a0670..3db0ab519 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v 1.2 2000/11/08 23:13:10 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v 1.3 2000/11/09 03:24:35 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c index b7d680df4..b96bb4702 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c,v 1.1 2000/11/02 16:55:37 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c,v 1.2 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h index b7fafe8d1..9d09c7ef3 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h,v 1.1 2000/11/02 16:55:37 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h,v 1.2 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h index 916acefb8..f94b74dfe 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h,v 1.1 2000/11/02 16:55:37 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h,v 1.2 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_sarea.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_sarea.h index 2683b75e0..e7bc1f539 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_sarea.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_sarea.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_sarea.h,v 1.1 2000/11/02 16:55:38 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_sarea.h,v 1.2 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_video.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_video.c index cb1c68c05..d1446b767 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_video.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_video.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_video.c,v 1.1 2000/11/02 16:55:39 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_video.c,v 1.2 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 2000 Stuart R. Anderson and Metro Link, Inc. * diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h index b37f12d16..745795e8b 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h,v 1.1 2000/11/02 16:55:40 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h,v 1.3 2000/11/09 10:30:53 alanh Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. @@ -31,6 +31,7 @@ * Authors: * Kevin E. Martin <martin@valinux.com> * Rickard E. Faith <faith@valinux.com> + * Alan Hourihane <ahourihane@valinux.com> * */ diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c index d920ba56c..acc7cc235 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c,v 1.2 2000/11/03 09:52:54 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_accel.c,v 1.3 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c index ceb7b36da..f24327408 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c,v 1.1 2000/11/02 16:55:41 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_cursor.c,v 1.2 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c index dc064947f..e41984df3 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c,v 1.2 2000/11/03 09:52:55 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dga.c,v 1.3 2000/11/09 03:24:36 martin Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c index c4e1a66db..d30bac412 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.4 2000/11/08 23:21:27 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.6 2000/11/09 10:30:53 alanh Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. @@ -31,6 +31,7 @@ * Authors: * Kevin E. Martin <martin@valinux.com> * Rickard E. Faith <faith@valinux.com> + * Alan Hourihane <ahourihane@valinux.com> * * Credits: * diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c index d6e1205d2..9260cc39b 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c,v 1.1 2000/11/02 16:55:44 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.c,v 1.2 2000/11/09 03:24:37 martin Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h index faf79cd67..5a66d002c 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h,v 1.1 2000/11/02 16:55:45 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h,v 1.2 2000/11/09 03:24:37 martin Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h index 170cb3332..4af590a3e 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h,v 1.1 2000/11/02 16:55:46 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_reg.h,v 1.3 2000/11/09 10:30:53 alanh Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. @@ -31,6 +31,7 @@ * Authors: * Kevin E. Martin <martin@valinux.com> * Rickard E. Faith <faith@valinux.com> + * Alan Hourihane <ahourihane@valinux.com> * * References: * diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c index 9a3f4fe23..550324ed7 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c,v 1.1 2000/11/02 16:55:47 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c,v 1.3 2000/11/09 10:30:54 alanh Exp $ */ /* * Copyright 2000 Stuart R. Anderson and Metro Link, Inc. * @@ -42,6 +42,7 @@ * should be brought forward. * * RADEON ALERT ! + * Alan Hourihane <ahourihane@valinux.com> * This is an extremely quick port to the Radeon, it hasn't been tested * thoroughly, although it appears to work. */ diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3 b/xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3 index 3d5835856..5519a8713 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3 +++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3,v 1.3 2000/10/17 09:07:03 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/README.pm3,v 1.4 2000/11/14 17:32:59 dawes Exp $ */ STATUS as of Mon, 16 Oct 2000 21:24:51 +0200 @@ -7,7 +7,8 @@ Working : 1280x1024 only as my monitor don't support higher modes. * HW cursor. * ShadowFb works. - * Full 2D Accels. (Need testing and tuning on big endian systems.) + * Full 2D Accels. + - It should be endian clean, need testing on a big endian box though. - Sync. - Pixmap cache. - Offscreen pixmaps. @@ -17,13 +18,22 @@ Working : - HorVert Solid Lines . - 8x8 Mono Pattern Fills. - Color Expansion Fills. + - Bitmap Writes using direct FIFO writes with or without FIFO Disconnect. - Images Writes. + - Pixmap Writes using direct FIFO writes with or without FIFO Disconnect. * Appian J2000 second head initialization. * Dual head : The console fonts will get trashed, but dual head works. + * DRI : + - Gamma, if available, get's claimed with the UseGamma option. Not Working : - * 2D Accel hooks not implemented : + * 2D Accel : - Solid & Dashed Lines are not possible on glint hardware. - 8x8 Color Pattern Fill is almost never used. + - Clipping needs cleaning up. + * 2D Accel hooks for the Rendering extension ? + - Render extension initialization. + - CPUToScreenTexture. + - CPUToScreenAlphaTexture. * Video Overlay. * DRI. @@ -33,12 +43,19 @@ Known Problem : the vga graphics index & port (GraphicsIndexReg : 0x63ce, GraphicsPort : 0x3cf). I had to use IO acces for both these two, because if not, console fonts would get trashed even in mono headed mode. + [FIX] Well, if you really need the console and are running linux, just use + vesafb, it will be a bit slower, but the fonts will no more become + corrupt. Maybe i will even try writting a specific fbdev for the pm3, + which will be much faster and have more functionality. * R-B inversion. Sometimes, all of a sudden, it seems as the RGB order gets changed. going to console and back solves this. * [TRIGGERED IN ENLIGTHENMENT ONLY] When moving a window around a lot quicly, the video outputs dies. I have to switch to a console and back to have it restored. Is it possible that the accel engine gets - overloaded or something such ? + overloaded or something such ? Don't think so, it happens even when + PCIRetry is used too ... + * Sometimes there are blue transparent garbage in the form of small + horizontal bands, few pixels high, and more pixels width, maybe 64pixels ? Video Overlay [NOTHING DONE YET] : @@ -55,3 +72,26 @@ DRI/3D Accels [NOTHING DONE YET] : pm3 drm kernel driver as well as a pm3 OpenGL driver. Could be useful for boards without gamma chips though. + * Claiming the Gamma (in the one head only approach) : + - The first possibility is the use of the UseGamma Option in the driver + section. The UseGamma option then tries to claim a gamma chip, if + available, on the same device. This enable the use of the gamma on + either head, in a two head setup. + - The second possibility is the automatic claiming of a gamma chip if + available. This works ok in single headed mode, but in dual head setup, + only the first head will be accelerated. + * Using the Gamma : + - A first try of using the Gamma (for 2D only) gave me a system freeze. + This is probably due to bad initialization since i only set the IOBase + to the Gamma registers, and did nothing more to initialize the Gamma. + I need more info on initialization of the Gamma chip, especially on how + to tell it which Permedia3 to use. + - A Second try, after initializing MultiGLINTAperture and MultiGLINT1 did + end in the same way. + - Once that is done, i need to write a pm3_dri.c file, inspired on the + glint_dri.c file, which does the dri setup, and the 2d/3d state saving. + * Changes to the 2D driver when using the Gamma : + - Well, there could be some changes, but in particular, the Gamma has only + a 32 entries deep Input FIFO, and not a 120 entries deep one like + permedia3. + diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h index 41adfd348..d7467a00d 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h,v 1.36 2000/10/17 09:07:04 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h,v 1.37 2000/11/14 17:32:59 dawes Exp $ */ /* * Copyright 1997,1998 by Alan Hourihane <alanh@fairlite.demon.co.uk> * @@ -146,6 +146,11 @@ typedef struct { int PM3_Render2D; int PM3_AreaStippleMode; int PM3_VideoControl; + Bool PM3_UseGamma; + pciVideoPtr PM3_GammaPciInfo; + PCITAG PM3_GammaPciTag; + CARD32 PM3_GammaIOAddress; + unsigned char * PM3_GammaIOBase; #ifdef XF86DRI Bool directRenderingEnabled; DRIInfoPtr pDRIInfo; diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c index 8744c7c91..827aaad3d 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c @@ -28,7 +28,7 @@ * this work is sponsored by S.u.S.E. GmbH, Fuerth, Elsa GmbH, Aachen, * Siemens Nixdorf Informationssysteme and Appian Graphics. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.98 2000/10/17 09:07:04 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.99 2000/11/14 17:32:59 dawes Exp $ */ #include "fb.h" #include "cfb8_32.h" @@ -179,10 +179,12 @@ typedef enum { OPTION_OVERLAY, OPTION_SHADOW_FB, OPTION_FBDEV, - OPTION_NOWRITEBITMAP + OPTION_NOWRITEBITMAP, + OPTION_PM3_USE_GAMMA } GLINTOpts; static OptionInfoRec GLINTOptions[] = { + { OPTION_PM3_USE_GAMMA, "UseGamma", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_SW_CURSOR, "SWcursor", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_HW_CURSOR, "HWcursor", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_PCI_RETRY, "PciRetry", OPTV_BOOLEAN, {0}, FALSE }, @@ -1205,6 +1207,57 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags) xf86DrvMsg(pScrn->scrnIndex, from, "Chipset: \"%s\"\n", pScrn->chipset); + /* SVEN : Claim a Gamma chip if available. */ + if (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) { + int eIndex = -1; + from = X_DEFAULT; + pGlint->PM3_UseGamma = FALSE; + if (xf86ReturnOptValBool(GLINTOptions, OPTION_PM3_USE_GAMMA, FALSE)) { + from = X_CONFIG; + pGlint->PM3_UseGamma = TRUE; + } + xf86DrvMsg(pScrn->scrnIndex, from, "%s to use Gamma with Permedia 3.\n", + (pGlint->PM3_UseGamma ? "Trying" : "Not trying")); + if (pGlint->PM3_UseGamma) { + pciVideoPtr *checkusedPci; + checkusedPci = xf86GetPciVideoInfo(); + while (*checkusedPci != NULL) { + /* Is there a free gamma on the same device ? */ + if (((*checkusedPci)->chipType == PCI_CHIP_GAMMA) && + (((*checkusedPci)->bus == pGlint->PciInfo->bus)) && + (((*checkusedPci)->device == pGlint->PciInfo->device))) + if ((eIndex = xf86ClaimPciSlot((*checkusedPci)->bus, + (*checkusedPci)->device, + (*checkusedPci)->func, + pScrn->drv, -1, + NULL, FALSE)) != -1) break; + } + checkusedPci++; + } + if (eIndex == -1) { + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "No free Gamma chip was found.\n"); + pGlint->PM3_UseGamma = FALSE; + } else { + unsigned int r; + /* Add the Gamma to the screen info structure. */ + xf86AddEntityToScreen(pScrn,eIndex); + pGlint->PM3_GammaPciInfo = + xf86GetPciInfoForEntity(eIndex); + pGlint->PM3_GammaPciTag = pciTag( + pGlint->PM3_GammaPciInfo->bus, + pGlint->PM3_GammaPciInfo->device, + pGlint->PM3_GammaPciInfo->func); + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "Gamma Claimed at BusID PCI:%d:%d:%d.\n", + pGlint->PM3_GammaPciInfo->bus, + pGlint->PM3_GammaPciInfo->device, + pGlint->PM3_GammaPciInfo->func); + /* Let's dump the Gamma registers, at least some of them ... */ + pGlint->PM3_GammaIOAddress = + pGlint->PM3_GammaPciInfo->memBase[0] & 0xFFFFC000; + } + } if ((pGlint->Chipset == PCI_VENDOR_TI_CHIP_PERMEDIA2) || (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) || (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA2V) || @@ -1261,6 +1314,11 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags) */ pGlint->IOAddress = pGlint->pEnt->device->IOBase; from = X_CONFIG; +#if 0 /* This freezes the box, why ? */ + } else if ((pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) && + pGlint->PM3_UseGamma) { + pGlint->IOAddress = pGlint->PM3_GammaPciInfo->memBase[0] & 0xFFFFC000; +#endif } else { pGlint->IOAddress = pGlint->PciInfo->memBase[0] & 0xFFFFC000; } @@ -2036,6 +2094,7 @@ GLINTUnmapMem(ScrnInfoPtr pScrn) xf86UnMapVidMem(pScrn->scrnIndex, (pointer)pGlint->FbBase, pGlint->FbMapSize); pGlint->FbBase = NULL; + TRACE_EXIT("GLINTUnmapMem"); return TRUE; } @@ -2308,7 +2367,6 @@ GLINTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Timing problem with PM3 & PM2V chips dont like being blasted */ /* This solves the dual head problem but trahses the console font. */ - if (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) { /* Graphics Index VGA register don't work in mmio mode * for the Permedia3 chip, it thrashes the console font. @@ -2743,9 +2801,6 @@ GLINTEnterVT(int scrnIndex, int flags) Permedia2VideoEnterVT(pScrn); } - if (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) - pGlint->PM3_VideoControl = GLINT_READ_REG(PMVideoControl); - if (!pGlint->NoAccel) { switch (pGlint->Chipset) { case PCI_VENDOR_TI_CHIP_PERMEDIA2: @@ -2797,12 +2852,6 @@ GLINTLeaveVT(int scrnIndex, int flags) GLINTRestore(pScrn); if (pGlint->VGAcore) vgaHWLock(VGAHWPTR(pScrn)); - - if (pGlint->Chipset == PCI_VENDOR_3DLABS_CHIP_PERMEDIA3) - GLINT_SLOW_WRITE_REG(0, PMVideoControl); - /* Don't know why the follwong is wrong, should be ok ? - GLINT_SLOW_WRITE_REG(pGlint->PM3_VideoControl, PMVideoControl); - */ if (xf86IsPc98()) outb(0xfac, 0x00); @@ -2839,9 +2888,9 @@ GLINTCloseScreen(int scrnIndex, ScreenPtr pScreen) if (pScrn->vtSema) { if(pGlint->CursorInfoRec) - pGlint->CursorInfoRec->HideCursor(pScrn); + pGlint->CursorInfoRec->HideCursor(pScrn); if (pGlint->FBDev) - fbdevHWRestore(pScrn); + fbdevHWRestore(pScrn); else { GLINTRestore(pScrn); if (pGlint->VGAcore) diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_accel.c index db94756b2..9d765803a 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_accel.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_accel.c @@ -26,7 +26,7 @@ * * Permedia 3 accelerated options. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_accel.c,v 1.5 2000/10/26 17:57:56 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm3_accel.c,v 1.6 2000/11/14 17:32:59 dawes Exp $ */ #include "Xarch.h" #include "xf86.h" @@ -47,6 +47,7 @@ #include "xaalocal.h" /* For replacements */ #define DEBUG 0 +#define USE_DIRECT_FIFO_WRITES 1 #if DEBUG # define TRACE_ENTER(str) ErrorF("pm3_accel: " str " %d\n",pScrn->scrnIndex) @@ -89,22 +90,21 @@ static void Permedia3SetupForCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, int fg, int bg, int rop,unsigned int planemask); static void Permedia3SubsequentCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft); +/* Direct Fifo Bitmap Writes */ +static void Permedia3WriteBitmap(ScrnInfoPtr pScrn, int x, int y, int w, int h, + unsigned char *src, int srcwidth, int skipleft, + int fg, int bg, int rop,unsigned int planemask); /* Images Writes */ static void Permedia3SetupForImageWrite(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int trans_color, int bpp, int depth); static void Permedia3SubsequentImageWriteRect(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft); - -#define MAX_FIFO_ENTRIES 256 - -/* Mirror stipple pattern horizontally */ -#if X_BYTE_ORDER == X_BIG_ENDIAN -# define STIPPLE_SWAP 1<<18 -#else -# define STIPPLE_SWAP 0 -#endif - +/* Direct Fifo Pixmap Writes */ +static void Permedia3WritePixmap(ScrnInfoPtr pScrn, int x, int y, int w, int h, + unsigned char *src, int srcwidth, int rop, + unsigned int planemask, int transparency_color, + int bpp, int depth); void Permedia3InitializeEngine(ScrnInfoPtr pScrn) @@ -240,28 +240,26 @@ Permedia3InitializeEngine(ScrnInfoPtr pScrn) PM3FBSourceReadMode_ReadEnable, PM3FBSourceReadMode); TRACE("Permedia3InitializeEngine : SourceRead"); -#if X_BYTE_ORDER == X_BIG_ENDIAN - pGlint->RasterizerSwap = 1; -#else - pGlint->RasterizerSwap = 0; -#endif switch (pScrn->bitsPerPixel) { case 8: GLINT_SLOW_WRITE_REG(0x2, PixelSize); #if X_BYTE_ORDER == X_BIG_ENDIAN - pGlint->RasterizerSwap |= 3<<15; /* Swap host data */ + pGlint->RasterizerSwap = 3<<15; /* Swap host data */ #endif break; case 16: GLINT_SLOW_WRITE_REG(0x1, PixelSize); #if X_BYTE_ORDER == X_BIG_ENDIAN - pGlint->RasterizerSwap |= 2<<15; /* Swap host data */ + pGlint->RasterizerSwap = 2<<15; /* Swap host data */ #endif break; case 32: GLINT_SLOW_WRITE_REG(0x0, PixelSize); break; } +#if X_BYTE_ORDER == X_BIG_ENDIAN + GLINT_SLOW_WRITE_REG(1 | pGlint->RasterizerSwap, RasterizerMode); +#endif TRACE("Permedia3InitializeEngine : PixelSize"); Permedia3Sync(pScrn); @@ -409,9 +407,17 @@ Permedia3AccelInit(ScreenPtr pScreen) infoPtr->SubsequentMono8x8PatternFillRect = Permedia3SubsequentMono8x8PatternFillRect; +#if USE_DIRECT_FIFO_WRITES + /* Direct Fifo Bitmap Writes */ + infoPtr->WriteBitmapFlags = 0; + infoPtr->WriteBitmap = Permedia3WriteBitmap; +#endif + /* Color Expand Fills */ infoPtr->CPUToScreenColorExpandFillFlags = + /* SYNC_AFTER_COLOR_EXPAND | + */ LEFT_EDGE_CLIPPING | BIT_ORDER_IN_BYTE_LSBFIRST | CPU_TRANSFER_BASE_FIXED | @@ -423,21 +429,31 @@ Permedia3AccelInit(ScreenPtr pScreen) infoPtr->SubsequentCPUToScreenColorExpandFill = Permedia3SubsequentCPUToScreenColorExpandFill; +#if USE_DIRECT_FIFO_WRITES + /* Direct Fifo Images Writes */ + infoPtr->WritePixmapFlags = 0; + infoPtr->WritePixmap = Permedia3WritePixmap; +#else /* Images Writes */ infoPtr->ImageWriteFlags = NO_GXCOPY | + /* SYNC_AFTER_IMAGE_WRITE | + */ LEFT_EDGE_CLIPPING | + LEFT_EDGE_CLIPPING_NEGATIVE_X | BIT_ORDER_IN_BYTE_LSBFIRST | CPU_TRANSFER_BASE_FIXED | CPU_TRANSFER_PAD_DWORD; infoPtr->ImageWriteBase = pGlint->IOBase + PM3FBSourceData; - infoPtr->ImageWriteRange = 8; + infoPtr->ImageWriteRange = 4; infoPtr->SetupForImageWrite = Permedia3SetupForImageWrite; infoPtr->SubsequentImageWriteRect = Permedia3SubsequentImageWriteRect; - +#endif + + /* Available Framebuffer Area for XAA. */ AvailFBArea.x1 = 0; AvailFBArea.y1 = 0; AvailFBArea.x2 = pScrn->displayWidth; @@ -634,6 +650,10 @@ Permedia3SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, pGlint->PM3_Config2D |= PM3Config2D_UserScissorEnable; */ pGlint->PM3_AreaStippleMode = 1; +/* Mirror stipple pattern horizontally */ +#if X_BYTE_ORDER == X_BIG_ENDIAN + pGlint->PM3_AreaStippleMode |= (1<<18); +#endif pGlint->PM3_AreaStippleMode |= (2<<1); pGlint->PM3_AreaStippleMode |= (2<<4); if (bg != -1) { @@ -729,6 +749,73 @@ static void Permedia3SubsequentCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, TRACE_EXIT("Permedia3SubsequentCPUToScreenColorExpandFill"); } +/* Direct Fifo BItmap Writes */ + +/* Be carefull, if we use the gamma, the fifo is only 32 entries deep. */ +#define BitmapWriteRange 120 +#define BitmapWriteBase_Fixed ((CARD32 *)(pGlint->IOBase + BitMaskPattern)) +#define BitmapWriteBase ((CARD32 *)(pGlint->IOBase + OutputFIFO + 4)) + +static void +Permedia3WriteBitmap(ScrnInfoPtr pScrn, + int x, int y, int w, int h, + unsigned char *src, + int srcwidth, int skipleft, + int fg, int bg, int rop, + unsigned int planemask +) +{ + int dwords; + GLINTPtr pGlint = GLINTPTR(pScrn); + TRACE_ENTER("Permedia3WriteBitmap"); + + w += skipleft; + x -= skipleft; + dwords = (w + 31) >>5; + + /* width of the stuff to copy in 32 bit words */ + Permedia3SetupForCPUToScreenColorExpandFill(pScrn, fg, bg, rop, planemask); + Permedia3SubsequentCPUToScreenColorExpandFill(pScrn, x, y, w, h, skipleft); + + if (dwords > BitmapWriteRange) { + while(h--) { + XAAMoveDWORDS_FixedBase(BitmapWriteBase_Fixed, + (CARD32*)src, dwords); + src += srcwidth; + } + } else { + /* the src is exatcly as wide as the target rectangle. We copy all + * of it, so no need to separate stuff by scanline */ + if(srcwidth == (dwords << 5)) { + /* decrement contains the number of lines that can be + * put in the fifo */ + int decrement = BitmapWriteRange/dwords; + + while(h > decrement) { + GLINT_WAIT(dwords * decrement); + GLINT_WRITE_REG((((dwords * decrement)-1) << 16) | 0xd, + OutputFIFO); + XAAMoveDWORDS(BitmapWriteBase, (CARD32*)src, dwords * decrement); + src += (srcwidth * decrement); + h -= decrement; + } + if(h) { + GLINT_WAIT(dwords * h); + GLINT_WRITE_REG((((dwords * h)-1) << 16) | 0xd, OutputFIFO); + XAAMoveDWORDS(BitmapWriteBase, (CARD32*)src, dwords * h); + } + } else { + while(h--) { + GLINT_WAIT(dwords); + GLINT_WRITE_REG(((dwords-1) << 16) | 0xd, OutputFIFO); + XAAMoveDWORDS(BitmapWriteBase, (CARD32*)src, dwords); + src += srcwidth; + } + } + } + TRACE_EXIT("Permedia3WriteBitmap"); +} + /* Images Writes */ static void Permedia3SetupForImageWrite(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int trans_color, int bpp, int depth) @@ -770,3 +857,83 @@ static void Permedia3SubsequentImageWriteRect(ScrnInfoPtr pScrn, TRACE_EXIT("Permedia3SubsequentImageWrite"); } +/* Direct Fifo Images Writes */ + +/* Be carefull, if we use the gamma, the fifo is only 32 entries deep. */ +#define ImageWriteRange 120 +#define ImageWriteBase_Fixed ((CARD32 *)(pGlint->IOBase + PM3FBSourceData)) +#define ImageWriteBase ((CARD32 *)(pGlint->IOBase + OutputFIFO + 4)) +static void +Permedia3WritePixmap( + ScrnInfoPtr pScrn, + int x, int y, int w, int h, + unsigned char *src, + int srcwidth, + int rop, + unsigned int planemask, + int trans, + int bpp, int depth +) +{ + int dwords; + int skipleft = (long)src & 0x03L; + int Bpp = bpp >> 3; + GLINTPtr pGlint = GLINTPTR(pScrn); + TRACE_ENTER("Permedia3WritePixmap"); + + if (skipleft) { + /* Skipleft is either + * - 0, 1, 2 or 3 in 8 bpp + * - 0 or 1 in 16 bpp + * - 0 in 32 bpp + */ + skipleft /= Bpp; + + x -= skipleft; + w += skipleft; + + src = (unsigned char*)((long)src & ~0x03L); + } + Permedia3SetupForImageWrite(pScrn, rop, planemask, trans, bpp, depth); + Permedia3SubsequentImageWriteRect(pScrn, x, y, w, h, skipleft); + + /* width of the stuff to copy in 32 bit words */ + dwords = ((w * Bpp) + 3) >> 2; + + if (dwords > ImageWriteRange) { + while(h--) { + XAAMoveDWORDS_FixedBase(ImageWriteBase_Fixed, (CARD32*)src, dwords); + src += srcwidth; + } + } else { + /* the src is exatcly as wide as the target rectangle. We copy all + * of it, so no need to separate stuff by scanline */ + if(srcwidth == (dwords << 2)) { + /* decrement contains the number of lines that can be + * put in the fifo */ + int decrement = ImageWriteRange/dwords; + + while(h > decrement) { + GLINT_WAIT(dwords * decrement); + GLINT_WRITE_REG((((dwords * decrement)-1) << 16) | 0x155, + OutputFIFO); + XAAMoveDWORDS(ImageWriteBase, (CARD32*)src, dwords * decrement); + src += (srcwidth * decrement); + h -= decrement; + } + if(h) { + GLINT_WAIT(dwords * h); + GLINT_WRITE_REG((((dwords * h)-1) << 16) | 0x155, OutputFIFO); + XAAMoveDWORDS(ImageWriteBase, (CARD32*)src, dwords * h); + } + } else { + while(h--) { + GLINT_WAIT(dwords); + GLINT_WRITE_REG(((dwords-1) << 16) | 0x155, OutputFIFO); + XAAMoveDWORDS(ImageWriteBase, (CARD32*)src, dwords); + src += srcwidth; + } + } + } + TRACE_EXIT("Permedia3WritePixmap"); +} diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c index 7997567c5..7f0d32958 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c @@ -25,7 +25,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.34 2000/09/26 15:57:11 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.35 2000/11/13 23:06:08 dawes Exp $ */ /* * Authors: @@ -1951,7 +1951,7 @@ I810CloseScreen(int scrnIndex, ScreenPtr pScreen) static void I810FreeScreen(int scrnIndex, int flags) { I810FreeRec(xf86Screens[scrnIndex]); - if (vgaHWFreeHWRec) + if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) vgaHWFreeHWRec(xf86Screens[scrnIndex]); } diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h index 3826b94a8..429010ca6 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h,v 1.65 2000/10/24 22:45:06 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h,v 1.67 2000/11/08 05:03:04 dawes Exp $ */ /* * MGA Millennium (MGA2064W) functions * @@ -82,7 +82,7 @@ typedef struct { typedef struct { unsigned char brightness; unsigned char contrast; - FBAreaPtr area; + FBLinearPtr linear; RegionRec clip; CARD32 colorKey; CARD32 videoStatus; diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c index 9a41dc848..ce3d45611 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c,v 1.10 2000/11/02 19:10:51 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_dri.c,v 1.12 2000/11/13 23:31:39 dawes Exp $ */ #include "xf86.h" #include "xf86_OSproc.h" diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c index 1e2302ffa..c5897b7b5 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c @@ -43,7 +43,7 @@ * Fixed 32bpp hires 8MB horizontal line glitch at middle right */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.178 2000/11/03 18:46:10 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.180 2000/11/13 23:07:31 dawes Exp $ */ /* * This is a first cut at a non-accelerated version to work with the @@ -2230,7 +2230,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } reqSym = "fbScreenInit"; - xf86LoaderReqSymbols("fbScreenInit", NULL); #ifdef RENDER xf86LoaderReqSymbols("fbPictureInit", NULL); #endif diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_reg.h index f6660771a..ba0d8fabc 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_reg.h +++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_reg.h @@ -2,7 +2,7 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_reg.h,v 1.13 2000/11/01 21:55:09 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_reg.h,v 1.14 2000/11/08 05:03:04 dawes Exp $ */ diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c index c6b5a59c4..3899ef258 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c,v 1.19 2000/11/02 19:10:53 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c,v 1.20 2000/11/08 00:51:10 mvojkovi Exp $ */ #include "xf86.h" #include "xf86_OSproc.h" @@ -451,9 +451,9 @@ MGAStopVideo(ScrnInfoPtr pScrn, pointer data, Bool exit) if(exit) { if(pPriv->videoStatus & CLIENT_VIDEO_ON) OUTREG(MGAREG_BESCTL, 0); - if(pPriv->area) { - xf86FreeOffscreenArea(pPriv->area); - pPriv->area = NULL; + if(pPriv->linear) { + xf86FreeOffscreenLinear(pPriv->linear); + pPriv->linear = NULL; } pPriv->videoStatus = 0; } else { @@ -613,45 +613,45 @@ MGACopyMungedData( } -static FBAreaPtr +static FBLinearPtr MGAAllocateMemory( ScrnInfoPtr pScrn, - FBAreaPtr area, - int numlines + FBLinearPtr linear, + int size ){ ScreenPtr pScreen; - FBAreaPtr new_area; + FBLinearPtr new_linear; - if(area) { - if((area->box.y2 - area->box.y1) >= numlines) - return area; + if(linear) { + if(linear->size >= size) + return linear; - if(xf86ResizeOffscreenArea(area, pScrn->displayWidth, numlines)) - return area; + if(xf86ResizeOffscreenLinear(linear, size)) + return linear; - xf86FreeOffscreenArea(area); + xf86FreeOffscreenLinear(linear); } pScreen = screenInfo.screens[pScrn->scrnIndex]; - new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth, - numlines, 0, NULL, NULL, NULL); + new_linear = xf86AllocateOffscreenLinear(pScreen, size, 16, + NULL, NULL, NULL); - if(!new_area) { - int max_w, max_h; + if(!new_linear) { + int max_size; - xf86QueryLargestOffscreenArea(pScreen, &max_w, &max_h, 0, - FAVOR_WIDTH_THEN_AREA, PRIORITY_EXTREME); + xf86QueryLargestOffscreenLinear(pScreen, &max_size, 16, + PRIORITY_EXTREME); - if((max_w < pScrn->displayWidth) || (max_h < numlines)) + if(max_size < size) return NULL; xf86PurgeUnlockedOffscreenAreas(pScreen); - new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth, - numlines, 0, NULL, NULL, NULL); + new_linear = xf86AllocateOffscreenLinear(pScreen, size, 16, + NULL, NULL, NULL); } - return new_area; + return new_linear; } static void @@ -820,9 +820,9 @@ MGAPutImage( MGAPortPrivPtr pPriv = pMga->portPrivate; INT32 x1, x2, y1, y2; unsigned char *dst_start; - int pitch, new_h, offset, offset2, offset3; + int pitch, new_size, offset, offset2, offset3; int srcPitch, srcPitch2, dstPitch; - int top, left, npixels, nlines; + int top, left, npixels, nlines, bpp; BoxRec dstBox; CARD32 tmp; @@ -847,11 +847,12 @@ MGAPutImage( dstBox.y2 -= pScrn->frameY0; } - pitch = pScrn->bitsPerPixel * pScrn->displayWidth >> 3; + bpp = pScrn->bitsPerPixel >> 3; + pitch = bpp * pScrn->displayWidth; dstPitch = ((width << 1) + 15) & ~15; - new_h = ((dstPitch * height) + pitch - 1) / pitch; - + new_size = ((dstPitch * height) + bpp - 1) / bpp; + switch(id) { case FOURCC_YV12: case FOURCC_I420: @@ -867,26 +868,25 @@ MGAPutImage( break; } - if(!(pPriv->area = MGAAllocateMemory(pScrn, pPriv->area, new_h))) + if(!(pPriv->linear = MGAAllocateMemory(pScrn, pPriv->linear, new_size))) return BadAlloc; /* copy data */ - top = y1 >> 16; - left = (x1 >> 16) & ~1; - npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left; - left <<= 1; + top = y1 >> 16; + left = (x1 >> 16) & ~1; + npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left; + left <<= 1; - offset = pPriv->area->box.y1 * pitch; - dst_start = pMga->FbStart + offset + left + (top * dstPitch); + offset = pPriv->linear->offset * bpp; + dst_start = pMga->FbStart + offset + left + (top * dstPitch); - if(pMga->TexturedVideo && pMga->AccelInfoRec->NeedToSync && + if(pMga->TexturedVideo && pMga->AccelInfoRec->NeedToSync && ((long)data != pPriv->lastPort)) - { + { MGAStormSync(pScrn); - pMga->AccelInfoRec->NeedToSync = FALSE; - } + } - switch(id) { + switch(id) { case FOURCC_YV12: case FOURCC_I420: top &= ~1; @@ -1005,9 +1005,9 @@ MGAVideoTimerCallback(ScrnInfoPtr pScrn, Time time) } } else { /* FREE_TIMER */ if(pPriv->freeTime < time) { - if(pPriv->area) { - xf86FreeOffscreenArea(pPriv->area); - pPriv->area = NULL; + if(pPriv->linear) { + xf86FreeOffscreenLinear(pPriv->linear); + pPriv->linear = NULL; } pPriv->videoStatus = 0; pMga->VideoTimerCallback = NULL; @@ -1021,7 +1021,7 @@ MGAVideoTimerCallback(ScrnInfoPtr pScrn, Time time) /****************** Offscreen stuff ***************/ typedef struct { - FBAreaPtr area; + FBLinearPtr linear; Bool isOn; } OffscreenPrivRec, * OffscreenPrivPtr; @@ -1033,8 +1033,8 @@ MGAAllocateSurface( unsigned short h, XF86SurfacePtr surface ){ - FBAreaPtr area; - int pitch, fbpitch, numlines; + FBLinearPtr linear; + int pitch, fbpitch, size, bpp; OffscreenPrivPtr pPriv; if((w > 1024) || (h > 1024)) @@ -1042,38 +1042,39 @@ MGAAllocateSurface( w = (w + 1) & ~1; pitch = ((w << 1) + 15) & ~15; - fbpitch = pScrn->bitsPerPixel * pScrn->displayWidth >> 3; - numlines = ((pitch * h) + fbpitch - 1) / fbpitch; + bpp = pScrn->bitsPerPixel >> 3; + fbpitch = bpp * pScrn->displayWidth; + size = ((pitch * h) + bpp - 1) / bpp; - if(!(area = MGAAllocateMemory(pScrn, NULL, numlines))) + if(!(linear = MGAAllocateMemory(pScrn, NULL, size))) return BadAlloc; surface->width = w; surface->height = h; if(!(surface->pitches = xalloc(sizeof(int)))) { - xf86FreeOffscreenArea(area); + xf86FreeOffscreenLinear(linear); return BadAlloc; } if(!(surface->offsets = xalloc(sizeof(int)))) { xfree(surface->pitches); - xf86FreeOffscreenArea(area); + xf86FreeOffscreenLinear(linear); return BadAlloc; } if(!(pPriv = xalloc(sizeof(OffscreenPrivRec)))) { xfree(surface->pitches); xfree(surface->offsets); - xf86FreeOffscreenArea(area); + xf86FreeOffscreenLinear(linear); return BadAlloc; } - pPriv->area = area; + pPriv->linear = linear; pPriv->isOn = FALSE; surface->pScrn = pScrn; surface->id = id; surface->pitches[0] = pitch; - surface->offsets[0] = area->box.y1 * fbpitch; + surface->offsets[0] = linear->offset * bpp; surface->devPrivate.ptr = (pointer)pPriv; return Success; @@ -1103,7 +1104,7 @@ MGAFreeSurface( if(pPriv->isOn) MGAStopSurface(surface); - xf86FreeOffscreenArea(pPriv->area); + xf86FreeOffscreenLinear(pPriv->linear); xfree(surface->pitches); xfree(surface->offsets); xfree(surface->devPrivate.ptr); diff --git a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c index 7d72a139d..1ef028274 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c,v 1.6 2000/10/10 16:38:19 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_dri.c,v 1.7 2000/11/09 11:32:21 alanh Exp $ */ /* modified from tdfx_dri.c, mga_dri.c */ @@ -9,11 +9,7 @@ #include "xf86PciInfo.h" #include "xf86Pci.h" -#define PSZ 8 -#include "cfb.h" -#undef PSZ -#include "cfb16.h" -#include "cfb32.h" +#include "fb.h" #include "miline.h" diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c index 48c16e61e..72a7bef23 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c @@ -25,7 +25,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.43 2000/09/24 13:51:31 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.45 2000/11/14 13:12:21 alanh Exp $ */ /* * Authors: @@ -667,11 +667,6 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) if (pTDFX->pEnt->location.type != BUS_PCI) return FALSE; - if (flags & PROBE_DETECT) { - TDFXProbeDDC(pScrn, pTDFX->pEnt->index); - return TRUE; - } - /* The vgahw module should be loaded here when needed */ if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE; @@ -701,8 +696,11 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) match=pTDFX->PciInfo=xf86GetPciInfoForEntity(pTDFX->pEnt->index); TDFXFindChips(pScrn, match); - if (xf86RegisterResources(pTDFX->pEnt->index, 0, ResNone)) + if (xf86RegisterResources(pTDFX->pEnt->index, 0, ResExclusive)) { + TDFXFreeRec(pScrn); return FALSE; + } + if (pTDFX->usePIO) pScrn->racIoFlags = RAC_FB | RAC_COLORMAP | RAC_CURSOR | RAC_VIEWPORT; else @@ -1764,16 +1762,19 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { miSetPixmapDepths (); + pTDFX->NoAccel=xf86ReturnOptValBool(TDFXOptions, OPTION_NOACCEL, FALSE); #ifdef XF86DRI /* * Setup DRI after visuals have been established, but before fbScreenInit * is called. fbScreenInit will eventually call into the drivers * InitGLXVisuals call back. */ - pTDFX->directRenderingEnabled = TDFXDRIScreenInit(pScreen); - /* Force the initialization of the context */ - if (pTDFX->directRenderingEnabled) + if (!pTDFX->NoAccel) { + pTDFX->directRenderingEnabled = TDFXDRIScreenInit(pScreen); + /* Force the initialization of the context */ + if (pTDFX->directRenderingEnabled) TDFXLostContext(pScreen); + } #endif switch (pScrn->bitsPerPixel) { @@ -1823,7 +1824,6 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { } REGION_UNINIT(pScreen, &MemRegion); - pTDFX->NoAccel=xf86ReturnOptValBool(TDFXOptions, OPTION_NOACCEL, FALSE); if (!pTDFX->NoAccel) { if (!TDFXAccelInit(pScreen)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, @@ -1863,17 +1863,19 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { #endif #ifdef XF86DRI + if (!pTDFX->NoAccel) { if (pTDFX->directRenderingEnabled) { /* Now that mi, fb, drm and others have done their thing, * complete the DRI setup. */ pTDFX->directRenderingEnabled = TDFXDRIFinishScreenInit(pScreen); } - if (pTDFX->directRenderingEnabled) { + } + if (pTDFX->directRenderingEnabled) { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering enabled\n"); - } else { + } else { xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering disabled\n"); - } + } #endif #ifdef XvExtension diff --git a/xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.c b/xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.c index 558652a18..78f21c575 100644 --- a/xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.c +++ b/xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.c @@ -26,7 +26,7 @@ * * Authors: Paulo César Pereira de Andrade <pcpa@conectiva.com.br> * - * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.c,v 1.4 2000/10/27 18:31:04 dawes Exp $ + * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vesa/vesa.c,v 1.6 2000/11/14 16:54:54 dawes Exp $ */ #include "vesa.h" @@ -1621,12 +1621,13 @@ VESASaveScreen(ScreenPtr pScreen, int mode) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; Bool on = xf86IsUnblank(mode); - unsigned char scrn = ReadSeq(0x01); if (on) SetTimeSinceLastInputEvent(); if (pScrn->vtSema) { + unsigned char scrn = ReadSeq(0x01); + if (on) scrn &= ~0x20; else diff --git a/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c b/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c index 77523bee5..e235b5732 100644 --- a/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c +++ b/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.170 2000/11/06 19:24:08 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.171 2000/11/14 16:54:54 dawes Exp $ */ /* * @@ -915,7 +915,7 @@ LOOKUP xfree86LookupTab[] = { SYMFUNC(xf86WriteMmioNB8) SYMFUNC(memcpy) #endif -#if defined(sun) || defined(SVR4) && !defined(USL) +#if defined(sun) && defined(SVR4) SYMFUNC(inb) SYMFUNC(inw) SYMFUNC(inl) diff --git a/xc/programs/Xserver/hw/xfree86/os-support/hurd/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/hurd/Imakefile index 0740c0c31..6adb8a6e4 100644 --- a/xc/programs/Xserver/hw/xfree86/os-support/hurd/Imakefile +++ b/xc/programs/Xserver/hw/xfree86/os-support/hurd/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/Imakefile,v 1.12 2000/08/15 16:05:38 dawes Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/hurd/Imakefile,v 1.13 2000/11/14 18:20:37 dawes Exp $ #include <Server.tmpl> @@ -8,11 +8,11 @@ MOUSESRC = hurd_mouse.c MOUSEOBJ = hurd_mouse.o SRCS = hurd_init.c hurd_video.c hurd_io.c libc_wrapper.c $(BIOS_MOD).c \ - VTsw_noop.c posix_tty.c std_kbdEv.c $(MOUSESRC) \ + VTsw_noop.c posix_tty.c $(MOUSESRC) \ stdResource.c stdPci.c sigiostubs.c pm_noop.c kmod_noop.c agp_noop.c OBJS = hurd_init.o hurd_video.o hurd_io.o libc_wrapper.o $(BIOS_MOD).o \ - VTsw_noop.o posix_tty.o std_kbdEv.o $(MOUSEOBJ) \ + VTsw_noop.o posix_tty.o $(MOUSEOBJ) \ stdResource.o stdPci.o sigiostubs.o pm_noop.o kmod_noop.o agp_noop.o INCLUDES = -I$(XF86COMSRC) -I$(XF86OSSRC) -I. -I$(SERVERSRC)/include \ @@ -28,7 +28,6 @@ NormalLibraryObjectRule() LinkSourceFile(VTsw_noop.c,../shared) LinkSourceFile(posix_tty.c,../shared) -LinkSourceFile(std_kbdEv.c,../shared) LinkSourceFile(libc_wrapper.c,../shared) LinkSourceFile(stdResource.c,../shared) LinkSourceFile(stdPci.c,../shared) diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile index 6457b2732..1b24a75a1 100644 --- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile +++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.2 2000/02/23 04:47:24 martin Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.3 2000/11/08 05:03:06 dawes Exp $ #include <Server.tmpl> diff --git a/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c b/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c index e603af4d7..7f8cbc1db 100644 --- a/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c +++ b/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c @@ -25,7 +25,7 @@ * * Authors: Rickard E. (Rik) Faith <faith@valinux.com> * - * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c,v 1.11 2000/06/17 00:03:43 martin Exp $ + * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c,v 1.12 2000/11/14 21:59:24 dawes Exp $ * */ @@ -46,6 +46,7 @@ # include <errno.h> # include <stdio.h> # include <string.h> +# define SYSCALL(call) while(((call) == -1) && (errno == EINTR)) #endif /* @@ -76,8 +77,6 @@ static int xf86SigIOMax; static int xf86SigIOMaxFd; static fd_set xf86SigIOMask; -#define SYSCALL(call) while(((call) == -1) && (errno == EINTR)) - /* * SIGIO gives no way of discovering which fd signalled, select * to discover diff --git a/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h b/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h index ad389070d..1096a242d 100644 --- a/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h +++ b/xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h @@ -64,11 +64,15 @@ * */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h,v 3.46 2000/08/23 21:06:21 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86_OSproc.h,v 3.47 2000/11/14 18:20:37 dawes Exp $ */ #ifndef _XF86_OSPROC_H #define _XF86_OSPROC_H +#ifdef XF86_OS_PRIVS +#include "xf86Pci.h" +#endif + /* * The actual prototypes have been pulled into this seperate file so * that they can can be used without pulling in all of the OS specific @@ -257,6 +261,7 @@ resPtr xf86PciBusAccWindowsFromOS(void); resPtr xf86IsaBusAccWindowsFromOS(void); resPtr xf86AccResFromOS(resPtr ret); #endif /* NEED_OS_RAC_PROTOS */ + Bool xf86GetPciSizeFromOS(PCITAG tag, int index, int* bits); #endif /* XF86_OS_PRIVS */ diff --git a/xc/programs/Xserver/hw/xfree86/xf86cfg/loader.c b/xc/programs/Xserver/hw/xfree86/xf86cfg/loader.c index 6d836644c..4a562d422 100644 --- a/xc/programs/Xserver/hw/xfree86/xf86cfg/loader.c +++ b/xc/programs/Xserver/hw/xfree86/xf86cfg/loader.c @@ -26,7 +26,7 @@ * * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br> * - * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/loader.c,v 1.1 2000/10/20 14:59:05 alanh Exp $ + * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/loader.c,v 1.2 2000/11/08 17:58:43 alanh Exp $ */ #define LOADER_PRIVATE #include "loader.h" @@ -227,9 +227,6 @@ LOOKUP xfree86LookupTab[] = { SYMFUNC(xf86shmctl) SYMFUNC(xf86setjmp) SYMFUNC(xf86longjmp) -#ifdef __alpha__ - SYMFUNC(_bus_base) -#endif SYMFUNC(xf86AddDriver) {0,0} diff --git a/xc/programs/Xserver/hw/xfree86/xf86cfg/vidmode.c b/xc/programs/Xserver/hw/xfree86/xf86cfg/vidmode.c index e9dafe5cf..9316a5211 100644 --- a/xc/programs/Xserver/hw/xfree86/xf86cfg/vidmode.c +++ b/xc/programs/Xserver/hw/xfree86/xf86cfg/vidmode.c @@ -26,7 +26,7 @@ * * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br> * - * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/vidmode.c,v 1.3 2000/10/20 14:59:08 alanh Exp $ + * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/vidmode.c,v 1.4 2000/11/14 21:59:24 dawes Exp $ */ /* @@ -34,7 +34,6 @@ */ #include "vidmode.h" -#include <X11/extensions/Xinerama.h> #include <X11/Xaw/Command.h> #include <X11/Xaw/Form.h> #include <X11/Xaw/Label.h> |