summaryrefslogtreecommitdiff
path: root/hw/xfree86/doc
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2003-11-14 16:48:57 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2003-11-14 16:48:57 +0000
commit9508a382f8a9f241dab097d921b6d290c1c3a776 (patch)
treefa456480bae7040c3f971a70b390f2d091c680b5 /hw/xfree86/doc
parentded6147bfb5d75ff1e67c858040a628b61bc17d1 (diff)
Initial revision
Diffstat (limited to 'hw/xfree86/doc')
-rw-r--r--hw/xfree86/doc/README.DRI1257
-rw-r--r--hw/xfree86/doc/README.fonts1146
-rw-r--r--hw/xfree86/doc/README.rapidaccess48
-rw-r--r--hw/xfree86/doc/changelogs/CHANGELOG16588
-rw-r--r--hw/xfree86/doc/changelogs/CHANGELOG.ND418
-rw-r--r--hw/xfree86/doc/changelogs/CHANGELOG.R51249
-rw-r--r--hw/xfree86/doc/devel/DebuggingHints192
-rw-r--r--hw/xfree86/doc/devel/Domain.note159
-rw-r--r--hw/xfree86/doc/devel/RAC.Notes696
-rw-r--r--hw/xfree86/doc/devel/README.DRIcomp543
-rw-r--r--hw/xfree86/doc/devel/Registry410
-rw-r--r--hw/xfree86/doc/sgml/DESIGN.sgml7415
12 files changed, 30121 insertions, 0 deletions
diff --git a/hw/xfree86/doc/README.DRI b/hw/xfree86/doc/README.DRI
new file mode 100644
index 000000000..66a5a5ff8
--- /dev/null
+++ b/hw/xfree86/doc/README.DRI
@@ -0,0 +1,1257 @@
+ DRI User Guide
+
+ VA Linux Systems, Inc. Professional Services - Graphics.
+
+ 15 June 2001
+
+1. Preamble
+
+1.1 Copyright
+
+Copyright © 2000-2001 by VA Linux Systems, Inc. All Rights Reserved.
+
+Permission is granted to make and distribute verbatim copies of this document
+provided the copyright notice and this permission notice are preserved on all
+copies.
+
+1.2 Trademarks
+
+OpenGL is a registered trademark and SGI is a trademark of Silicon Graphics,
+Inc. Unix is a registered trademark of The Open Group. The `X' device and X
+Window System are trademarks of The Open Group. XFree86 is a trademark of
+The XFree86 Project. Linux is a registered trademark of Linus Torvalds.
+Intel is a registered trademark of Intel Corporation. 3Dlabs, GLINT, and
+Oxygen are either registered trademarks or trademarks of 3Dlabs Inc. Ltd.
+3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Inter-
+active, Incorporated. Matrox is a registered trademark of Matrox Electronic
+Systems Ltd. ATI Rage and Radeon are registered trademarks of ATI Technolo-
+gies, Inc. All other trademarks mentioned are the property of their respec-
+tive owners.
+
+2. Introduction
+
+With XFree86 4.x and the Direct Rendering Interface (DRI), hardware acceler-
+ated 3D graphics can be considered a standard feature on Linux workstations.
+Support for other operating systems, such as FreeBSD, is underway.
+
+This document describes how to use the DRI system and troubleshoot problems
+which may occur. Readers should have a basic understanding of Linux, X and
+OpenGL. See the resources section at the end for more documentation and
+software downloads.
+
+This document does not cover compilation or installation of XFree86 4.x. It
+is assumed that you've already installed a Linux distribution which includes
+XFree86 4.x or that you're an experienced Linux developer who has compiled
+the DRI for himself. DRI download, compilation and installation instructions
+can be found at http://dri.sourceforge.net/DRIcompile.html
+
+Edits, corrections and updates to this document may be mailed to <brian@tung-
+stengrahpics.com>.
+
+3. Supported Architectures & Hardware
+
+3.1 CPU Architectures
+
+The architectures currently supported by the DRI have grown from the initial
+Intel i386 systems to now include the Alpha Processor and the Sun SPARC
+machines.
+
+Intel's SSE (a.k.a. Katmai) instructions are used in optimized vertex trans-
+formation functions in Mesa-based drivers. This requires a recent Linux ker-
+nel both at compile and runtime. See the DRI Compile Guide for compile-time
+requirements. At runtime a check is made to determine if the CPU can execute
+SSE instructions. They're disabled otherwise.
+
+AMD's 3DNow! instructions are also used in optimized vertex transformation
+functions in the Mesa-based DRI drivers. 3DNow! is supported in most ver-
+sions of Linux. Like the SSE optimizations, a runtime check is made to
+determine if the CPU can execute 3DNow! instructions.
+
+Alpha-based systems can use Compaq's optimized math library for improved 3D
+performance. See the DRI Compilation Guide for details.
+
+3.2 Graphics Hardware
+
+XFree86 4.2 (or later versions) includes 3D acceleration for the following
+graphics hardware:
+
+ o 3dfx, supported on Intel x86, AMD and Alpha:
+
+ o Voodoo5 5500
+
+ o Voodoo4 4500
+
+ o Voodoo3 3500 TV
+
+ o Voodoo3 3000 AGP
+
+ o Voodoo3 3000 PCI
+
+ o Voodoo3 2000 AGP
+
+ o Voodoo3 2000 PCI
+
+ o Voodoo Banshee
+
+ o Velocity 100/200
+
+ There are many configurations of 3dfx cards on the market. Not all have
+ been tested.
+
+ o Matrox, supported on Intel x86 and AMD:
+
+ o Matrox G200
+
+ o Matrox G400
+
+ o Intel i810/i815/i830 (motherboard chipsets)
+
+ o i810
+
+ o i810-dc100
+
+ o i810e
+
+ o i815
+
+ o i830
+
+ o ATI Rage 128, supported on Intel x86, AMD and Alpha:
+
+ o Rage Fury
+
+ o Rage Magnum
+
+ o XPERT 2000
+
+ o XPERT 128
+
+ o XPERT 99
+
+ o All-in-Wonder 128
+
+ o Rage 128 PCI (Alpha-based systems)
+
+ Note that both PCI and AGP versions of Rage 128 based cards are sup-
+ ported at this time.
+
+ o ATI Radeon, supported on Intel x86, AMD and Alpha:
+
+ o Radeon SDR AGP
+
+ o Radeon DDR AGP
+
+ o Radeon 32MB SDR PCI (Alpha-based systems)
+
+ o Radeon 7000, M6 (RV100)
+
+ o Radeon 7200 (R100)
+
+ o Radeon 7500, M7 (RV200)
+
+ o Radeon 8500, 9100 (R200)
+
+ o Radeon 9000, M9 (RV250)
+
+ o 3Dlabs, supported on Intel x86 and AMD:
+
+ o Oxygen GMX 2000 (MX/Gamma based). Note: this driver is no longer
+ being actively developed.
+
+Support for other hardware is underway. Most of the DRI development work is
+funded by contracts with IHVs. These contracts often prevent us from
+announcing drivers before they're released. Queries about upcoming drivers
+may not be answerable.
+
+4. Prerequisite Software
+
+ o The DRI is available in XFree86 4.0 and later.
+
+ o Some hardware drivers require specific versions of the Linux kernel for
+ AGP support, etc. See section 10 for specifics.
+
+ o You DO NOT need to install Mesa separately. The parts of Mesa needed
+ for hardware acceleration are already in the XFree86/DRI project.
+
+5. Kernel Modules
+
+3D hardware acceleration requires a DRI kernel module that's specific to your
+graphics hardware.
+
+The DRI kernel module version must exactly match your running kernel version.
+Since there are so many versions of the kernel, it's difficult to provide
+precompiled kernel modules.
+
+While the Linux source tree includes the DRI kernel module sources, the lat-
+est DRI kernel sources will be found in the DRI source tree.
+
+See the DRI Compilation Guide for information on compiling the DRI kernel
+modules.
+
+XFree86 4.0.1 added automatic kernel module loading to the X server. On
+Linux, the X server uses modprobe to load kernel modules. In Linux 2.4.x the
+DRM kernel modules should be kept in /lib/modules/2.4.x/ker-
+nel/drivers/char/drm/ for automatic loading to work.
+
+Optionally, DRM kernel modules can be loaded manually with insmod prior to
+starting the X server.
+
+You can verify that the kernel module was installed with lsmod, checking the
+X server startup log, and checking that /proc/dri/0 exists.
+
+6. XF86Config file
+
+The XFree86 configuration file is usually found in /etc/X11/XF86Config. This
+section describes the parts which must be specially set for the DRI.
+
+First, the XF86Config file must load the GLX and DRI modules:
+
+ Section "Module"
+ ...
+ # This loads the GLX module
+ Load "glx"
+ # This loads the DRI module
+ Load "dri"
+ EndSection
+
+Next, the DRI section can be used to restrict access to direct rendering. A
+client can only use direct rendering if it has permission to open the
+/dev/dri/card? file(s). The permissions on these DRI device files is con-
+trolled by the "DRI" section in the XF86Config file.
+
+If you want all of the users on your system to be able to use direct-render-
+ing, then use a simple DRI section like this:
+
+ Section "DRI"
+ Mode 0666
+ EndSection
+
+This section will allow any user with a current connection to the X server to
+use direct rendering.
+
+If you want to restrict the use of direct-rendering to a certain group of
+users, then create a group for those users by editing the /etc/group file on
+your system. For example, you may want to create a group called xf86dri and
+place two users (e.g., fred and jane) in that group. To do that, you might
+add the following line to /etc/group:
+
+ xf86dri:x:8000:fred,jane
+
+You have to be careful that the group id (8000 in this example) is unique.
+
+Then you would use the following DRI section:
+
+ Section "DRI"
+ Group "xf86dri"
+ Mode 0660
+ EndSection
+
+This would limit access to direct-rendering to those users in the xf86dri
+group (fred and jane in this example). When other users tried to use direct
+rendering, they would fall back to unaccelerated indirect rendering.
+
+[Note that there is a known bug in XFree86 4.0 that prevents some changes to
+the DRI section from taking effect. Until this bug is fixed, if you change
+the DRI section, please also remove the /dev/dri directory with the rm -rf
+/dev/dri command.]
+
+Finally, the XF86Config file needs Device and Screen sections specific to
+your hardware. Look in section 10: Hardware-Specific Information and Trou-
+bleshooting for details.
+
+7. Memory usage
+
+Using the 3D features of a graphics card requires more memory than when it's
+just used as a 2D device. Double buffering, depth buffering, stencil
+buffers, textures, etc. all require extra graphics memory. These features
+may require four times the memory used for a simple 2D display.
+
+If your graphics card doesn't have a lot of memory (less than 16MB, for exam-
+ple), you may have to reduce your screen size and/or color depth in order to
+use 3D features. Reducing the screen resolution will also leave more space
+for texture images, possibly improving 3D performance. If, for example, you
+play Quake3 at 1024x768 but start your display at 1600x1200 you might con-
+sider restarting X at 1024x768 in order to maximize your texture memory
+space.
+
+The documentation included with your card should have information about maxi-
+mum screen size when using 3D.
+
+8. Using 3D Acceleration
+
+This section describes how to link your application with libGL.so and verify
+that you are in fact using 3D acceleration.
+
+8.1 libGL.so
+
+Your OpenGL program must link with the libGL.so.1.2 library provided by
+XFree86. The libGL.so.1.2 library contains a GLX protocol encoder for indi-
+rect/remote rendering and DRI code for accessing hardware drivers. In par-
+ticular, be sure you're not using libGL.so from another source such as Mesa
+or the Utah GLX project.
+
+Unless it was built in a special way, the libGL.so library does not contain
+any 3D hardware driver code. Instead, libGL.so dynamically loads the appro-
+priate 3D driver during initialization.
+
+Most simple OpenGL programs also use the GLUT and GLU libraries. A source
+for these libraries is listed in the Resources section below.
+
+8.2 Compiling and linking an OpenGL program
+
+A simple GLUT/OpenGL program may be compiled and linked as follows:
+
+ gcc program.c -I/usr/local/include -L/usr/local/lib -L/usr/X11R6/lib -lglut -lGLU -lGL -o program
+
+The -I option is used to specify where the GL/glut.h (and possibly the
+GL/gl.h and GL/glu.h) header file may be found.
+
+The -L options specify where the libglut.so and the X libraries are located.
+libGL.so and libGLU.so should be in /usr/lib, as specified by the
+Linux/OpenGL ABI standard.
+
+The -lglut -lGLU -lGL arguments specify that the application should link with
+the GLUT, GLU and GL libraries, in that order.
+
+8.3 Running your OpenGL program
+
+Simply typing ./program in your shell should execute the program.
+
+If you get an error message such as
+
+ gears: error in loading shared libraries: libGL.so.1: cannot
+ open shared object file: No such file or directory
+
+if means that the libGL.so.1 file is not the right location. Proceed to the
+trouble shooting section.
+
+8.4 libOSMesa.so
+
+OSMesa (Off-Screen Mesa) is an interface and driver for rendering 3D images
+into a user-allocated block of memory rather than an on-screen window. It
+was originally developed for Mesa before Mesa became part of the XFree86/DRI
+project. It can now be used with the XFree86/DRI libGL.so as well.
+
+libOSMesa.so implements the OSMesa interface and it must be linked with your
+application if you want to use the OSMesa functions. You must also link with
+libGL.so. For example:
+
+ gcc osdemo.c -lOSMesa -lGLU -lGL -o osdemo
+
+In stand-alone Mesa this interface was compiled into the monolithic libGL.so
+(formerly libMesaGL.so) library. In XFree86 4.0.1 and later this interface
+is implemented in a separate library.
+
+8.5 glxinfo
+
+glxinfo is a useful program for checking which version of libGL you're using
+as well as which DRI-based driver. Simply type glxinfo and examine the
+OpenGL vendor, renderer, and version lines. Among the output you should see
+something like this:
+
+ OpenGL vendor string: VA Linux Systems, Inc.
+ OpenGL renderer string: Mesa DRI Voodoo3 20000224
+ OpenGL version string: 1.2 Mesa 3.4
+
+or this:
+
+ OpenGL vendor string: VA Linux Systems, Inc.
+ OpenGL renderer string: Mesa GLX Indirect
+ OpenGL version string: 1.2 Mesa 3.4
+
+The first example indicates that the 3dfx driver is using Voodoo3 hardware.
+The second example indicates that no hardware driver was found and indirect,
+unaccelerated rendering is being used.
+
+If you see that indirect rendering is being used when direct rendering was
+expected, proceed to the troubleshooting section.
+
+glxinfo also lists all of the GLX-enhanced visuals available so you can
+determine which visuals are double-bufferd, have depth (Z) buffers, stencil
+buffers, accumulation buffers, etc.
+
+8.6 Environment Variables
+
+The libGL.so library recognizes three environment variables. Normally, none
+of them need to be defined. If you're using the csh or tcsh shells, type
+setenv VARNAME value to set the variable. Otherwise, if you're using sh or
+bash, type export VARNAME=value.
+
+ 1. LIBGL_DEBUG, if defined will cause libGL.so to print error and diagnos-
+ tic messages. This can help to solve problems. Setting LIBGL_DEBUG to
+ verbose may provide additional information.
+
+ 2. LIBGL_ALWAYS_INDIRECT, if defined this will force libGL.so to always
+ use indirect rendering instead of hardware acceleration. This can be
+ useful to isolate rendering errors.
+
+ 3. LIBGL_DRIVERS_PATH can be used to override the default directories
+ which are searched for 3D drivers. The value is one or more paths sep-
+ arated by colons. In a typical XFree86 installation, the 3D drivers
+ should be in /usr/X11R6/lib/modules/dri/ and LIBGL_DRIVERS_PATH need
+ not be defined. Note that this feature is disabled for set-uid pro-
+ grams. This variable replaces the LIBGL_DRIVERS_DIR env var used in
+ XFree86 4.0.
+
+ 4. MESA_DEBUG, if defined, will cause Mesa-based 3D drivers to print user
+ error messages to stderr. These are errors that you'd otherwise detect
+ by calling glGetError.
+
+Mesa-based drivers (this includes most of the drivers listed above) also
+observe many of the existing Mesa environment variables. These include the
+MESA_DEBUG and MESA_INFO variables.
+
+9. General Trouble Shooting
+
+This section contains information to help you diagnose general problems. See
+below for additional information for specific hardware.
+
+9.1 Bus Mastering
+
+DMA-based DRI drivers (that's most DRI drivers) cannot function unless bus
+mastering is enabled for your graphics card. By default, some systems don't
+having bus mastering on. You should enable it in your BIOS.
+
+Alternately, you can check the status of bus mastering and change the setting
+from within Linux. There may be similar procedures for other operating sys-
+tems.
+
+Run lspci (as root) and find the information describing your graphics
+adapter. For example:
+
+ 00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 03)
+ 00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 03)
+ 00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
+ 00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01)
+ 00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
+ 00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
+ 00:11.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 08)
+ 00:12.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c895 (rev 02)
+ 00:14.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 08)
+ 01:00.0 VGA compatible controller: 3Dfx Interactive, Inc.: Unknown device 0009 (rev 01)
+
+The bus, device, and function number comprise the device id, which is conven-
+tionally written in the form bus:dev.func, or in this case 01:00.0.
+
+Use the setpci command to examine bit two of register 4 for your graphics
+card. This will indicate whether or not bus mastering is enabled.
+
+ setpci -s 01:00.0 4.w
+
+A hexadecimal value will be printed. Convert the least significant digit to
+binary. For example, if you see 3, that's 0011 in binary (bit two is 0). If
+you see 7, that's 0111 in binary (bit two is 1). In the first example, bus
+mastering is disabled. It's enabled in the second example.
+
+The following shell script will enabled bus mastering for your graphics card
+and host bridge. Run it as root.
+
+ #!/bin/bash
+ dev=01:00.0 # change as appropriate
+ echo Enabling bus mastering on device $dev
+ setpci -s $dev 4.w=$(printf %x $((0x$(setpci -s $dev 4.w)|4)))
+ dev=00:00.0
+ echo Enabling bus mastering on host bridge $dev
+ setpci -s $dev 4.w=$(printf %x $((0x$(setpci -s $dev 4.w)|4)))
+
+You can check if this worked by running the first setpci command again.
+
+9.2 The X Server
+
+ 1. Before you start the X server, verify the appropriate 3D kernel module
+ is installed. Type lsmod and look for the appropriate kernel module.
+ For 3dfx hardware you should see tdfx, for example.
+
+ 2. Verify you're running XFree86 4.0 (or newer) and not an older version.
+ If you run xdpyinfo and look for the following line near the top:
+
+ vendor release number: 4000
+
+ 3. Verify that your XF86Config file (usually found at /etc/X11/XF86Config)
+ loads the glx and dri modules and has a DRI section.
+
+ See the Software Resources section below for sample XF86Config files.
+
+ 4. Examine the messages printed during X server startup and check that the
+ DRM module loaded. Using the Voodoo3 as an example:
+
+ (==) TDFX(0): Write-combining range (0xf0000000,0x2000000)
+ (II) TDFX(0): Textures Memory 7.93 MB
+ (0): [drm] created "tdfx" driver at busid "PCI:1:0:0"
+ (0): [drm] added 4096 byte SAREA at 0xc65dd000
+ (0): [drm] mapped SAREA 0xc65dd000 to 0x40013000
+ (0): [drm] framebuffer handle = 0xf0000000
+ (0): [drm] added 1 reserved context for kernel
+ (II) TDFX(0): [drm] Registers = 0xfc000000
+ (II) TDFX(0): visual configs initialized
+ (II) TDFX(0): Using XFree86 Acceleration Architecture (XAA)
+ Screen to screen bit blits
+ Solid filled rectangles
+ 8x8 mono pattern filled rectangles
+ Indirect CPU to Screen color expansion
+ Solid Lines
+ Dashed Lines
+ Offscreen Pixmaps
+ Driver provided NonTEGlyphRenderer replacement
+ Setting up tile and stipple cache:
+ 10 128x128 slots
+ (==) TDFX(0): Backing store disabled
+ (==) TDFX(0): Silken mouse enabled
+ (0): X context handle = 0x00000001
+ (0): [drm] installed DRM signal handler
+ (0): [DRI] installation complete
+ (II) TDFX(0): direct rendering enabled
+
+ 5. After the X server has started, verify that the required X server
+ extensions are loaded. Run xdpyinfo and look for the following entries
+ in the extensions list:
+
+ GLX
+ SGI-GLX
+ XFree86-DRI
+
+9.3 Linking, running and verifying 3D acceleration
+
+After you've verified that the X server and DRI have started correctly it's
+time to verify that the GL library and hardware drivers are working cor-
+rectly.
+
+ 1. Verify that you're using the correct libGL.so library with ldd. The
+ /usr/lib and /usr/X11R6/lib directories are expected locations for
+ libGL.so.
+
+ Example:
+
+ % ldd /usr/local/bin/glxinfo
+ libglut.so.3 => /usr/local/lib/libglut.so.3 (0x40019000)
+ libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x40051000)
+ libGL.so.1 => /usr/lib/libGL.so.1 (0x40076000)
+ libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x402ee000)
+ libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40301000)
+ libm.so.6 => /lib/libm.so.6 (0x40309000)
+ libc.so.6 => /lib/libc.so.6 (0x40325000)
+ libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40419000)
+ libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404bd000)
+ libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40509000)
+ libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40512000)
+ libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40529000)
+ libvga.so.1 => /usr/lib/libvga.so.1 (0x40537000)
+ libpthread.so.0 => /lib/libpthread.so.0 (0x4057d000)
+ /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
+
+ 2. You may also double check that libGL.so is in fact DRI-capable. Run
+ strings libGL.so.1.2 | grep DRI and look for symbols prefixed with
+ "XF86DRI", such as "XF86DRIQueryExtension".
+
+ 3. To be safe one should run ldconfig after installing libGL.so to be sure
+ the runtime loader will find the proper library.
+
+ 4. Verify that the appropriate 3D driver is in /usr/X11R6/lib/modules/dri/
+ For example, the 3dfx driver will be named tdfx_dri.so.
+
+ 5. Set the LIBGL_DEBUG environment variable. This will cause libGL.so to
+ print an error message if it fails to load a DRI driver. Any error
+ message printed should be self-explanatory.
+
+ 6. Run glxinfo. Note the line labeled "OpenGL renderer string". It
+ should have a value which starts with "Mesa DRI" followed by the name
+ of your hardware.
+
+ 7. Older Linux OpenGL applications may have been linked against Mesa's GL
+ library and will not automatically use libGL.so. In some cases, making
+ symbolic links from the Mesa GL library to libGL.so.1 will solve the
+ problem:
+
+ ln -s libGL.so.1 libMesaGL.so.3
+
+ In other cases, the application will have to be relinked against the
+ new XFree86 libGL.so.
+
+ It is reported that part of the problem is that running ldconfig will
+ silently rewrite symbolic links based on the SONAME field in libraries.
+
+If you're still having trouble, look in the next section for information spe-
+cific to your graphics card.
+
+10. Hardware-Specific Information and Troubleshooting
+
+This section presents hardware-specific information for normal use and trou-
+bleshooting.
+
+10.1 3dfx Banshee, Voodoo3, Voodoo4 and Voodoo5 Series
+
+10.1.1 Requirements
+
+The 3dfx DRI driver requires special versions of the 3dfx Glide library.
+Different versions of Glide are needed for Banshee/Voodoo3 than for
+Voodoo4/5. The Glide libraries can be downloaded from the DRI website.
+
+10.1.2 Configuration
+
+Your XF86Config file's device section must specify the tdfx device. For
+example:
+
+ Section "Device"
+ Identifier "Voodoo3"
+ VendorName "3dfx"
+ Driver "tdfx"
+ EndSection
+
+Or,
+
+ Section "Device"
+ Identifier "Voodoo5"
+ VendorName "3dfx"
+ Driver "tdfx"
+ EndSection
+
+The Screen section should then reference the Voodoo device:
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Voodoo3"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+Or,
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Voodoo5"
+ Monitor "High Res Monitor"
+ DefaultDepth 24
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ Subsection "Display"
+ Depth 24
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+The kernel module for 3dfx hardware is named tdfx.o and should be installed
+in /lib/modules/2.4.x/kernel/drivers/char/drm/. It will be automatically
+loaded by the Xserver if needed.
+
+The DRI 3D driver for 3dfx hardware should be in /usr/X11R6/lib/mod-
+ules/dri/tdfx_dri.so. This will be automatically loaded by libGL.so.
+
+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 16bpp mode only a 16-bit Z (depth) buffer is offered and
+stencil is implemented in software.
+
+A software-based accumulation buffer is available in both 16 and 32bpp modes.
+
+10.1.3 Troubleshooting
+
+ o If you try to run an OpenGL application and see an error message similar
+ to
+
+ gd error (glide): gd error (glide): grSstSelect: non-existent SSTgd error (glide): grSstSelect: non-existent SSTS
+
+ it means that you have the wrong version of the Glide library for your
+ hardware.
+
+ o 3D acceleration for Banshee and Voodoo3 is only supported in the 16
+ bit/pixel screen mode. Use xdpyinfo to verify that all your visuals are
+ depth 16. Edit your XF86Config file if needed.
+
+ o The /dev/3dfx device is not used for DRI; it's only for Glide on older
+ 3dfx hardware.
+
+ o Different versions of Glide are needed for Voodoo3 and Voodoo5. See the
+ DRI website's resources page to download the right version of Glide.
+
+ o Voodoo4/5 may be run at 24bpp (instead of 32bpp, the default) but 3D
+ acceleration is not supported in that mode. 32bpp mode is fully 3D
+ accelerated.
+
+10.1.4 Performance and Features
+
+ o Normally, buffer swapping in double-buffered applications is synchro-
+ nized to your monitor's refresh rate. This may be overridden by setting
+ the FX_GLIDE_SWAPINTERVAL environment variable. The value of this vari-
+ able indicates the maximum number of swap buffer commands can be
+ buffered. Zero allows maximum frame rate.
+
+ o On Voodoo4/5, rendering with 16-bits/texel textures is faster than using
+ 32-bit per texel textures. The internalFormat parameter to glTexImage2D
+ can be used to control texel size. Quake3 and other games let you con-
+ trol this as well.
+
+ o The glTexEnv mode GL_BLEND is not directly supported by the Voodoo3
+ hardware. It can be accomplished with a multipass algorithm but it's
+ not implemented at this time. Applications which use that mode, such as
+ the Performer Town demo, may become sluggish when falling back to soft-
+ ware rendering to render in that mode.
+
+ o The Voodoo3/Banshee driver reverts to software rendering under the fol-
+ lowing conditions:
+
+ o Setting GL_LIGHT_MODEL_COLOR_CONTROL to GL_SEPARATE_SPECULAR_COLOR.
+
+ o Enabling line stippling or polygon stippling.
+
+ o Enabling point smoothing or polygon smoothing.
+
+ o Enabling line smoothing when line width is not 1.0. That is,
+ antialiased lines are done in hardware only when the line width is
+ 1.0.
+
+ o Using 1-D or 3-D texture maps.
+
+ o Using the GL_BLEND texture environment.
+
+ o Using stencil operations.
+
+ o Using the accumulation buffer.
+
+ o Using glBlendEquation(GL_LOGIC_OP).
+
+ o Using glDrawBuffer(GL_FRONT_AND_BACK).
+
+ o Using glPolygonMode(face, GL_POINT) or glPolygonMode(face,
+ GL_LINE).
+
+ o Using point size attenuation (i.e. GL_DISTANCE_ATTENUATION_EXT).
+
+ o Using glColorMask(r, g, b, a) when r!=g or g!=b.
+
+ o The Voodoo5 driver reverts to software rendering under the same condi-
+ tions Voodoo3 with three exceptions. First, stencil operations are
+ implemented in hardware when the screen is configured for 32 bits/pixel.
+ Second, the GL_BLEND texture env mode is fully supported in hardware.
+ Third, glColorMask is fully supported in hardware when the screen is
+ configured for 32 bits/pixel.
+
+ o As of January, 2001 the second VSA-100 chip on the Voodoo5 is not yet
+ operational. Therefore, the board isn't being used to its full capac-
+ ity. The second VSA-100 chip will allow Scan-Line Interleave (SLI) mode
+ for full-screen applications and games, potentially doubling the sys-
+ tem's fill rate. When the second VSA-100 chip is activated glGet-
+ String(GL_RENDERER) will report Voodoo5 instead of Voodoo4.
+
+ o The lowest mipmap level is sometimes miscolored in trilinear- sampled
+ polygons.
+
+ o The GL_EXT_texture_env_combine extension is supported on the Voodoo4 and
+ Voodoo5.
+
+10.1.5 Known Problems
+
+ o The lowest mipmap level is sometimes miscolored in trilinear- sampled
+ polygons (Voodoo3/Banshee).
+
+ o Fog doesn't work with orthographic projections.
+
+ o The accuracy of blending operations on Voodoo4/5 isn't always very good.
+ If you run Glean, you'll find some test failures.
+
+ o The Glide library cannot be used directly; it's only meant to be used
+ via the tdfx DRI driver.
+
+ o SSystem has problems because of poorly set near and far clipping planes.
+ The office.unc Performer model also suffers from this problem.
+
+10.2 Intel i810
+
+10.2.1 Requirements
+
+A kernel with AGP GART support (such as Linux 2.4.x) is needed.
+
+10.2.2 Configuration
+
+Your XF86Config file's device section must specify the i810 device, and spec-
+ify a usable amount of video ram to reserve.
+
+ Section "Device"
+ Identifier "i810"
+ VendorName "Intel"
+ Driver "i810"
+ Option "AGPMode" "1"
+ VideoRam 10000
+ EndSection
+
+The Screen section should then reference the i810 device:
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "i810"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+The kernel module for the i810 is named i810.o and should be installed in
+/lib/modules/2.4.x/kernel/drivers/char/drm/. It will be automatically loaded
+by the Xserver if needed.
+
+The DRI 3D driver for the i810 should be in /usr/X11R6/lib/mod-
+ules/dri/i810_dri.so. This will be automatically loaded by libGL.so.
+
+10.2.3 Troubleshooting
+
+ o 3D acceleration for the i810 is only available in the 16 bit/pixel
+ screen mode at this time. 32bpp acceleration is not supported by this
+ hardware. Use xdpyinfo to verify that all your visuals are depth 16.
+ Edit your XF86Config file if needed.
+
+ o The i810 uses system ram for video and 3d graphics. The X server will
+ ordinarily reserve 4mb of ram for graphics, which is too little for an
+ effective 3d setup. To tell the driver to use a larger amount, specify
+ a VideoRam option in the Device section of your XF86Config file. A num-
+ ber between 10000 and 16384 seems adequate for most requirements. If
+ too little memory is available for DMA buffers, back and depth buffers
+ and textures, direct rendering will be disabled.
+
+10.2.4 Performance and Features
+
+Basically all of the i810 features which can be exposed through OpenGL 1.2
+are implemented. However, the following OpenGL features are implemented in
+software and will be slow:
+
+ o Stencil buffer and accumulation buffer operations
+
+ o Blend subtract, min/max and logic op blend modes
+
+ o glColorMask when any mask is set to false
+
+ o GL_SEPARATE_SPECULAR_COLOR lighting mode
+
+ o glDrawBuffer(GL_FRONT_AND_BACK)
+
+ o Using 1D or 3D textures
+
+ o Using texture borders
+
+10.3 Matrox G200 and G400
+
+10.3.1 Requirements
+
+A kernel with AGP GART support (such as Linux 2.4.x) is needed.
+
+10.3.2 Configuration
+
+Your XF86Config file's device section must specify the mga device:
+
+ Section "Device"
+ Identifier "MGA"
+ VendorName "Matrox"
+ Driver "mga"
+ Option "AGPMode" "1"
+ VideoRam 32768
+ EndSection
+
+The Screen section should then reference the MGA device:
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "MGA"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+To use a 32bpp screen mode, use this Screen section instead:
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "MGA"
+ Monitor "High Res Monitor"
+ DefaultDepth 24
+ DefaultFbBpp 32
+ Subsection "Display"
+ Depth 24
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+The kernel module for the G200/G400 is named mga.o and should be installed in
+/lib/modules/2.4.x/kernel/drivers/char/drm/. It will be automatically loaded
+by the Xserver if needed.
+
+The DRI 3D driver for the G200/G400 should be in /usr/X11R6/lib/mod-
+ules/dri/mga_dri.so. This will be automatically loaded by libGL.so.
+
+10.3.3 Performance and Features
+
+Software rendering will be used under any of the following conditions:
+
+ o Using glDrawBuffer(GL_FRONT_AND_BACK).
+
+ o Using point, line, or triangle smoothing.
+
+ o Using glLogicOp.
+
+ o Using glPolygonStipple or glLineStipple.
+
+ o Using 1D or 3D textures.
+
+ o Using texture borders.
+
+ o Using glDepthFunc(GL_NEVER).
+
+ o Using the accumulation buffer.
+
+The AGP mode may be set to 1, 2, or 4. One is used by default. Higher AGP
+speeds may result in unreliable performance depending on your motherboard.
+
+Compaq has funded the implementation of AGP accelerated ReadPixels and Draw-
+Pixels in this driver. With this implementation, on a G400 drawing directly
+from AGP memory (exported to the client), throughput of up to 1 GB/sec has
+been measured.
+
+Additionally Compaq's funding has produced several new extensions in Mesa,
+including one (packed_depth_stencil_MESA) which enables Read/DrawPixels func-
+tionality to operate directly on the packed 24/8 depth/stencil buffers of
+this hardware.
+
+In order to access this functionality, the application must ensure that all
+pixel processing operations are disabled. There are in addition a fairly
+complex set of rules regarding which packing/unpacking modes must be used,
+and which data formats are supported, and alignment constraints. See the
+files in lib/GL/mesa/src/drv/mga/DOCS for a summary of these. The extension
+definitions are included in the Mesa 3.4 source distribution.
+
+10.3.4 IRQ Assignment
+
+There have been problems in the past with the MGA driver being very sluggish
+when the DRI is enabled (to the point of being unusable.) This is caused by
+the graphics card not having an interrupt assigned to it. The current DRI
+trunk will attempt to detect this condition and bail out gracefully.
+
+The solution to the above problem is to assign an interrupt to your graphics
+card. This is something you must turn on in your system BIOS configuration.
+Please consult your system BIOS manual for instructions on how to enable an
+interrupt for your graphics card.
+
+10.3.5 MGA HAL lib
+
+MGAHALlib.a is a binary library Matrox has provided for use under Linux to
+expose functionality for which they can not provide documentation. (For
+example TV-Out requires MacroVision be enabled on the output.) This binary
+library also sets the pixel/memory clocks to the optimal settings for your
+Matrox card.
+
+Currently the MGAHAL library is required for the G450 to work. You can down-
+load this from the driver section on Matrox's website: www.matrox.com/mga
+
+Here modifications to the DRI build instructions which make the mga ddx
+driver use the MGAHAL library:
+
+ 1.Put the following define in your host.def file
+ #define UseMatroxHal YES
+ 2. Place mgaHALlib.a in the following directory
+ xc/programs/Xserver/hw/xfree86/drivers/mga/HALlib/
+
+You can use DualHead on the G400/G450 DH cards by creating two device sec-
+tions which both point to the same BusID. For most AGP devices the BusID
+will be "PCI:1:0:0". Configure your screen section as you would normally
+configure XFree86 4.x Multihead. It should be noted that currently the sec-
+ond head does not support direct rendering.
+
+10.3.6 Known Problems
+
+None.
+
+10.4 ATI Rage 128
+
+10.4.1 Requirements
+
+A kernel with AGP GART support (such as Linux 2.4.x) is needed.
+
+10.4.2 Configuration
+
+Your XF86Config file's device section must specify the ati device:
+
+ Section "Device"
+ Identifier "Rage128"
+ VendorName "ATI"
+ Driver "ati"
+ Option "AGPMode" "1"
+ Option "UseCCEFor2D" "false"
+ EndSection
+
+The Screen section should then reference the Rage 128 device:
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Rage128"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ Subsection "Display"
+ Depth 32
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+The kernel module for the Rage 128 is named r128.o and should be installed in
+/lib/modules/2.4.x/kernel/drivers/char/drm/. It will be automatically loaded
+by the Xserver if needed.
+
+The DRI 3D driver for the Rage 128 should be in /usr/X11R6/lib/mod-
+ules/dri/r128_dri.so. This will be automatically loaded by libGL.so.
+
+You may also set your screen depth to 32 for 32bpp mode.
+
+10.4.3 Performance and Features
+
+While PCI Rage 128 based cards are supported, they do not yet support PCI
+GART, so they will not perform as well as their AGP counterparts.
+
+For AGP cards, the AGP mode may be set to 1, 2, or 4. One is used by
+default. Higher AGP speeds may result in unreliable performance depending on
+your motherboard.
+
+Note that even at 32bpp there is no alpha channel.
+
+The following OpenGL features are implemented in software and will be slow:
+
+ o accumulation buffer operations
+
+ o stencil, when using a 16bpp screen
+
+ o Blend subtract, min/max and logic op blend modes
+
+ o GL_SEPARATE_SPECULAR_COLOR lighting mode
+
+ o glDrawBuffer(GL_FRONT_AND_BACK)
+
+ o Using 1D or 3D textures
+
+ o Using texture borders
+
+10.4.4 Known Problems
+
+If you experience stability problems you may try setting the UseCCEFor2D
+option to true. This will effectively disable 2D hardware acceleration.
+Performance will be degraded, of course.
+
+10.5 ATI Radeon
+
+10.5.1 Requirements
+
+A kernel with AGP GART support (such as Linux 2.4.x) is needed.
+
+10.5.2 Configuration
+
+Your XF86Config file's device section must specify the ati device:
+
+ Section "Device"
+ Identifier "Radeon"
+ VendorName "ATI"
+ Driver "ati"
+ Option "AGPMode" "1"
+ EndSection
+
+The Screen section should then reference the Radeon device:
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Radeon"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ Subsection "Display"
+ Depth 32
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+The kernel module for the Radeon is named radeon.o and should be installed in
+/lib/modules/2.4.x/kernel/drivers/char/drm/. It will be automatically loaded
+by the Xserver if needed.
+
+The DRI 3D driver for the Radeon should be in /usr/X11R6/lib/mod-
+ules/dri/radeon_dri.so. This will be automatically loaded by libGL.so.
+
+You may also set your screen depth to 32 for 32bpp mode.
+
+10.5.3 Performance and Features
+
+While this driver supports many of the features of ATI Radeon cards, we do
+not yet fully support the card's TCL features. This work is progressing, but
+is not yet ready.
+
+The AGP mode may be set to 1, 2, or 4. One is used by default. Higher AGP
+speeds may result in unreliable performance depending on your motherboard.
+
+The following OpenGL features are implemented in software and will be slow:
+
+ o Blend subtract, blend min/max and blend logicops
+
+ o Stencil and accumulation operations
+
+ o 1D and 3D textures
+
+ o Texture borders
+
+The GL_EXT_texture_env_combine, GL_EXT_texture_env_add and GL_EXT_tex-
+ture_env_dot3 extensions are supported (or will be soon supported in the new
+driver based on Mesa 3.5).
+
+We hope to implement support for the following features in the future:
+
+ o Vertex transformation, clipping and lighting (TCL)
+
+ o Hardware stencil buffer
+
+ o Cube map textures
+
+ o 3D textures
+
+ o Three texture units
+
+10.5.4 Known Problems
+
+Certain (early?) revisions of the AMD Irongate chipset have AGPGART problems
+which effect Radeon, and other graphics cards. The card may work unreliably,
+or not work at all. If the DRM kernel module is not loaded, the 2D Xserver
+may work. There's hope that this can be fixed in the future.
+
+10.6 3DLabs Oxygen GMX 2000
+
+The driver for this hardware was experimental and is no longer being devel-
+oped or supported.
+
+11. General Limitations and Known Bugs
+
+11.1 OpenGL
+
+The following OpenGL features are not supported at this time: overlays,
+stereo, hardware-accelerated indirect rendering.
+
+OpenGL-like functionality is provided with the Mesa library. XFree86 4.1.0
+uses Mesa 3.4.2. Subsequent releases of XFree86 will use newer versions of
+Mesa. When newer versions of Mesa are available, the 3D drivers can be
+updated without reinstalling XFree86 or libGL.so.
+
+11.2 GLX
+
+The GLX 1.3 API is exported but none of the new 1.3 functions are opera-
+tional.
+
+The new glXGetProcAddressARB function is fully supported.
+
+GLXPixmap rendering is only supported for indirect rendering contexts. This
+is a common OpenGL limitation. Attempting to use a direct rendering context
+with a GLXPixmap will result in an X protocol error.
+
+11.3 Debugging
+
+Debugging DRI drivers with gdb can be difficult because of the locking
+involved. When debugging OpenGL applications, you should avoid stepping
+inside the GL functions. If you're trying to debug a DRI driver it's recom-
+mended that you do so remotely, from a second system.
+
+11.4 Scheduling
+
+When you run multiple GL applications at once you may notice poor time slic-
+ing. This is due to an interaction problem with the Linux scheduler which
+will be addressed in the future.
+
+11.5 libGL.so and dlopen()
+
+A number of popular OpenGL applications on Linux (such as Quake3, HereticII,
+Heavy Gear 2, etc) dynamically open the libGL.so library at runtime with
+dlopen(), rather than linking with -lGL at compile/link time.
+
+If dynamic loading of libGL.so is not implemented carefully, there can be a
+number of serious problems. Here are the things to be careful of in your
+application:
+
+ o Specify the RTLD_GLOBAL flag to dlopen(). If you don't do this then
+ you'll likely see a runtime error message complaining that _glapi_Con-
+ text is undefined when libGL.so tries to open a hardware-specific
+ driver. Without this flag, nested opening of dynamic libraries does not
+ work.
+
+ o Do not close the library with dlclose() until after XCloseDisplay() has
+ been called. When libGL.so initializes itself it registers several
+ callbacks functions with Xlib. When XCloseDisplay() is called those
+ callback functions are called. If libGL.so has already been unloaded
+ with dlclose() this will cause a segmentation fault.
+
+ o Your application should link with -lpthread. On Linux, libGL.so uses
+ the pthreads library in order to provide thread safety. There is appar-
+ ently a bug in the dlopen()/dlclose() code which causes crashes if the
+ library uses pthreads but the parent application doesn't. The only
+ known work-around is to link the application with -lpthread.
+
+Some applications don't yet incorporate these procedures and may fail. For
+example, changing the graphics settings in some video games will expose this
+problem. The DRI developers are working with game vendors to prevent this
+problem in the future.
+
+11.6 Bug Database
+
+The DRI bug database which includes bugs related to specific drivers is at
+the SourceForge DRI Bug Database
+
+Please scan both the open and closed bug lists to determine if your problem
+has already been reported and perhaps fixed.
+
+12. Resources
+
+12.1 Software
+
+A collection of useful configuration files, libraries, headers, utilities and
+demo programs is available from http://dri.sourceforge.net/res.phtml
+
+12.2 Documentation
+
+ o General OpenGL information is available at the OpenGL Home Page
+
+ o XFree86 information is available at the XFree86 Home Page
+
+ o Information about the design of the DRI is available from Precision
+ Insight, Inc.
+
+ o Visit the DRI project on SourceForge.net for the latest development news
+ about the DRI and 3D drivers.
+
+ o The DRI Compilation Guide explains how to download, compile and install
+ the DRI for yourself.
+
+12.3 Support
+
+ o The DRI-users mailing list at SourceForge is a forum for people to dis-
+ cuss DRI problems.
+
+ o In the future there may be IHV and Linux vendor support resources for
+ the DRI.
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.29 2003/02/17 03:57:29 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRI,v 1.21 2003/02/17 04:04:07 dawes Exp $
diff --git a/hw/xfree86/doc/README.fonts b/hw/xfree86/doc/README.fonts
new file mode 100644
index 000000000..fb1c1f5fb
--- /dev/null
+++ b/hw/xfree86/doc/README.fonts
@@ -0,0 +1,1146 @@
+ Fonts in XFree86
+
+ Juliusz Chroboczek, <jch@xfree86.org>
+
+ 17 January 2003
+
+1. Introduction
+
+This document describes the support for fonts in XFree86. Installing fonts
+(section 2., page 1) is aimed at the casual user wishing to install fonts in
+XFree86; the rest of the document describes the font support in more detail.
+
+We assume some familiarity with digital fonts. If anything is not clear to
+you, please consult Appendix: Background (section 5., page 1) at the end of
+this document for background information.
+
+1.1 Two font systems
+
+XFree86 includes two font systems: the core X11 fonts system, which is pre-
+sent in all implementations of X11, and the Xft fonts system, which is not
+currently distributed with implementations of X11 that are not based on
+XFree86 but will hopefully be included by them in the future
+
+The core X11 fonts system is directly derived from the fonts system included
+with X11R1 in 1987, which could only use monochrome bitmap fonts. Over the
+years, it has been more or less happily coerced into dealing with scalable
+fonts and rotated glyphs.
+
+Xft was designed from the start to provide good support for scalable fonts,
+and do so efficiently. Unlike the core fonts system, it supports features
+such as anti-aliasing and sub-pixel rasterisation. Perhaps more importantly,
+it gives applications full control over the way glyphs are rendered, making
+fine typesetting and WYSIWIG display possible. Finally, it allows applica-
+tions to use fonts that are not installed system-wide for displaying docu-
+ments with embedded fonts.
+
+Xft is not compatible with the core fonts system: usage of Xft requires mak-
+ing fairly extensive changes to toolkits (user-interface libraries). While
+XFree86 will continue to maintain the core fonts system, toolkit authors are
+encouraged to switch to Xft as soon as possible.
+
+2. Installing fonts
+
+This section explains how to configure both Xft and the core fonts system to
+access newly-installed fonts.
+
+2.1 Configuring Xft
+
+Xft has no configuration mechanism itself, rather it relies upon the fontcon-
+fig library to configure and customize fonts. That library is not specific
+to XFree86 or indeed on any particular font output mechanism. This discus-
+sion describes how fontconfig, rather than Xft, works.
+
+2.1.1 Installing fonts in Xft
+
+Fontconfig looks for fonts in a set of well-known directories that include
+all of XFree86's standard font directories (`/usr/X11R6/lib/X11/lib/fonts/*')
+by default) as well as a directory called `.fonts/' in the user's home direc-
+tory. Installing a font for use by Xft applications is as simple as copying
+a font file into one of these directories.
+
+ $ cp lucbr.ttf ~/.fonts/
+
+Fontconfig will notice the new font at the next opportunity and rebuild its
+list of fonts. If you want to trigger this update from the command line (for
+example in order to globally update the system-wide Fontconfig information),
+you may run the command `fc-cache'.
+
+ $ fc-cache
+
+2.1.2 Fine-tuning Xft
+
+Fontconfig's behaviour is controlled by a set of configuration files: a sys-
+tem-wide configuration file, `/etc/fonts/fonts.conf', and a user-specific
+file called `.fonts.conf' in the user's home directory (this can be overrid-
+den with the `FONTCONFIG_FILE' environment variable).
+
+Every Fontconfig configuration file must start with the following boiler-
+plate:
+
+ <?xml version="1.0"?>
+ <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+ <fontconfig>
+
+In addition, every Fontconfig configuration file must end with the following
+line:
+
+ </fontconfig>
+
+The default Fontconfig configuration file includes the directory `~/.fonts/'
+in the list of directories searched for font files, and this is where user-
+specific font files should be installed. In the unlikely case that a new
+font directory needs to be added, this can be done with the following syntax:
+
+ <dir>/usr/local/share/fonts/</dir>
+
+Another useful option is the ability to disable anti-aliasing (font smooth-
+ing) for selected fonts. This can be done with the following syntax:
+
+ <match target="font">
+ <test qual="any" name="family">
+ <string>Lucida Console</string>
+ </test>
+ <edit name="antialias" mode="assign">
+ <bool>false</bool>
+ </edit>
+ </match>
+
+Anti-aliasing can be disabled for all fonts by the following incantation:
+
+ <match target="font">
+ <edit name="antialias" mode="assign">
+ <bool>false</bool>
+ </edit>
+ </match>
+
+Xft supports sub-pixel rasterisation on LCD displays. XFree86 should auto-
+matically enable this feature on laptops and when using an LCD monitor con-
+nected with a DVI cable; you can check whether this was done by typing
+
+ $ xdpyinfo -ext RENDER | grep sub-pixel
+
+If this doesn't print anything, you will need to configure Render for your
+particular LCD hardware manually; this is done with the following syntax:
+
+ <match target="font">
+ <edit name="rgba" mode="assign">
+ <const>rgb</const>
+ </edit>
+ </match>
+
+The string `rgb' within the `<const>'...`</const>' specifies the order of
+pixel components on your display, and should be changed to match your hard-
+ware; it can be one of `rgb (normal LCD screen), `bgr' (backwards LCD
+screen), `vrgb' (LCD screen rotated clockwise) or `vbgr' (LCD screen rotated
+counterclockwise).
+
+2.1.3 Configuring applications
+
+Because most current applications use the core fonts system by default, it is
+necessary to explicitly configure them to use Xft. How this is done depends
+on the application.
+
+XTerm can be set to use Xft by using the `-fa' command line option or by set-
+ting the `XTerm*faceName' resource:
+
+ XTerm*faceName: Courier
+
+or
+
+ $ xterm -fa "Courier"
+
+For applications based on GTK+ 2.0 (including GNOME 2 applications), the
+environment variable `GDK_USE_XFT' should be set to `1':
+
+ $ export GDK_USE_XFT=1
+
+GTK+ 2.2 uses Xft by default.
+
+For KDE applications, you should select ``Anti-alias fonts'' in the ``Fonts''
+panel of KDE's ``Control Center''. Note that this option is misnamed: it
+switches KDE to using Xft but doesn't enable anti-aliasing in case it was
+disabled by your Xft configuration file.
+
+(What about Mozilla?)
+
+2.1.4 Troubleshooting
+
+If some Xft-based applications don't seem to notice the changes you are mak-
+ing to your configuration files, they may be linked against the XFree86 4.2
+version of Xft. In order to fix the problem, you should relink them against
+a current version of Xft; on most systems, it is enough to install the cur-
+rent version of the Xft and Fontconfig libraries.
+
+If, for some reason, you cannot upgrade the shared libraries, please check
+the Xft(3) manual page included with XFree86 4.2 for the configuration mecha-
+nisms of the previous version of Xft.
+
+2.2 Configuring the core X11 fonts system
+
+Installing fonts in the core system is a two step process. First, you need
+to create a font directory that contains all the relevant font files as well
+as some index files. You then need to inform the X server of the existence
+of this new directory by including it in the font path.
+
+2.2.1 Installing bitmap fonts
+
+The XFree86 server can use bitmap fonts in both the cross-platform BDF format
+and the somewhat more efficient binary PCF format. (XFree86 also supports
+the obsolete SNF format.)
+
+Bitmap fonts are normally distributed in the BDF format. Before installing
+such fonts, it is desirable (but not absolutely necessary) to convert the
+font files to the PCF format. This is done by using the command `bdftopcf',
+e.g.
+
+ $ bdftopcf courier12.bdf
+
+You will then want to compress the resulting PCF font files:
+
+ $ gzip courier12.pcf
+
+After the fonts have been converted, you should copy all the font files that
+you wish to make available into a arbitrary directory, say
+`/usr/local/share/fonts/bitmap/'. You should then create the index file
+`fonts.dir' by running the command `mkfontdir' (please see the mkfontdir(1)
+manual page for more information):
+
+ $ mkdir /usr/local/share/fonts/bitmap/
+ $ cp *.pcf.gz /usr/local/share/fonts/bitmap/
+ $ mkfontdir /usr/local/share/fonts/bitmap/
+
+All that remains is to tell the X server about the existence of the new font
+directory; see Setting the server font path (section 2.2.4, page 1) below.
+
+2.2.2 Installing scalable fonts
+
+The XFree86 server supports scalable fonts in four formats: Type 1, Speedo,
+TrueType and CIDFont. This section only applies to the former three; for
+information on CIDFonts, please see Installing CIDFonts (section 2.2.3, page
+1) later in this document.
+
+Installing scalable fonts is very similar to installing bitmap fonts: you
+create a directory with the font files, and run `mkfontdir' to create an
+index file called `fonts.dir'.
+
+There is, however, a big difference: `mkfontdir' cannot automatically recog-
+nise scalable font files. For that reason, you must first index all the font
+files in a file called `fonts.scale'. While this can be done by hand, it is
+best done by using the `mkfontscale' utility.
+
+ $ mkfontscale /usr/local/share/fonts/Type1/
+ $ mkfontdir /usr/local/share/fonts/Type1/
+
+Under some circumstances, it may be necessary to modify the `fonts.scale'
+file generated by mkfontscale; for more information, please see the mkfont-
+dir(1) and mkfontscale(1) manual pages and Core fonts and internationalisa-
+tion (section 4.1, page 1) later in this document.
+
+2.2.3 Installing CID-keyed fonts
+
+The CID-keyed font format was designed by Adobe Systems for fonts with large
+character sets. A CID-keyed font, or CIDFont for short, contains a collec-
+tion of glyphs indexed by character ID (CID).
+
+In order to map such glyphs to meaningful indices, Adobe provide a set of
+CMap files. The PostScript name of a font generated from a CIDFont consists
+of the name of the CIDFont and the name of the CMap separated by two dashes.
+For example, the font generated from the CIDFont `Munhwa-Regular' using the
+CMap `UniKS-UCS2-H' is called
+
+ Munhwa-Regular--UniKS-UCS2-H
+
+The CIDFont code in XFree86 requires a very rigid directory structure. The
+main directory must be called `CID' (its location defaults to
+`/usr/X11R6/lib/X11/fonts/CID' but it may be located anywhere), and it should
+contain a subdirectory for every CID collection. Every subdirectory must
+contain subdirectories called CIDFont (containing the actual CIDFont files),
+CMap (containing all the needed CMaps), AFM (containing the font metric
+files) and CFM (initially empty). For example, in the case of the font
+Munhwa-Regular that uses the CID collection Adobe-Korea1-0, the directory
+structure should be as follows:
+
+ CID/Adobe-Korea1/CIDFont/Munhwa-Regular
+ CID/Adobe-Korea1/CMap/UniKS-UCS2-H
+ CID/Adobe-Korea1/AFM/Munhwa-Regular.afm
+ CID/Adobe-Korea1/CFM/
+ CID/fonts.dir
+ CID/fonts.scale
+
+After creating this directory structure and copying the relevant files, you
+should create a <`tt/fonts.scale/' file. This file has the same format as in
+the case of (non-CID) scalable fonts, except that its first column contains
+PostScript font names with the extension `.cid' appended rather than actual
+filenames:
+
+ 1
+ Adobe-Korea1/Munhwa-Regular--UniKS-UCS2-H.cid \
+ -adobe-munhwa-medium-r-normal--0-0-0-0-p-0-iso10646-1
+
+(both names on the same line). Running `mkfontdir' creates the `fonts.dir'
+file:
+
+ $ cd /usr/local/share/fonts/CID
+ $ mkfontdir
+
+Finally, you should create the font metrics summary files in the directory
+`CFM' by running the command `mkcfm':
+
+ $ mkcfm /usr/local/share/fonts/CID
+
+If no CFM files are available, the server will still be able to use the CID
+fonts but querying them will take a long time. You should run `mkcfm' again
+whenever a change is made to any of the CID-keyed fonts, or when the CID-
+keyed fonts are copied to a machine with a different architecture.
+
+2.2.4 Setting the server's font path
+
+The list of directories where the server looks for fonts is known as the font
+path. Informing the server of the existence of a new font directory consists
+of putting it on the font path.
+
+The font path is an ordered list; if a client's request matches multiple
+fonts, the first one in the font path is the one that gets used. When match-
+ing fonts, the server makes two passes over the font path: during the first
+pass, it searches for an exact match; during the second, it searches for
+fonts suitable for scaling.
+
+For best results, scalable fonts should appear in the font path before the
+bitmap fonts; this way, the server will prefer bitmap fonts to scalable fonts
+when an exact match is possible, but will avoid scaling bitmap fonts when a
+scalable font can be used. (The `:unscaled' hack, while still supported,
+should no longer be necessary in XFree86 4.0 and later.)
+
+You may check the font path of the running server by typing the command
+
+ $ xset q
+
+2.2.4.1 Temporary modification of the font path
+
+The `xset' utility may be used to modify the font path for the current ses-
+sion. The font path is set with the command xset fp; a new element is added
+to the front with xset +fp, and added to the end with xset fp+. For example,
+
+ $ xset +fp /usr/local/fonts/Type1
+ $ xset fp+ /usr/local/fonts/bitmap
+
+Conversely, an element may be removed from the front of the font path with
+`xset -fp', and removed from the end with `xset fp-'. You may reset the font
+path to its default value with `xset fp default'.
+
+For more information, please consult the xset(1) manual page.
+
+2.2.4.2 Permanent modification of the font path
+
+The default font path (the one used just after server startup or after `xset
+fp default') is specified in the X server's `XF86Config' file. It is com-
+puted by appending all the directories mentioned in the `FontPath' entries of
+the `Files' section in the order in which they appear.
+
+ FontPath "/usr/local/fonts/Type1"
+ ...
+ FontPath "/usr/local/fonts/bitmap"
+
+For more information, please consult the XF86Config(5) manual page.
+
+2.2.5 Troubleshooting
+
+If you seem to be unable to use some of the fonts you have installed, the
+first thing to check is that the `fonts.dir' files are correct and that they
+are readable by the server (the X server usually runs as root, beware of NFS-
+mounted font directories). If this doesn't help, it is quite possible that
+you are trying to use a font in a format that is not supported by your
+server.
+
+XFree86 supports the BDF, PCF, SNF, Type 1, Speedo, TrueType, OpenType and
+CIDFont font formats. However, not all XFree86 servers come with all the
+font backends configured in.
+
+On most platforms, the XFree86 servers are modular: the font backends are
+included in modules that are loaded at runtime. The modules to be loaded are
+specified in the `XF86Config' file using the `Load' directive:
+
+ Load "type1"
+
+If you have trouble installing fonts in a specific format, you may want to
+check the server's log file in order to see whether the relevant modules are
+properly loaded. The list of font modules distributed with XFree86 is as
+follows:
+
+ o "bitmap": bitmap fonts (`*.bdf', `*.pcf' and `*.snf');
+
+ o "freetype": TrueType fonts (`*.ttf' and `*.ttc'), OpenType fonts
+ (`*.otf' and `*.otc') and Type 1 fonts (`*.pfa' and `*.pfb');
+
+ o "type1": alternate Type 1 backend (`*.pfa' and `*.pfb') and CIDFont
+ backend;
+
+ o "xtt": alternate TrueType backend (`*.ttf' and `*.ttc');
+
+ o "speedo": Bitstream Speedo fonts (`*.spd').
+
+Please note that the argument of the `Load' directive is case-sensitive.
+
+3. Fonts included with XFree86
+
+3.1 Standard bitmap fonts
+
+The Sample Implementation of X11 (SI) comes with a large number of bitmap
+fonts, including the `fixed' family, and bitmap versions of Courier, Times,
+Helvetica and some members of the Lucida family. In the SI, these fonts are
+provided in the ISO 8859-1 encoding (ISO Latin Western-European).
+
+In XFree86, a number of these fonts are provided in Unicode-encoded font
+files instead. At build time, these fonts are split into font files encoded
+according to legacy encodings, a process which allows us to provide the stan-
+dard fonts in a number of regional encodings with no duplication of work.
+
+For example, the font file
+
+ /usr/X11R6/lib/X11/fonts/misc/6x13.bdf
+
+with XLFD
+
+ -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
+
+is a Unicode-encoded version of the standard `fixed' font with added support
+for the Latin, Greek, Cyrillic, Georgian, Armenian, IPA and other scripts
+plus numerous technical symbols. It contains over 2800 glyphs, covering all
+characters of ISO 8859 parts 1-5, 7-10, 13-15, as well as all European IBM
+and Microsoft code pages, KOI8, WGL4, and the repertoires of many other char-
+acter sets.
+
+This font is used at build time for generating the font files
+
+ 6x13-ISO8859-1.bdf
+ 6x13-ISO8859-2.bdf
+ ...
+ 6x13-ISO8859-15.bdf
+ 6x13-KOI8-R.bdf
+
+with respective XLFDs
+
+ -misc-fixed-medium-r-normal--13-120-75-75-c-60-iso8859-1
+ ...
+ -misc-fixed-medium-r-normal--13-120-75-75-c-60-iso8859-15
+ -misc-fixed-medium-r-normal--13-120-75-75-c-60-koi8-r
+
+The standard short name `fixed' is normally an alias for
+
+ -misc-fixed-medium-r-normal--13-120-75-75-c-60-iso8859-1
+
+3.2 The ClearlyU Unicode font family
+
+The ClearlyU family of fonts provides a set of 12 pt, 100 dpi proportional
+fonts with many of the glyphs needed for Unicode text. Together, the fonts
+contain approximately 7500 glyphs.
+
+The main ClearlyU font has the XLFD
+
+ -mutt-clearlyu-medium-r-normal--17-120-100-100-p-101-iso10646-1
+
+and resides in the font file
+
+ /usr/X11R6/lib/X11/fonts/misc/cu12.pcf.gz
+
+Additional ClearlyU fonts include
+
+ -mutt-clearlyu alternate glyphs-medium-r-normal--17-120-100-100-p-91-iso10646-1
+ -mutt-clearlyu pua-medium-r-normal--17-120-100-100-p-111-iso10646-1
+ -mutt-clearlyu arabic extra-medium-r-normal--17-120-100-100-p-103-fontspecific-0
+ -mutt-clearlyu ligature-medium-r-normal--17-120-100-100-p-141-fontspecific-0
+
+The Alternate Glyphs font contains additional glyph shapes that are needed
+for certain languages. A second alternate glyph font will be provided later
+for cases where a character has more than one commonly used alternate shape
+(e.g. the Urdu heh).
+
+The PUA font contains extra glyphs that are useful for certain rendering pur-
+poses.
+
+The Arabic Extra font contains the glyphs necessary for characters that don't
+have all of their possible shapes encoded in ISO 10646. The glyphs are
+roughly ordered according to the order of the characters in the ISO 10646
+standard.
+
+The Ligature font contains ligatures for various scripts that may be useful
+for improved presentation of text.
+
+3.3 Standard scalable fonts
+
+XFree86 includes all the scalable fonts distributed with X11R6.
+
+3.3.1 Standard Type 1 fonts
+
+The IBM Courier set of fonts cover ISO 8859-1 and ISO 8859-2 as well as Adobe
+Standard Encoding. These fonts have XLFD
+
+ -adobe-courier-medium-*-*--0-0-0-0-m-0-*-*
+
+and reside in the font files
+
+ /usr/X11R6/lib/X11/fonts/Type1/cour*.pfa
+
+The Adobe Utopia set of fonts only cover ISO 8859-1 as well as Adobe Standard
+Encoding. These fonts have XLFD
+
+ -adobe-utopia-*-*-normal--0-0-0-0-p-0-iso8859-1
+
+and reside in the font files
+
+ /usr/X11R6/lib/X11/fonts/Type1/UT*.pfa
+
+Finally, XFree86 also comes with Type 1 versions of Bitstream Courier and
+Charter. These fonts have XLFD
+
+ -bitstream-courier-*-*-normal--0-0-0-0-m-0-iso8859-1
+ -bitstream-charter-*-*-normal--0-0-0-0-p-0-iso8859-1
+
+and reside in the font files
+
+ /usr/X11R6/lib/X11/fonts/Type1/c*bt_.pfb
+
+3.3.2 Standard Speedo fonts
+
+XFree86 includes Speedo versions of the Bitstream Courier and Charter fonts.
+In order to use these fonts, you should ensure that your X server is loading
+the `Speedo' font backend; see Troubleshooting (section 2.2.5, page 1).
+
+These fonts cover all of ISO 8859-1 and almost all of ISO 8859-2. They have
+XLFD name
+
+ -bitstream-courier-*-*-normal--0-0-0-0-m-0-*-*
+ -bitstream-charter-*-*-normal--0-0-0-0-p-0-*-*
+
+and reside in the font files
+
+ /usr/X11R6/lib/X11/fonts/Speedo/font*.spd
+
+3.4 The Bigelow & Holmes Luxi family
+
+XFree86 includes the Luxi family of scalable fonts, in both TrueType and
+Type 1 format. This family consists of the fonts Luxi Serif, with XLFD
+
+ -b&h-luxi serif-medium-*-normal--*-*-*-*-p-*-*-*
+
+Luxi Sans, with XLFD
+
+ -b&h-luxi sans-medium-*-normal--*-*-*-*-p-*-*-*
+
+and Luxi Mono, with XLFD
+
+ -b&h-luxi mono-medium-*-normal--*-*-*-*-m-*-*-*
+
+Each of these fonts comes Roman, oblique, bold and bold oblique variants The
+TrueType version have glyphs covering the basic ASCII Unicode range, the
+Latin 1 range, as well as the Extended Latin range and some additional punc-
+tuation characters. In particular, these fonts include all the glyphs needed
+for ISO 8859 parts 1, 2, 3, 4, 9, 13 and 15, as well as all the glyphs in the
+Adobe Standard encoding and the Windows 3.1 character set.
+
+The glyph coverage of the Type 1 versions is somewhat reduced, and only cov-
+ers ISO 8859 parts 1, 2 and 15 as well as the Adobe Standard encoding.
+
+The Luxi fonts are original designs by Kris Holmes and Charles Bigelow. Luxi
+fonts include seriffed, sans serif, and monospaced styles, in roman and
+oblique, and normal and bold weights. The fonts share stem weight, x-height,
+capital height, ascent and descent, for graphical harmony.
+
+The character width metrics of Luxi roman and bold fonts match those of core
+fonts bundled with popular operating and window systems.
+
+The license terms for the Luxi fonts are included in the file `COPYRIGHT.BH',
+as well as in the License document.
+
+Charles Bigelow and Kris Holmes from Bigelow and Holmes Inc. developed the
+Luxi typeface designs in Ikarus digital format.
+
+URW++ Design and Development GmbH converted the Ikarus format fonts to True-
+Type and Type1 font programs and implemented the grid-fitting "hints" and
+kerning tables in the Luxi fonts.
+
+For more information, please contact <design@bigelowandholmes.com> or
+<info@urwpp.de>, or consult the URW++ web site <URL:http://www.urwpp.de>.
+
+An earlier version of the Luxi fonts was made available under the name
+Lucidux. This name should no longer be used due to trademark uncertainties,
+and all traces of the Lucidux name have been removed from XFree86.
+
+4. More about core fonts
+
+This section describes XFree86-specific enhancements to the core X11 fonts
+system.
+
+4.1 Core fonts and internationalisation
+
+The scalable font backends (Type 1, Speedo and TrueType) can automatically
+re-encode fonts to the encoding specified in the XLFD in `fonts.dir'. For
+example, a `fonts.dir' file can contain entries for the Type 1 Courier font
+such as
+
+ cour.pfa -adobe-courier-medium-r-normal--0-0-0-0-m-0-iso8859-1
+ cour.pfa -adobe-courier-medium-r-normal--0-0-0-0-m-0-iso8859-2
+
+which will lead to the font being recoded to ISO 8859-1 and ISO 8859-2
+respectively.
+
+4.1.1 The fontenc layer
+
+Three of the scalable backends (Type 1, Speedo, and the FreeType TrueType
+backend) use a common fontenc layer for font re-encoding. This allows these
+backends to share their encoding data, and allows simple configuration of new
+locales independently of font type.
+
+Please note: the X-TrueType (X-TT) backend does not use the fontenc layer,
+but instead uses its own method for font reencoding. If you are only inter-
+ested in X-TT you may want to skip to Using Symbol Fonts (section 4.1.5, page
+1), as the intervening information does not apply to X-TT. X-TT itself is
+described in more detail in X-TrueType (section 4.2.3, page 1).
+
+In the fontenc layer, an encoding is defined by a name (such as iso8859-1),
+possibly a number of aliases (alternate names), and an ordered collection of
+mappings. A mapping defines the way the encoding can be mapped into one of
+the target encodings known to fontenc; currently, these consist of Unicode,
+Adobe glyph names, and arbitrary TrueType ``cmap''s.
+
+A number of encodings are hardwired into fontenc, and are therefore always
+available; the hardcoded encodings cannot easily be redefined. These
+include:
+
+ o iso10646-1: Unicode;
+
+ o iso8859-1: ISO Latin-1 (Western Europe);
+
+ o iso8859-2: ISO Latin-2 (Eastern Europe);
+
+ o iso8859-3: ISO Latin-3 (Southern Europe);
+
+ o iso8859-4: ISO Latin-4 (Northern Europe);
+
+ o iso8859-5: ISO Cyrillic;
+
+ o iso8859-6: ISO Arabic;
+
+ o iso8859-7: ISO Greek;
+
+ o iso8859-8: ISO Hebrew;
+
+ o iso8859-9: ISO Latin-5 (Turkish);
+
+ o iso8859-10: ISO Latin-6 (Nordic);
+
+ o iso8859-15: ISO Latin-9, or Latin-0 (Revised Western-European);
+
+ o koi8-r: KOI8 Russian;
+
+ o koi8-u: KOI8 Ukrainian (see RFC 2319);
+
+ o koi8-ru: KOI8 Russian/Ukrainian;
+
+ o koi8-uni: KOI8 ``Unified'' (Russian, Ukrainian, and Byelorussian);
+
+ o koi8-e: KOI8 ``European,'' ISO-IR-111, or ECMA-Cyrillic;
+
+ o microsoft-symbol and apple-roman: these are only likely to be useful
+ with TrueType symbol fonts.
+
+Additional encodings can be added by defining encoding files. When a font
+encoding is requested that the fontenc layer doesn't know about, the backend
+checks the directory in which the font file resides (not necessarily the
+directory with fonts.dir!) for a file named `encodings.dir'. If found, this
+file is scanned for the requested encoding, and the relevant encoding defini-
+tion file is read in. The `mkfontdir' utility, when invoked with the `-e'
+option followed by the name of a directory containing encoding files, can be
+used to automatically build `encodings.dir' files. Please see the mkfont-
+dir(1) manual page for more details.
+
+A number of encoding files for common encodings are included with XFree86.
+Information on writing new encoding files can be found in Format of encodings
+directory files (section 4.1.3, page 1) and Format of encoding files (section
+4.1.4, page 1) later in this document.
+
+4.1.2 Backend-specific notes about fontenc
+
+4.1.2.1 The FreeType backend
+
+For TrueType and OpenType fonts, the FreeType backend scans the mappings in
+order. Mappings with a target of PostScript are ignored; mappings with a
+TrueType or Unicode target are checked against all the cmaps in the file.
+The first applicable mapping is used.
+
+For Type 1 fonts, the FreeType backend first searches for a mapping with a
+target of PostScript. If one is found, it is used. Otherwise, the backend
+searches for a mapping with target Unicode, which is then composed with a
+built-in table mapping codes to glyph names. Note that this table only cov-
+ers part of the Unicode code points that have been assigned names by Adobe.
+
+Specifying an encoding value of adobe-fontspecific for a Type 1 font disables
+the encoding mechanism. This is useful with symbol and incorrectly encoded
+fonts (see Incorrectly encoded fonts (section 4.1.6, page 1) below).
+
+If a suitable mapping is not found, the FreeType backend defaults to
+ISO 8859-1.
+
+4.1.2.2 Type 1
+
+The Type 1 backend behaves similarly to the FreeType backend with Type 1
+fonts, except that it limits all encodings to 8-bit codes.
+
+4.1.2.3 Speedo
+
+The Speedo backend searches for a mapping with a target of Unicode, and uses
+it if found. If none is found, the backend defaults to ISO 8859-1.
+
+The Speedo backend limits all encodings to 8-bit codes.
+
+4.1.3 Format of encoding directory files
+
+In order to use a font in an encoding that the font backend does not know
+about, you need to have an `encodings.dir' file either in the same directory
+as the font file used or in a system-wide location
+(`/usr/X11R6/lib/X11/fonts/encodings/' by default).
+
+The `encodings.dir' file has a similar format to `fonts.dir'. Its first line
+specifies the number of encodings, while every successive line has two
+columns, the name of the encoding, and the name of the encoding file; this
+can be relative to the current directory, or absolute. Every encoding name
+should agree with the encoding name defined in the encoding file. For exam-
+ple,
+
+ 3
+ mulearabic-0 /usr/X11R6/lib/X11/fonts/encodings/mulearabic-0.enc
+ mulearabic-1 /usr/X11R6/lib/X11/fonts/encodings/mulearabic-1.enc
+ mulearabic-2 /usr/X11R6/lib/X11/fonts/encodings/mulearabic-2.enc
+
+The name of an encoding must be specified in the encoding file's `STARTENCOD-
+ING' or `ALIAS' line. It is not enough to create an `encodings.dir' entry.
+
+If your platform supports it (it probably does), encoding files may be com-
+pressed or gzipped.
+
+The `encoding.dir' files are best maintained by the `mkfontdir' utility.
+Please see the mkfontdir(1) manual page for more information.
+
+4.1.4 Format of encoding files
+
+The encoding files are ``free form,'' i.e. any string of whitespace is equiv-
+alent to a single space. Keywords are parsed in a non-case-sensitive manner,
+meaning that `size', `SIZE', and `SiZE' all parse as the same keyword; on the
+other hand, case is significant in glyph names.
+
+Numbers can be written in decimal, as in `256', in hexadecimal, as in
+`0x100', or in octal, as in `0400'.
+
+Comments are introduced by a hash sign `#'. A `#' may appear at any point in
+a line, and all characters following the `#' are ignored, up to the end of
+the line.
+
+The encoding file starts with the definition of the name of the encoding, and
+possibly its alternate names (aliases):
+
+ STARTENCODING mulearabic-0
+ ALIAS arabic-0
+
+The name of the encoding and its aliases should be suitable for use in an
+XLFD font name, and therefore contain exactly one dash `-'.
+
+The encoding file may then optionally declare the size of the encoding. For
+a linear encoding (such as ISO 8859-1), the SIZE line specifies the maximum
+code plus one:
+
+ SIZE 0x2B
+
+For a matrix encoding, it should specify two numbers. The first is the num-
+ber of the last row plus one, the other, the highest column number plus one.
+In the case of `jisx0208.1990-0' (JIS X 0208(1990), double-byte encoding,
+high bit clear), it should be
+
+ SIZE 0x75 0x80
+
+In the case of a matrix encoding, a `FIRSTINDEX' line may be included to
+specify the minimum glyph index in an encoding. The keyword `FIRSTINDEX' is
+followed by two integers, the minimum row number followed by the minimum col-
+umn number:
+
+ FIRSTINDEX 0x20 0x20
+
+In the case of a linear encoding, a `FIRSTINDEX' line is not very useful. If
+for some reason however you chose to include on, it should be followed by a
+single integer.
+
+Note that in most font backends inclusion of a `FIRSTINDEX' line has the side
+effect of disabling default glyph generation, and this keyword should there-
+fore be avoided unless absolutely necessary.
+
+Codes outside the region defined by the `SIZE' and `FIRSTINDEX' lines are
+understood to be undefined. Encodings default to linear encoding with a size
+of 256 (0x100). This means that you must declare the size of all 16 bit
+encodings.
+
+What follows is one or more mapping sections. A mapping section starts with
+a `STARTMAPPING' line stating the target of the mapping. The target may be
+one of:
+
+ o Unicode (ISO 10646):
+
+ STARTMAPPING unicode
+
+ o a given TrueType ``cmap'':
+
+ STARTMAPPING cmap 3 1
+
+ o PostScript glyph names:
+
+ STARTMAPPING postscript
+
+Every line in a mapping section maps one from the encoding being defined to
+the target of the mapping. In mappings with a Unicode or TrueType mapping,
+codes are mapped to codes:
+
+ 0x21 0x0660
+ 0x22 0x0661
+ ...
+
+As an abbreviation, it is possible to map a contiguous range of codes in a
+single line. A line consisting of three integers
+
+ <it/start/ <it/end/ <it/target/
+
+is an abbreviation for the range of lines
+
+ start target
+
+ start+1 target+1
+
+ ...
+
+ end target+end-start
+
+For example, the line
+
+ 0x2121 0x215F 0x8140
+
+is an abbreviation for
+
+ 0x2121 0x8140
+ 0x2122 0x8141
+ ...
+ 0x215F 0x817E
+
+Codes not listed are assumed to map through the identity (i.e. to the same
+numerical value). In order to override this default mapping, you may specify
+a range of codes to be undefined by using an `UNDEFINE' line:
+
+ UNDEFINE 0x00 0x2A
+
+or, for a single code,
+
+ UNDEFINE 0x1234
+
+PostScript mappings are different. Every line in a PostScript mapping maps a
+code to a glyph name
+
+ 0x41 A
+ 0x42 B
+ ...
+
+and codes not explicitly listed are undefined.
+
+A mapping section ends with an ENDMAPPING line
+
+ ENDMAPPING
+
+After all the mappings have been defined, the file ends with an ENDENCODING
+line
+
+ ENDENCODING
+
+In order to make future extensions to the format possible, lines starting
+with an unknown keyword are silently ignored, as are mapping sections with an
+unknown target.
+
+4.1.5 Using symbol fonts
+
+Type 1 symbol fonts should be installed using the adobe-fontspecific encod-
+ing.
+
+In an ideal world, all TrueType symbol fonts would be installed using one of
+the microsoft-symbol and apple-roman encodings. A number of symbol fonts,
+however, are not marked as such; such fonts should be installed using
+microsoft-cp1252, or, for older fonts, microsoft-win3.1.
+
+In order to guarantee consistent results (especially between Type 1 and True-
+Type versions of the same font), it is possible to define a special encoding
+for a given font. This has already been done for the ZapfDingbats font; see
+the file `encodings/adobe-dingbats.enc'.
+
+4.1.6 Hints about using badly encoded fonts
+
+A number of text fonts are incorrectly encoded. Incorrect encoding is some-
+times done by design, in order to make a font for an exotic script appear
+like an ordinary Western text font on systems which are not easily extended
+with new locale data. It is often the result of the font designer's laziness
+or incompetence; for some reason, most people seem to find it easier to
+invent idiosyncratic glyph names rather than follow the Adobe glyph list.
+
+There are two ways of dealing with such fonts: using them with the encoding
+they were designed for, and creating an ad hoc encoding file.
+
+4.1.6.1 Using fonts with the designer's encoding
+
+In the case of Type 1 fonts, the font designer can specify a default encod-
+ing; this encoding is requested by using the `adobe-fontspecific' encoding in
+the XLFD name. Sometimes, the font designer omitted to specify a reasonable
+default encoding, in which case you should experiment with `adobe-standard',
+`iso8859-1', `microsoft-cp1252', and `microsoft-win3.1'. (The encoding
+`microsoft-symbol' doesn't make sense for Type 1 fonts).
+
+TrueType fonts do not have a default encoding. However, most TrueType fonts
+are designed with either Microsoft or Apple platforms in mind, so one of
+`microsoft-symbol', `microsoft-cp1252', `microsoft-win3.1', or `apple-roman'
+should yield reasonable results.
+
+4.1.6.2 Specifying an ad hoc encoding file
+
+It is always possible to define an encoding file to put the glyphs in a font
+in any desired order. Again, see the `encodings/adobe-dingbats.enc' file to
+see how this is done.
+
+4.1.6.3 Specifying font aliases
+
+By following the directions above, you will find yourself with a number of
+fonts with unusual names --- with encodings such as `adobe-fontspecific',
+`microsoft-win3.1' etc. In order to use these fonts with standard applica-
+tions, it may be useful to remap them to their proper names.
+
+This is done by writing a `fonts.alias' file. The format of this file is very
+simple: it consists of a series of lines each mapping an alias name to a font
+name. A `fonts.alias' file might look as follows:
+
+ "-ogonki-alamakota-medium-r-normal--0-0-0-0-p-0-iso8859-2" \
+ "-ogonki-alamakota-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific"
+
+(both XLFD names on a single line). The syntax of the `fonts.alias' file is
+more precisely described in the mkfontdir(1) manual page.
+
+4.2 Additional notes about scalable core fonts
+
+The FreeType backend (module `freetype', formerly known as xfsft) is able to
+deal with both TrueType and Type 1 fonts. This puts it in conflict with the
+X-TT and Type 1 backends respectively.
+
+If both the FreeType and the Type 1 backends are loaded, the FreeType backend
+will be used for Type 1 fonts. If both the FreeType and X-TT backends are
+loaded, X-TT will be used for TrueType fonts.
+
+4.2.1 Delayed glyph rasterisation
+
+Both FreeType and X-TT delay glyph rasterisation up to the time at which a
+glyph is first used. For this reason, they only provide an approximate value
+for the ``average width'' font property.
+
+Both backends also support an optimisation for character-cell fonts (fonts
+with all glyph metrics equal, or terminal fonts). A font with an XLFD speci-
+fying a character-cell spacing `c', as in
+
+ -misc-mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1990-0
+
+will not rasterise glyphs at metrics computation time, but instead trust the
+font really to be a character-cell font. You are encouraged to make use of
+this optimisation when useful, but be warned that not all monospaced fonts
+are character-cell fonts.
+
+4.2.2 About the FreeType backend
+
+The FreeType backend (formerly xfsft) is a backend based on version 2 of the
+FreeType library (see the FreeType web site <URL:http://www.freetype.org/>)
+and has support for the ``fontenc'' style of internationalisation (see The
+fontenc layer (section 4.1.1, page 1)). This backend supports TrueType font
+files (`*.ttf'), OpenType font files (`*.otf'), TrueType Collections
+(`*.ttc'), OpenType Collections (`*.otc') and Type 1 font files (`*.pfa' and
+`*.pfb').
+
+In order to access the faces in a TrueType Collection file, the face number
+must be specified in the fonts.dir file before the filename within colons.
+For example,
+
+ :2:mincho.ttc -misc-mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1990-0
+
+refers to face 2 in the `mincho.ttc' TrueType Collection file.
+
+The FreeType backend uses the fontenc layer in order to support recoding of
+fonts; this was described in The fontenc layer (section 4.1.1, page 1) and
+especially FreeType-specific notes about fontenc (section 4.1.2.1, page 1)
+earlier in this document.
+
+4.2.3 About the X-TrueType TrueType backend
+
+The `X-TrueType' backend is a backend based on version 1 of the FreeType
+library. X-TrueType doesn't use the `fontenc' layer for managing font encod-
+ings, but instead uses its own database of encodings.
+
+X-TrueType extends the `fonts.dir' syntax with a number of options, collec-
+tively known as `TTCap'. A `TTCap' entry follows the general syntax
+
+ :option=value:
+
+and should be specified before the filename.
+
+The most useful TTCap option is used to specify the face number to use with
+TTCs; this is the `fn' TTCap option. For example, face 2 of font file `min-
+cho.ttc' is specified using:
+
+ :fn=2:mincho.ttc -misc-mincho-medium-r-normal--0-0-0-0-c-0-jisx0208.1990-0
+
+More information on the TTCap syntax, and on X-TrueType in general, may be
+found on the X-TrueType home page <URL:http://x-tt.dsl.gr.jp/>.
+
+5. Appendix: background and terminology
+
+5.1 Characters and glyphs
+
+A computer text-processing system inputs keystrokes and outputs glyphs, small
+pictures that are assembled on paper or on a computer screen. Keystrokes and
+glyphs do not, in general, coincide: for example, if the system does generate
+ligatures, then to the sequence of two keystrokes <f><i> will typically cor-
+respond a single glyph. Similarly, if the system shapes Arabic glyphs in a
+vaguely reasonable manner, then multiple different glyphs may correspond to a
+single keystroke.
+
+The complex transformation rules from keystrokes to glyphs are usually fac-
+tored into two simpler transformations, from keystrokes to characters and
+from characters to glyphs. You may want to think of characters as the basic
+unit of text that is stored e.g. in the buffer of your text editor. While
+the definition of a character is intrinsically application-specific, a number
+of standardised collections of characters have been defined.
+
+A coded character set is a set of characters together with a mapping from
+integer codes --- known as codepoints --- to characters. Examples of coded
+character sets include US-ASCII, ISO 8859-1, KOI8-R, and JIS X 0208(1990).
+
+A coded character set need not use 8 bit integers to index characters. Many
+early systems used 6 bit character sets, while 16 bit (or more) character
+sets are necessary for ideographic writing systems.
+
+5.2 Font files, fonts, and XLFD
+
+Traditionally, typographers speak about typefaces and founts. A typeface is
+a particular style or design, such as Times Italic, while a fount is a
+molten-lead incarnation of a given typeface at a given size.
+
+Digital fonts come in font files. A font file contains the information nec-
+essary for generating glyphs of a given typeface, and applications using font
+files may access glyph information in an arbitrary order.
+
+Digital fonts may consist of bitmap data, in which case they are said to be
+bitmap fonts. They may also consist of a mathematical description of glyph
+shapes, in which case they are said to be scalable fonts. Common formats for
+scalable font files are Type 1 (sometimes incorrectly called ATM fonts or
+PostScript fonts), TrueType and Speedo.
+
+The glyph data in a digital font needs to be indexed somehow. How this is
+done depends on the font file format. In the case of Type 1 fonts, glyphs
+are identified by glyph names. In the case of TrueType fonts, glyphs are
+indexed by integers corresponding to one of a number of indexing schemes
+(usually Unicode --- see below).
+
+The X11 core fonts system uses the data in a font file to generate font
+instances, which are collections of glyphs at a given size indexed according
+to a given encoding.
+
+X11 core font instances are usually specified using a notation known as the X
+Logical Font Description (XLFD). An XLFD starts with a dash `-', and con-
+sists of fourteen fields separated by dashes, for example:
+
+ -adobe-courier-medium-r-normal--12-120-75-75-m-70-iso8859-1
+
+Or particular interest are the last two fields `iso8859-1', which specify the
+font instance's encoding.
+
+A scalable font is specified by an XLFD which contains zeroes instead of some
+fields:
+
+ -adobe-courier-medium-r-normal--0-0-0-0-m-0-iso8859-1
+
+X11 font instances may also be specified by short name. Unlike an XLFD, a
+short name has no structure and is simply a conventional name for a font
+instance. Two short names are of particular interest, as the server will not
+start if font instances with these names cannot be opened. These are
+`fixed', which specifies the fallback font to use when the requested font
+cannot be opened, and `cursor', which specifies the set of glyphs to be used
+by the mouse pointer.
+
+Short names are usually implemented as aliases to XLFDs; the standard `fixed'
+and `cursor' aliases are defined in
+
+ /usr/X11R6/lib/X11/font/misc/fonts.alias
+
+5.3 Unicode
+
+Unicode (<URL:http://www.unicode.org>) is a coded character set with the goal
+of uniquely identifying all characters for all scripts, current and histori-
+cal. While Unicode was explicitly not designed as a glyph encoding scheme,
+it is often possible to use it as such.
+
+Unicode is an open character set, meaning that codepoint assignments may be
+added to Unicode at any time (once specified, though, an assignment can never
+be changed). For this reason, a Unicode font will be sparse, meaning that it
+only defines glyphs for a subset of the character registry of Unicode.
+
+The Unicode standard is defined in parallel with the international standard
+ISO 10646. Assignments in the two standards are always equivalent, and we
+often use the terms Unicode and ISO 10646 interchangeably.
+
+When used in the X11 core fonts system, Unicode-encoded fonts should have the
+last two fields of their XLFD set to `iso10646-1'.
+
+6. References
+
+XFree86 comes with extensive documentation in the form of manual pages and
+typeset documents. Before installing fonts, you really should read the font-
+config(3) and mkfontdir(1) manual pages; other manual pages of interest
+include X(7), Xserver(1), xset(1), Xft(3), xlsfonts(1) and showfont(1). In
+addition, you may want to read the X Logical Font Description document, by
+Jim Flowers, which is provided in the file `xc/doc/xlfd.PS.Z'.
+
+The latest released version of the XFree86 documentation (including this doc-
+ument and all manual pages) is available as current XFree86 documentation
+<URL:http://www.xfree86.org/current/>.
+
+The comp.fonts FAQ <URL:http://www.netmeg.net/faq/computers/fonts/>, which is
+unfortunately no longer being maintained, contains a wealth of information
+about digital fonts.
+
+Xft and Fontconfig are described on Keith Packard's Fontconfig site
+<URL:http://www.fontconfig.org>.
+
+The xfsft home page <URL:http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/>
+has been superseded by this document, and is now obsolete; you may however
+still find some of the information that it contains useful. Joerg Pommnitz'
+xfsft page <URL:http://www.joerg-pommnitz.de/TrueType/xfsft.html> is the
+canonical source for the `ttmkfdir' utility, which is the ancestor of
+mkfontscale.
+
+The author's software pages <URL:http://www.pps.jussieu.fr/~jch/software/>
+might or might not contain related scribbles and development versions of
+software.
+
+The documentation of X-TrueType is available from the X-TrueType home page
+<URL:http://x-tt.dsl.gr.jp/>.
+
+A number of East-Asian CIDFonts are available from O'Reilly's FTP site
+<URL:ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/>.
+
+While the Unicode consortium site <URL:http://www.unicode.org> may be of
+interest, you are more likely to find what you need in Markus Kuhn's UTF-8
+and Unicode FAQ <URL:http://www.cl.cam.ac.uk/~mgk25/unicode.html>.
+
+The IANA RFC documents, available from a number of sites throughout the
+world, often provide interesting information about character set issues; see
+for example RFC 373.
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.20 2003/01/20 03:43:07 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.22 2003/01/20 04:10:01 dawes Exp $
diff --git a/hw/xfree86/doc/README.rapidaccess b/hw/xfree86/doc/README.rapidaccess
new file mode 100644
index 000000000..a78dfb9bc
--- /dev/null
+++ b/hw/xfree86/doc/README.rapidaccess
@@ -0,0 +1,48 @@
+The IBM Rapid Access keyboard have some extra buttons
+on it to launch programs, control a cd-player and so on.
+
+These buttons is not functional when the computer is turned
+on but have to be activated by sending the codes 0xea 0x71
+to it.
+
+I've written the following hack to send codes to the keyboard:
+
+--------------------------------------------------------------
+/* gcc -O2 -s -Wall -osend_to_keyboard send_to_keyboard.c */
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/io.h>
+
+int main( int argc, char *argv[] )
+{
+ int i;
+
+ ioperm( 0x60, 3, 1 );
+
+ for( i = 1; i < argc; i++ ) {
+ int x = strtol( argv[i], 0, 16 );
+
+ usleep( 300 );
+ outb( x, 0x60 );
+ }
+
+ return 0;
+}
+--------------------------------------------------------------
+
+As root you can then call this program (in your boot scripts)
+as "send_to_keyboard ea 71" to turn on the extra buttons.
+
+It's not a good idea to run several instances of this program
+at the same time. It is a hack but it works. If you try to
+send other codes to the keyboard it probably will lock up.
+For other codes see:
+
+http://www.win.tue.nl/~aeb/linux/kbd/scancodes-2.html#ss2.22
+
+--
+Dennis Björklund <db@zigo.dhs.org>
+
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rapidaccess,v 1.1 2001/05/18 23:35:32 dawes Exp $
diff --git a/hw/xfree86/doc/changelogs/CHANGELOG b/hw/xfree86/doc/changelogs/CHANGELOG
new file mode 100644
index 000000000..732330eec
--- /dev/null
+++ b/hw/xfree86/doc/changelogs/CHANGELOG
@@ -0,0 +1,16588 @@
+XFree86 4.3.0.2 (xx May 2003)
+
+XFree86 4.3.0.1 (9 May 2003)
+ 987. Fix a FreeBSD/alpha build problem (#5679, Fred Clift).
+ 986. Fix SiliconMotion driver for mode switching and SEGV problem when
+ initializing Xv functionality (Bugzilla #50, Alan Hourihane).
+ 985. Fix a SEGV that can happen with Riva128 cards (Mark Vojkovich).
+ 984. Prevent a SIGFPE with the glint/pm3 driver when attempting to display
+ an XVideo image less than 8 pixels wide (Måns Rullgård).
+ 983. Fix double free bug when a Mac-specific font fails to load with
+ Freetype (Torrey T. Lyons).
+ 982. Check for NULL tObj in the i830 3D driver's TexEnv function. This
+ fixes a FlightGear crash (Keith Whitwell).
+ 981. Fix lockup on server reset in radeon driver
+ (Michel Dänzer, Keith Whitwell).
+ 980. Set Mesa hooks to flush vertices on state changes in Radeon 3D drivers
+ (Keith Whitwell).
+ 979. Fix to prevent PCI and CardBus resets when switching out of the server's
+ virtual console (Marc La France).
+ 978. Fix infinite loop that occurs on systems whose PCI configuration space
+ doesn't advertise a host bridge (Marc La France).
+ 977. Workaround for broken devices that don't implement the header type field
+ in their PCI configuration space (Marc La France).
+ 976. Fix programming error in ix86 motherboard chipset determination
+ (Marc La France).
+ 975. Fix bug in mode validation that occurs when the XF86Config doesn't
+ specify any mode or virtual resolution information (Marc La France).
+ 974. Another int10 fix. This time for adapters found at PCI:0:0:0. This
+ fix is particularly important for ZX1-based systems (Marc La France).
+ 973. int10 fix for all ix86 non-Linux systems (Marc La France).
+ 972. Fix compatibility problem between modules generated without the recent
+ setjmp/longjmp work and a server generated using glibc <= 2.2.*
+ (Marc La France).
+ 971. setjmp/longjmp related fixes for Linux/libc5 systems (Marc La France).
+ 970. Make setjmp/longjmp emulation save/restore blocked signal masks on all
+ libc5 & glibc systems (Marc La France).
+ 969. Fix setjmp/longjmp emulation for glibc 2.2.[01] systems and remove
+ HasGlibc21Sigsetjmp override (Marc La France).
+ 968. setjmp/longjmp-related compilation fixes for libc5 systems
+ (Marc La France).
+ 967. Fix possible overflow in _XlcLocaleDirName. (Matthieu Herrb).
+ 966. Fix XDarwin build broken by #960 (Shantonu Sen).
+ 965. Fix StaticColor colormap on Darwin/x86 6.x (Rob Braun).
+
+XFree86 4.3.0 (27 February 2003)
+ 964. Add an imake option to allow the glibc21-style setjmp() behaviour
+ to be forced when auto-detecting it fails (this is needed for RH 7.0).
+ 963. Add missing raise/lower volume key descriptions for the "hpxe3gc"
+ XKB map (#A.1651, Paul Pacheco).
+ 962. Fix some typos in the Syriac XKB map (#5654, Emil Soleyman-Zomalan).
+ 961. Add documentation about using XKB for the XFree86 server's special
+ key sequences and the HandleSpecialKeys config option (#5653, Joe Moss).
+ 960. Move the XF86_DATE definition to a separate file so that bumping it
+ doesn't trigger almost everything to be rebuilt (David Dawes).
+ 959. Xterm patch #174 (Thomas Dickey).
+ 958. Fix a bug that was preventing DGA2 acceleration from being advertised
+ by the i810 driver (David Dawes).
+ 957. Fix an "xtt" font backend module crash that shows up on Linux/PPC,
+ related to an invalid code converter module being loaded because of
+ a broken string comparison in xttconv.c (#A.1647, Chisato Yamauchi,
+ Daisuke MASATSUNA).
+ 956. Fix a NULL dereference that can happen in lcGenConv.c (#A.1646,
+ Anthony Fok Tung-Ling).
+ 955. Bump the libXft minor revision for the UTF-16 APIs that were added
+ after rev 2.0 (#A.1643, A.1644, Keith Packard, 5652, Mike Harris).
+ 954. Fix a typo in the "freetype" font backend that prevents "ttc" fonts
+ from working (#5651, Mike Fabian).
+ 953. Fix atimisc bug in restoring colourmaps after a VT switch
+ (Marc La France).
+ 952. A more complete set of dead accent/space compose sequences, add
+ <Multi_key> <slash> for letters with a "stroke", and add some
+ combos for exponent characters, katakana voiced sounds, etc to
+ the en_US.UTF-8 compose file (#5646, David Monniaux).
+ 951. Reinstate the VBEInit() call in the savage driver's PreInit(). This
+ appears to fix a problem on some Savage MX platforms (#5649,
+ Mike Harris).
+ 950. Restore the radeon driver's unconditional RADEONPreInt10Save() call
+ on Alpha platforms because this is needed for Radeon cards where the
+ BIOS ROM can't be read after it's been run once (by the firmware)
+ without this (#5648, Jeff Wiedemeier).
+ 949. Update Newport driver doc (#5647, Guido Guenther).
+ 948. Fix reversed logic for VGA locking/unlocking (Nat Ersoz).
+ 947. Luit fixes:
+ - Fix a bug with --encoding being too strict with the syntax.
+ - Add a -x flag that causes luit to exit as soon as the child does.
+ - Update the man page to synchronise with Tomohiro's work on XTerm.
+ (#5643, Juliusz Chroboczek).
+ 946. Fix some endianness bugs in the r200 DRI driver, and guard a debugging
+ print message (Michel Dänzer).
+ 945. Fix radeon HW cursor artifacts when switching between 2-color and
+ ARGB cursors by always using the ARGB mode (#A.1639, Michel Dänzer and
+ Fredrik Höglund).
+ 944. Fix rootless XDarwin crash when trying to GetImage with a rectangle
+ bigger then the associated top level window (Apple).
+ 943. Add support for multi-head on ZX1-based Itanium2 systems (Marc La France
+ with documentation and assistance from Hewlett-Packard).
+ 942. Correctly initialize the RE_LINE_PATTERN register in the radeon
+ and r200 DRI drivers (Keith Whitwell).
+ 941. Fix a problem where a malformed Ximage can cause Xcursor to step
+ outside the image data (#A.1636, Keith Packard, reported by
+ Michel Dänzer).
+ 940. Allow xf86setjmp/xf86setlongjmp to work with platforms where
+ setjmp() isn't directly available as a function, specifically Linux
+ platforms that use glibc 2.0 and 2.1. (David Dawes, Keith Packard).
+ 939. Check pScrn->vtSema before calling xf86SetCursor() from
+ xf86CursorCloseScreen(). This avoids a segfault at exit with some
+ drivers (Alan Hourihane).
+ 938. Fix adding FP native mode for Radeon (Hui Yu@ATI, Kevin Martin).
+ 937. Initialize I2C when primary head has an invalid DDC type for the
+ Radeon driver (Hui Yu@ATI).
+ 936. Video fixes for TV and TVOverscan for the nsc driver (Sarma Kolluru).
+ 935. Fix to prevent ShadowComposite() to try to update the framebuffer
+ when server is switched away (Egbert Eich).
+ 934. Fix problems where the ThirdLevel key and Alt modifiers don't work
+ when a map that uses the ThirdLevel virtual modifier is not the first
+ layout in a multi-layout configuration (#5642, Ivan Pascal).
+ 933. Use safe values in the Thai XIM which should work regardless of
+ the signedness of XIMStringConversionPosition (#A.1628,
+ Theppitak Karoonboonyanan).
+ 932. Replace xf86setjmp/xf86setlongjmp with symbol aliases that resolve
+ directly to the native libc versions so that they can operate in
+ modules, and make xf86jmp_buf much larger so that should be big enough
+ for any reasonable CPU/OS combination. This should fix problems
+ with the Freetype2-based freetype font module (#A.1625, Keith Packard).
+ 931. Change the default base symbols map from pc104 to pc105, which should
+ fix most cases where the <LSGT> key isn't defined. Also change the
+ default XkbModel from pc101 to pc105 (Ivan Pascal).
+ 930. Fix run-time enabling/disabling of VT switching via xf86EnableVTSwitch()
+ (David Dawes).
+ 929. Add a "DontVTSwitch" option to allow VT switching to be disabled
+ (on platforms where the X server initiates VT switches) (#5640,
+ Branden Robinson).
+ 928. Fix a memory leak in _XimExtension() (#5638, MINAMI Hirokazu).
+ 927. Fix hard-coded ProjectRoot paths in the proxymngr man page (#5634,
+ Branden Robinson).
+ 926. Fix a NULL pointer dereference in the fontenc library (#5633, Debian).
+ 925. Update the neomagic man page to document the OverlayMem option (#5632,
+ Diego Santa Cruz and Branden Robinson).
+ 924. Fix a memory leak in XCloseDisplay, and a potential race condition
+ when multiple threads attempt to initialize the Xcursor library
+ simultaneously (#A.1623, Keith Packard).
+ 923. Fix xvidtune to pop up a info window if mode on chipset is
+ not tuneable (Egbert Eich).
+ 922. Fix a NULL pointer in a var_arg list in xfd which causes problems
+ on 64 bit systems (Egbert Eich).
+ 921. Fix a typo in the nsc Imakefile when installing the linkkit
+ (#A.1624, Stanislav Brabec).
+ 920. Remove a dependency on how Xlib buffers requests internally for
+ xtest's test 2 of XSync (Keith Packard).
+ 919. Fix a bug in the way the bitmap font code calculates mix/max bounds
+ (it was ignoring empty characters), which fixes some xtest fonts
+ bounds check failures (Keith Packard).
+ 918. Check that the HW cursor has been setup before calling
+ xf86ForceHWCursor() in the radeon (and r128) driver. This fixes
+ crashes when using only the SW cursor (#5628, Michel Dänzer).
+ 917. Fix duplicate arguments for xf86MatchPciInstances() in the DESIGN doc
+ (#5627, Guido Guenther).
+ 916. Miscellaneous 64-bit and warning fixes to mfb, xf1bpp and xf4bpp
+ (Marc La France).
+ 915. Fix a bug in beforelight that was preventing it from being restarted
+ and could cause random X clients to be killed. (Matthieu Herrb)
+ 914. Add a means by which a motherboard chipset driver can prevent the common
+ layer's check for mis-configured PCI-to-PCI bridges (Marc La France).
+ 913. Fix bug that would sometimes cause an extra hardware cursor to re-appear
+ on a secondary head after a server reset (Marc La France).
+ 912. Protect "cvl" references in recent changes to _XEventsQueued() with
+ '#ifdef XTHREADS' (reported by Dan Holm).
+
+XFree86 4.2.99.902 (17 February 2003)
+ 911. Change the newport driver to use ShadowFBInit2 to fix the broken
+ "switching back from the console" issue, and update the driver's man
+ page (#5625, Guido Guenther).
+ 910. SCO doc update (#5624, J. Kean Johnston).
+ 909. Fix X11.tmpl so that Fontconfig works correctly if an OS.cf file
+ sets HasFontconfig, and do this in sco5.cf (#5624, J. Kean Johnston).
+ 908. Move the vbe module from xfree86/os-support/ to xfree86/ (David Dawes).
+ 907. Some changes to the os-support kbd driver layer's calling conventions
+ to provide more flexibility (#A.1615, Zephaniah E. Hull).
+ 906. Fix a crash in the "xtt" font module caused by a NULL dereference
+ when the font cache becomes full (#A.1611, Chisato Yamauchi and
+ tokeijikakenoringo).
+ 905. Update the list of DRI-supported Radeon hardware (#A.1610,
+ Knut J Bjuland).
+ 904. Fix a problem in _XEventsQueued() that causes an event reader lock
+ of another thread to be released. This can cause a hang and keyboard
+ lockup in KDE (#5619, Ewald Snel).
+ 903. Fix some bugs with Xft drawing to non-Render enabled servers:
+ - Drawing monochrome glyphs had an infinite loop.
+ - XftGlyphSpecCore failed to render some glyphs, leading to application
+ crashes from uninitialized values.
+ (#A.1608, Keith Packard, reported by Nalin Dahyabhai).
+ 902. Fix the <BKSL> key in the "winkeys" variants of the Russian and
+ Ukrainian XKB maps (#5624, Leon Kanter).
+ 901. Install the XKB README files (#5623, Ivan Pascal).
+ 900. Add the numeric keys row to the pc/us symbols map (#5622, Ivan Pascal).
+ 899. Resync with DRI mesa-4-0-4 branch:
+ - Fix DOT3 texture combine env in the r200 driver (Ian Romanick).
+ - Fix SW TCL path in the radeon driver (Felix Kühling).
+ - Don't assert for FLUSH_STORED_VERTICES if a glBegin hasn't been
+ emitted (Alan Hourihane).
+ 898. Another update to the fix for the client-side DRI cleanup code that
+ should fix references to freed data, an fix a potential memory leak
+ (Leif Delgass).
+ 897. Fix the behaviour of XLookupString() when XKB is enabled in Xlib
+ but not the server. This fixes an xtest XRebindKeysym() failure
+ (David Dawes).
+ 896. Added radeon driver options documentation to the Options file
+ (#5621, Michel Dänzer).
+ 895. Fix the return value of SetFontPath() when a font path element is bad
+ (David Dawes).
+ 894. Add some more HP keyboard layouts (Peter Soos).
+ 893. Remove XFree86-specific keysyms that already have generic equivalents
+ (Menu, Redo, Print, Undo).
+ 892. Add keyboard layout information for the HP 5181 Internet/Multimedia
+ keyboard (#A.1603, John Mitchell).
+ 891. Fix a problem where two-color render cursors have extra pixels set
+ (#A.1607, Keith Packard).
+ 890. Fix for corruption when using video modes requiring more than 2MB on
+ S3 968 cards (#A.1602, Justin T. Gibbs).
+ 889. Fix TVoverscan problems on the NSC SC1200 chip (Sarma Kolluru).
+ 888. Cure cursor artifacts by setting HARDWARE_CURSOR_SHOW_TRANSPARENT and
+ HARDWARE_CURSOR_UPDATE_UNHIDDEN in the r128 and radeon drivers. The
+ wait-for-VSync nonsense the Radeon's currently do can, and should, be
+ ripped out later. (Marc La France).
+ 887. Extend HARDWARE_CURSOR_SHOW_TRANSPARENT to make hardware cursors
+ transparent, rather than disabling them, when a switch to a software
+ cursor is needed. This removes recently introduced cursor artifacts
+ in the atimisc driver. (Marc La France).
+ 886. Cancel repeat for switch screen XKB actions, which fixes a VT
+ switching problem that has just become visible (Ivan Pascal).
+ 885. Added reinitialization of screen layout after RandR size change
+ on a multihead setup. This keeps cursor movement beween screens
+ working (Egbert Eich).
+ 884. Remove Xcms.txt entries that have server-side equivalents. It looks
+ like the slightly different resulting colour definitions from the
+ Xcms.txt entries were responsible for an xtest failure.
+ 883. Fix some problems with using pre-existing version of fontconfig,
+ freetype2 and expat (#A.1600, Keith Packard).
+ 882. Add missing zero-sized check to one of Xft's core rendering routines
+ (#A.1599, Keith Packard).
+ 881. Add a missing symbol reference to the radeon driver (#5618, Mike Harris).
+ 880. Fix the Xcursor include path in the man page (#5617, Kevin Brosius).
+ 879. Update ViRGE documentation (#5617, Kevin Brosius).
+ 878. Fix mkfontscale so that it doesn't include characters forbidden in XLFD
+ in the names it generates (#5616, Mike Fabian and Juliusz Chroboczek).
+ 877. Fix a rounding problem in the "freetype" module, which fixes the problem
+ worked around in entry 864 below (#5615, Juliusz Chroboczek).
+ 876. Fix incorrect alias for lv_LV.iso885913, and add some missing lv_LV
+ aliases (#5614, Aivils Stoss).
+ 875. Fix a bug where xauth may write an incomplete authority file and delete
+ the old one if there is insufficient disk space (#5612, Harald Hoyer).
+ 874. DPMSClose() wasn't correctly setting its devPrivate to NULL (based
+ on #A.1594, Denis Zaitsev).
+ 873. Fix scanpci's printing of routing information for PCI-to-PCI bridges
+ (Marc La France).
+ 872. Bring Cygwin/XFree86 up-to-date (#5613)
+ - Multiwindow Window Manager (Kensuke Matsuzaki).
+ - Clipboard integration (Harold Hunt).
+ - Remove unnecessary redefines of fchown/fchmod (Takashi Sawanaka)
+ - Fix some NULL pointer problems on screen changes (Alexander Gottwald).
+ 871. Fix some problems when noaccel is used in the nsc driver (Sarma Kolluru).
+ 870. Fix acceleration bugs in the nsc driver (Sarma Kolluru).
+ 869. Change initMouseHW() to always return TRUE, which restores the older
+ more graceful behaviour (Egbert Eich).
+ 868. Revert the DestroyContext, GarbageCollectDrawables reording in
+ dri_util.c, and instead check if the drawable is known to the DRI
+ client code before calling XF86DRIGetDrawableInfo (Egbert Eich).
+ 867. Fix some scaling problems with the updated whiteglass cursor icons,
+ fixing some incorrect hotspots (Kevin Puetz).
+ 866. The sunffb driver was treating a function with a void return value
+ as if it had a Bool return value. This causes the driver to fail
+ in some cases (#A.1588, Ferris McCormick).
+ 865. Add private keysyms for the new XKB actions (XFree86 special keys),
+ and move those actions to an XKB compatibility map. This fixes
+ side-effects (loss of auto-repeat and mousekeys functionality) of
+ the way this was implemented previously (#5610, Ivan Pascal).
+ 864. Fix an X server crash with the "freetype" module when displaying
+ kochi-mincho.ttf at a size of 18 pixels or higher (Chisato Yamauchi).
+ 863. Fix segfault in XkbInitKeyboardDeviceStruct() (David Dawes).
+ 862. Add a ServerFlags/ServerLayout option for disabling the RandR extension
+ (David Dawes).
+ 861. Resync with DRI mesa-4-0-4 branch:
+ - Correct RADEON_MAX_TCL_VERTSIZE and set MaxArrayLockSize
+ (Keith Whitwell).
+ - Fix EAGAIN handling in radeon_cp_dispatch_texture(), which fixes
+ corruption of large textures (Michel Dänzer).
+ - Fix bufferSize and alphaMask for DRI in several drivers (Brian Paul,
+ Leif Delgass).
+ - Avoid a loop on validating destroyed drawable (Keith Whitwell).
+ - Reorder DestroyContext, GarbageCollectDrawables to avoid error
+ (Egbert Eich).
+ - Remove untested BSD DRM vlank signal code (Eric Anholt).
+ - Update Radeon PCI IDs for BSD drm driver (Eric Anholt).
+ - Uninitialize mutexes on cleanup in the BSD drm driver, which
+ fixes panics with FreeBSD-5.0 with WITNESS (Eric Anholt).
+ - Remove the untested/unused gamma DRM driver for BSD (Eric Anholt).
+ 860. Fix byte swapping of the refresh rate argument to RandR's
+ SetScreenConfig request, and fix a 1.0 client compatibility problem
+ with SetScreenConfig (#A.1574, Keith Packard).
+ 859. The i810 driver wasn't releasing control of the agpgart when VT switching
+ away for the 830M and later (David Dawes).
+ 858. Update Rage 128 and Radeon PCI IDs (Mike Harris).
+ 857. Fix vertical retrace to not interfere with interrupt handling
+ (#5608, Michel Dänzer).
+ 856. Add M9 DRI support (Hui Yu@ATI).
+ 855. Update Radeon man page (Michel Dänzer).
+ 854. Add Radeon man page (Hui Yu@ATI).
+ 853. Use strtol instead of atoi in xf86cfg 'expert' mode. Make pauses
+ when printing keyboard models in xf86config (#5609, Chisato Yamauchi).
+ 852. Xterm patch #173 (Thomas Dickey).
+ 851. Don't use XkbGetKeyboard() in xset, just use XkbAllocKeyboard()
+ (Ivan Pascal).
+ 850. Fixes for the nsc driver for HW cursor hotspots and GX2 video
+ clipping issues (Sarma Kolluru, NSC).
+ 849. Fix HW cursor on CRTC2 for SiS650+301B (Thomas Winischhofer).
+ 848. Update the i810/i830 driver to recognise the 865G integrated graphics
+ chipset (David Dawes).
+ 847. Updates for the nsc driver (Sarma Kolluru, NSC).
+ 846. Fixed dual head for 1400x1050 displays (Thomas Winischhofer).
+ 845. Initializing clock ranges in several drivers to get rid of the
+ annoying 'scaled from 0.0 MHz' message in xf86PrintModes()
+ (Egbert Eich).
+
+XFree86 4.2.99.901 (4 February 2003)
+ 844. Fixing a double free in libXRandr (Egbert Eich).
+ 843. The microsoft-win3.1 encoding file wasn't being installed (#A.1569,
+ Mike Harris).
+ 842. Sync the FIFO in the vmware driver after defining an ARGB cursor
+ (#5607, Nolan Leake).
+ 841. Add missing Num_Lock and Scroll_Lock modifiers to the jp XKB map
+ (Chisato Yamauchi).
+ 840. Change the default cursor theme to "core".
+ 839. Fix some keys in the Slovenian (si) XKB map (David Balazic,
+ Henrik Nordström).
+ 838. Add a check to xset for a NULL return from XkbGetKeyboard()
+ (Tapani Utriainen).
+ 837. Resync with DRI mesa-4-0-4 branch:
+ - radeon DRM: only acknowledge interrupts we handle -- others could
+ be used outside the DRM (Michel Dänzer).
+ - Fix PCI and AGP posting problems (based on testing by Chris Ison
+ and suggestions by Benjamin Herrenschmidt and Arjan van de Ven).
+ - Remove radeon_flush_write_combine() which has been unused for a while
+ (Michel Dänzer).
+ - Disable strict aliasing when building the DRM (Michel Dänzer).
+ 836. Fix xfs crash on Darwin by making libXfont a flat namespace image
+ (Torrey T. Lyons).
+ 835. Avoid endless loop when initializing an PS/2 mouse behind a
+ repeater (Egbert Eich).
+ 834. Radeon driver: make sure RADEONCPStop() is only called when
+ RADEONCPStart() has been called before. Failing to do so may
+ make the kernel driver oops (Egbert Eich).
+ 833. Disabling MMX, 3DNow and SSE support for x86-64 as the function
+ call sequence is hardcoded to ia32 (Egbert Eich).
+ 832. Fix a hang in multi-thread mode caused by a missing UnlockDisplay() in
+ XkbGetMapChanges() (Jose Luu).
+ 831. Resync with DRI mesa-4-0-4 branch:
+ - Don't inflate relative vblank sequence numbers on repeated calls
+ (e.g., when interrupted by a signal) (Michel Dänzer).
+ - Fix size of VERTEX2 ioctl struct (Egbert Eich).
+ 830. SiS driver fixes:
+ - Mode restoration fix.
+ - Xv Hue and Saturation property fixes (310/325 series).
+ - Built-in mode fixes.
+ - Revert wrong bus width assumptions from previous patch.
+ (Thomas Winischhofer).
+ 829. R128 build fix on big endian platforms (#A.1565, George Staikos).
+ 828. Updated whiteglass cursor icons that fix the resizing glitches in the
+ existing ones (#A.1563, Kevin Puetz).
+ 827. Include server control definitions in some XKB maps that were missing
+ them (based on #A.1562, Jens Petersen).
+ 826. Define Alt/Meta modifiers for the jp106 XKB layout, and include
+ server control definitions (#A.1562, Jens Petersen).
+ 825. Add some locales required for the OpenI18N compliance test (#A.1550,
+ Leon Ho).
+ 824. s3virge driver updates:
+ - 320x240 doublescan support with mouse adjust.
+ - Power management printouts, DAC error printout fix.
+ - Log XVideo status based on chipset, and preliminary support for
+ disabling XV when a mode doesn't support it.
+ (#A.1550, Kevin Brosius).
+ 823. Add an Ethiopic TTF and OTF font (#A.1549, Daniel Yacob).
+ 822. Add a phonetic layout to the Bengali XKB map (#5606, Taneem Ahmed).
+ 821. Work around an AGP bug in the AlphaServer ES45 by padding each ring
+ buffer packet in the radeon drm with NOPs to cache line boundaries.
+ This is only done for Alpha platforms (#5605, Jeff Wiedemeier).
+ 820. Add missing domain decoding to DRM(irq_busid) for Alpha (#5604,
+ Jeff Wiedemeier).
+ 819. Build fix for the DRM on FreeBSD 5.0-current (#5603, Eric Anholt).
+ 818. xaaStateChange.c was not calling RestoreAccelState before doing
+ CPUToScreenTexture and CPUToScreenAlphaTexture, which seems to be the
+ reason why RENDER acceleration was broken on some dual-monitor MGA cards
+ (#5602, Nolan Leake).
+ 817. Make the vmware driver a little more conservative about supporting
+ HW RGBA cursors in 8-bit modes (#5606, Nolan Leake).
+ 816. Work around a problem with the vmware driver's interaction with the
+ offscreen memory manager (#5606, Nolan Leake).
+ 815. Fix fb's rotation of tiles and stipples when using non-zero PixOrigin
+ macros (Torrey T. Lyons).
+ 814. Fix Radeon native FP mode initializion (Hui Yu@ATI).
+ 813. Resync with DRI mesa-4-0-4 branch:
+ - Fix Q3A mode change prolbem in thr r200 driver (Keith Whitwell).
+ - Add a missing break to prevent spurious GL_INVALID_ENUM
+ (Leif Delgass).
+ - Fix __FUNCTION__ usage in the ffb 3D driver (Leif Delgass).
+ - Limit the number of pending vblank signals to 100 to prevent
+ a DoS (Michel Dänzer).
+ - Fix a void * arithmetic warning in the radeon DRM driver
+ (Leif Delgass).
+ 812. Fix a typo in the "pl2" XKB map (#A.1553, Piotr Xurek).
+ 811. Fix a null dereference in Mesa that can cause an X server crash at
+ client exit (#A.1548, Ezra Peisach).
+ 810. Improve the XTT code that prevents unexpected data to be passed to
+ XAA (#5600, Chisato Yamauchi).
+ 809. xkbcomp/rules/xfree86.xml wasn't being installed (#5599, Ivan Pascal).
+ 808. Add knowledge about two Korean foundries to mkfontscale (#5598,
+ Jungshik Shin).
+ 807. Disable the INREG fallbackup in the radeon 3D driver on Alpha because
+ it references a function that's not availalbe (#5596, Jeff Wiedemeier).
+ 806. Fixed patch 760: VBEInit takes entity index, not screen index
+ (Egbert Eich).
+ 805. Card name changes/fixes (Hui Yu@ATI).
+ 804. Panel color channel depth fix for Radeons (Hui Yu@ATI).
+ 803. Include list_for_each_safe define for kernels that do not have it
+ (Kevin Martin).
+ 802. Fix 2D corruption around 3D window, when 3D window is moving and using
+ Radeon page flipping code (Michel Dänzer).
+ 801. Big endian fixes for Rage 128 and Radeon video and Radeon cursor code
+ (Michel Dänzer).
+ 800. Enable PCI GART for all architectures (still gated by ForcePCIMode, if
+ on an AGP card) (Michel Dänzer).
+ 799. Fix for Radeon's CP accelerated 2D sync routine (Michel Dänzer).
+ 798. SiS driver fixes:
+ - Fix for SiS730+LVDS machines (display modes restricted due to
+ hardware limits; LCD text mode restoration fixed)
+ - Fix for SiS300 bus width detection
+ - Fix for Fn+Fx output device switching on some machines (still
+ does not work on all)
+ - Numerous Dual Head fixes
+ - Added color hardware cursor support on 300/310/325/330 series
+ - Added PAL-M and PAL-N support for Chrontel 701x
+ - Added ModeLine handling for 300/310/325/330 series (CRT1 only)
+ (Thomas Winischhofer).
+ 797. Fix for memory fences on PowerPC (Marc La France).
+ 796. Work-around for Radeon int10 problems (Marc La France).
+ 795. Fix XDarwin crash in rootless mode with 16-bit color by ensuring that
+ window pixmap pointers are 32-bit aligned (Apple, Torrey T. Lyons).
+ 794. Update the i810 2D driver and i830 3D drivers to recognise and handle
+ the Intel 852GM/855GM integrated graphics chipsets (David Dawes,
+ Keith Whitwell).
+ 793. Force extension-generated mode switches always occur (Marc La France).
+ 792. Fix OS/2 library build problem (Frank Giessler).
+ 791. Fix bug that at times prevented recognition of resources decoded on PCI
+ root busses (Marc La France).
+ 790. Fix XDarwin's spurious transparent regions in rootless windows
+ (Torrey T. Lyons).
+ 789. Fix bug in recognition of certain ix86 Host-to-PCI bridges
+ (Marc La France).
+ 788. Fix for breakage in reading the serial PnP mouse ID string (David Dawes).
+ 787. Add "core" theme to Xcursor to force old behaviour (Keith Packard).
+ 786. Increase the default font cache size so that it works better for
+ iso10646 (#A.1541, Hidetoshi Yamanouchi, Chisato Yamauchi).
+ 785. Fix an XTT problem where garbage is displayed when there are undefined
+ glyphs for fixed width fonts, and fix some other potential problems
+ (#A.1541, Hidetoshi Yamanouchi, Chisato Yamauchi).
+ 784. Resync symbols/fi with symbols/pc/fi (#A.1532, Marko Myllynen,
+ #5589, Linus Torvalds).
+ 783. Resync xkb/rules/xfree86.xml with xfree86.lst (#5595, Ivan Pascal).
+ 782. ISO_Level3_Shift was breaking compose sequences because Xlib wasn't
+ recognising it as a modifier key (#5594, Ivan Pascal).
+ 781. Add a Lao (lo) XKB map (#5592, Anousak Souphavanh).
+ 780. Add a multi-layout version of the Malayalam keymap (#5593, Ivan Pascal).
+ 779. Add some missing entries to the xkb rules $oldlayouts and $nonlatin
+ sets (#5593, Ivan Pascal).
+ 778. Prevent mkfontscale from looking at bitmap fonts, and ensure that it
+ doesn't crash if a font happens to have no head (#5591,
+ Juliusz Chroboczek).
+ 777. Document that DVI the mga_hal module may be necessary to use the DVI
+ output with the G550 and other cards (#5590, Andrew Aitchison).
+ 776. Fixes for a few "nodeadkeys" XKB maps (David Dawes).
+ 775. Protect magic cookie from short-lived exposure on command line in
+ startx (Christian Biere).
+ 774. Fix ELF loader to ignore -g debugging information
+ (#A.1539, Juergen Keil).
+ 773. Fix artifacts left by XDarwin when reshaping a shaped window (reported
+ by Adrian Umpleby).
+ 772. Fix XDarwin rootless crash when resizing a window (Apple).
+ 771. Fix vbe module to not assume BIOS call results are zero-extended
+ (Paulo Cesar Pereira de Andrade).
+ 770. Fix improper initialisation of pciConfigRec's. Reported by Marcel
+ Moolenaar (Marc La France).
+ 769. Fix intermittent XDarwin crash on Mac OS X 10.1.x when changing cursors
+ on dual processor machines (Torrey T. Lyons).
+ 768. Correction to 'is' keymap (reported by Richard Allen).
+ 767. Fix GLX library mis-use of LockDisplay()/UnlockDisplay() sequences
+ (reported by Alexis Vartanian).
+
+XFree86 4.2.99.4 (20 January 2003)
+ 766. Fix XDarwin's rootless mode with 16-bit color (Apple).
+ 765. Allow UTF8 conversion to work for Japanese locales (#A.1527,
+ Etsushi Kato).
+ 764. Add a method for working around a problem that can show up when
+ running setxkbmap from a machine with a different version of XKB
+ than the X server. The workaround method is documented in
+ the setxkbmap(1) man page (#5588, Ivan Pascal).
+ 763. Add some new keys and key combinations that can be used for switching
+ between XKB groups (#5587, Ivan Pascal).
+ 762. Fix typos in the README.fonts document (#5585, John Himpel,
+ Juliusz Chroboczek).
+ 761. Fix the pc/fi and pc/il XKB maps after recent changes made them
+ non-compliant with the multi-layout scheme (#5581, Ivan Pascal).
+ 760. Allow the mga driver to fallback to using VBE for DDC when using
+ the native method fails. This allows DDC to work for DVI output
+ on Matrox cards (#5580, Andrew Aitchison).
+ 759. Add block handler for XDarwin's quartz modes to clean up any
+ autoreleased objects in the server thread (Torrey T. Lyons).
+ 758. Fix use of uninitliazed variable in xmag/xmag.c (A.1525, Keith Packard).
+ 757. Fix typo in Radeon Mono8x8 code (#A.1526, Juergen Keil).
+ 756. PS/2 mice initialization sequence changed: rerun entire sequence
+ when something goes wrong - this needs to be rewritten completely
+ after 4.3 is out (Egbert Eich).
+ 755. Savage driver: disable HW cursor on stretched LCD displays,
+ let SaveScreen and DGA test if HW cursor is on before
+ disabling/reenabling it (Egbert Eich).
+ 754. Fixed VBE EDID read: due to a missing register setting read
+ ended in endless loop on certain systems (Egbert Eich).
+ 753. Changed the default mouse device for FreeBSD to sysmouse and the
+ protocol to auto when running X -configure (#5584, Eric Anholt).
+ 752. Changed the default mouse device for xf86cfg and xf86config to
+ /dev/sysmouse for FreeBSD (#5582, #5583, Eric Anholt).
+ 751. Fix for Mono8x8 patterns on Radeon (#A.1520, Juergen Keil, Kevin Martin).
+ 750. Fix for Radeon mode validation (#A.1330, #A.1380, #A.1393, #A.1522,
+ #A.1523, Wayne Whitney, Hui Yu@ATI, Juergen Keil).
+ 749. Workaround for flickering problem with switching between ARGB and mono
+ cursors on Radeons (#A.1380, Hui Yu@ATI).
+ 748. DDCMode fix for VidMode extension (#A.1380, Kevin Martin, Hui Yu@ATI).
+ 747. Panel detection bug fix for Radeon (#A.1380, Hui Yu@ATI).
+ 746. Add Xv overlay support for dual headed Radeons (#A.1380, Hui Yu@ATI).
+ 745. Fix Radeon driver's 24-bit support for flat panels (#A.1380, Hui Yu@ATI).
+ 744. Add Radeon 9500/Pro support (#A.1380, Hui Yu@ATI).
+ 743. Disable CGWorkaround for non-A11 rev R300s (Kevin Martin, Hui Yu@ATI).
+ 742. Radeon solid/dashed line fix for RV200 and newer card (Kevin Martin).
+ 741. Radeon overlay gamma fix (Hui Yu@ATI).
+ 740. Radeon LG panel fix (Hui Yu@ATI).
+ 739. Change makedepend to warn about any whitespace it finds in front of
+ pre-processor directives (Marc La France).
+ 738. Missing deadkeys in UTF-8 compose table (Mike Fabian).
+ 737. Build fix for SPARC (Thorsten Kukuk).
+ 736. Fixed integer address value in vesa driver to be large enough
+ to hold a 64 bit memory address (Andreas Schwab).
+ 735. Disabled RENDER accel on Matrox when used in multihead mode
+ (Stefan Dirsch).
+ 734. Added FireGL 8700/8800 to the list of supported cards or RADEON
+ driver (Stefan Dirsch).
+ 733. Added -mcmodel=kernel to DRM Makefile for x86_64 (Stefan Dirsch).
+ 732. Added vesa and fbdev driver to x86_64, removed nsc driver for ia64 build
+ (Stefan Dirsch).
+ 731. Fixing comments in th_TH.UTF-8 (Stefan Dirsch).
+ 730. Fixes from the DRI CVS:
+ - Don't segfault when spec or fog stride is 0.
+ - Don't set RADEON_SURF_TRANSLATION_DIS for framebuffer aperture
+ byte swapping on big endian machines; doesn't work with R200 and
+ later chips.
+ - Improve AGP workaround for pre-R200 chips.
+ (Michel Dänzer).
+ 729. Remove inappropriate __linux__ ifdef in the tdfx client-side DRI driver
+ (#5579, Eric Anholt).
+ 728. Allow makedepend handle whitespace in front of the '#' in preprocessor
+ directives (ISO C permits this) (#A.1516, Alexander Stohr).
+ 727. Add zh_TW.UTF-8 locale support (#A.1514, Leon Ho).
+ 726. Add recognition of wacom "XD-xxxx" models to the wacom input driver,
+ and treat them the same as "GD-xxxx" models (#A.1505, Rene Rask).
+ 725. Fix some missing render extension big-req compatibility (#A.1493,
+ Keith Packard).
+ 724. Fix a missing initialisation in the calcomp input driver that makes
+ the driver unusable and crashes the X server at startup (#A.1492,
+ Martin Kroeker).
+ 723. Work around for a bug in the i740 driver's XVideo support where the
+ video output would sometimes stop updating (#5578, Stephen Blackheath).
+ 722. Make DRM signal-on-vblank request return EINVAL on BSD since it's
+ not been ported yet (#5576, Eric Anholt).
+ 721. Remove the no longer used bsd/drm/kernel/r128/*.[ch] files (#5576,
+ Eric Anholt).
+ 720. drmFreeBufs was missing from the r128 driver's referenced symbols list
+ (#5574, Eric Anholt).
+ 719. Allow all of the extended mouse button bits for the "sysmouse" protocol
+ to be passed through (#5573, Eric Anholt).
+ 718. Update the XFree86 server special key handling so that by default
+ there is a fallback to the the hard-coded keys when there is no
+ Terminate action binding in the XKB map. A new global option is
+ added to allow the fallback mechanism to be used never, when needed,
+ or always, with "when needed" the default (#5572, Joe Moss).
+ 717. Update the README.fonts document (#5570, Juliusz Chroboczek).
+ 716. Build the loader's libc wrapper with -DHAVE_SYSV_IPC on FreeBSD
+ since NVIDIA's binary driver uses it (#5569, Eric Anholt).
+ 715. Reduce the stack usage from 64k to 8k in imLcPrs.c, which fixes
+ a problem with Java for FreeBSD (#5568, Eric Anholt).
+ 714. Gcc 3 deprecated the #pragma weak method for weak links (#5567,
+ Motoyuki Konno).
+ 713. FreeBSD.cf updates:
+ - Sparc64 support
+ - Recent 5.0-current doesn't need libXThrStub
+ - Disable SharedLibXdmGreet, fixing xdm on alpha
+ (#5566, Eric Anholt).
+ 712. XDarwin now loads GLX support dynamically. Current options are Apple's
+ OpenGL framework or Mesa (Torrey T. Lyons).
+ 711. GeForceFX support in the nv driver (Mark Vojkovich).
+ 710. DPMS support in the nv driver. CRTs only at this time (Mark Vojkovich).
+ 709. Fix for recognition of non-existent PCI devices (Marc La France).
+ 708. Fix for when firmware/BIOS initialisation does not enable the extra
+ command FIFO entries available on second-generation integrated Mach64
+ variants (Marc La France).
+ 707. Copying Syriac OTF fonts to directory OTF instead of TTF.
+ The xtt font renderer cannot handle OTF fonts causing the
+ entire directory to be ignored (Egbert Eich).
+ 706. Disabling MIT-SHM extensions for Xnest, fixing pixmap private
+ code in Xnest, thus cleaning out bogus patch 137.
+ NOTE: The MIT-SHM presently *does* *not* work with Xnest.
+ I have code to make it work but it is not well tested therefore
+ MIT-SHM is disabled for now! (Egbert Eich).
+ 705. Fix the misnaming of three of the redglass cursors (#A.1491,
+ Keith Packard).
+ 704. Fix for two problems where the combination of xtt and XAA could result
+ in a crash. The first problem was xtt returning a NULL pointer for
+ the bitmap even though the height was non-zero. The second problem
+ was glyph ascent/descent exceeding the range of maxbounds.ascent/
+ maxbounds.descent (A.1484, Chisato Yamauchi, Masanori Shimada).
+ 703. Eliminate locale-dependent behaviour in fontconfig's setfontdirs
+ script (#A.1483, Markus Kuhn).
+ 702. Fix a bug in previous Thai XIM changes (#5563,
+ Theppitak Karoonboonyanan).
+ 701. Updates for the Israeli XKB map, including:
+ - Implement parens mirroring.
+ - Add two additional variants: "lyx", replacing shifted Hebrew
+ letters with Hebrew point marks, and "si1452", implementing the
+ Standard of Israel no. 1452 mapping.
+ (#5562, Tzafrir Cohen).
+ 700. BuildServersOnly fix when building on a system with no installed
+ X headers or libraries (#5559, ISHIKAWA Mutsumi).
+ 699. Add extended symbols for the "Logitech Cordless Desktop Navigator"
+ keyboard (#A.1480, Gilbert Fridgen).
+ 698. Fix xdm resource's font references to match actual bitmap fonts (#A.1477,
+ Göran Uddeborg).
+ 697. Update the xcursorgen man page (#A.1475, Keith Packard).
+ 696. Add a Mongolian XKB map (#5557, Sanlig Badral).
+ 695. Fixes for the Turkish XKB map (#5556, Nilgün Belma Bugüner).
+ 694. Thai XIM fixes:
+ - Fix the arguments in calling to StringConversionCallback in Thai XIM
+ filter, according to Hideki Hiura's explanation on the protocol.
+ - Add input sequence correction capability to the Thai XIM by
+ exploiting the XIMStringConversionSubstitution operation.
+ (#5553, Theppitak Karoonboonyanan).
+ 693. Resync the pc/fi XKB map with the previous map (#5552, Marko Myllynen).
+ 692. Workaround for parsing of Layout sections caused by recent changes
+ (#5558, Andrew Aitchison, Paulo César Pereira de Andrade).
+ 691. Fix the enabling of the Glint Gamma for use on an Appian Graphics
+ Jeronimo 2000 board which uses two Permedia3's (#5448, Sven Luther).
+ 690. Fix a problem in the trident driver for older chipsets and using
+ 16bit clock programming, manifested itself on a Thinkpad 760EL,
+ but there are probably lots of others. (Alan Hourihane).
+ 689. On Darwin add Mac font directories to fonts.conf (Torrey T. Lyons).
+ 688. Post XDarwin mouse events in Quartz mode where they happen rather than
+ where the cursor currently is (Adrian Umpleby).
+ 687. Enable Freetype Mac FOND support on Mac OS X (Torrey T. Lyons).
+ 686. Add an "lswitch" option to the group xkb map, allowing the left Alt
+ key to be used for AltGr (#A.1463, Andreas Tobler).
+ 685. Add some locales for OpenI18N1.2 (LI18NUX2000) level.1 conformance,
+ and change zh_HK to point to zh_HK.big5hkscs which conforms to
+ glibc's default for zh_HK (#A.1457, Leon Ho).
+ 684. Updates for the Irish and Ogham XKB maps (#5549, 5550,
+ Séamus Ó Ciardhuáin).
+ 683. Xterm patch #172 (Thomas Dickey).
+
+XFree86 4.2.99.3 (21 December 2002)
+ 682. Add a request to XFree86-VidModeExtension to get the read/write
+ permissions so that clients can check if they have permission to
+ change parameters (David Dawes).
+ 681. Fix read-only XFree86-VidModeExtension requests for remote connections
+ (David Dawes, reported by Jamie Zawinski).
+ 680. Correct problem when the server prints the name of a 'private
+ xkb action' in a format that xkbcomp cannot understand, and
+ was causing problems when calling XkbGetKeyboard (Ivan Pascal).
+ 679. Fix animated cursor problem with multiple screens (#A.1454,
+ Keith Packard).
+ 678. gtf.c build fix for LynxOS 4.0 (#A.1453, Stuart Lissaman).
+ 677. Fix a segfault in fontconfig (#A.1450, Keith Packard).
+ 676. If some LEDs are lighting when one reloads the XKB keyboard map
+ (using setxkbmap or xf86cfg) the LEDs become 'frozen' and can't
+ be switched off. The patch fixes this bug. (#5544, Ivan Pascal).
+ 675. Fix some problems with the addition of multi-layout scheme to
+ xkb: some keys that aren't 'alphabetic' should be treated as
+ such to allow CapsLock+Shift working as expected; sometimes it
+ is required to load an include file more than once due to
+ multi-layout configuration, also fix some typos
+ (#5545, Ivan Pascal).
+ 674. XKB programable 'special combinations' (such as Ctrl+Alt+<key>)
+ also send usual key evants (press and release). Although the
+ keysym generated in this case is NoSymbol such events can confuse
+ some applications (#5546, Ivan Pascal).
+ 673. Fix some remaining memory leaks in xkb initialization code
+ (Paulo César Pereira de Andrade).
+ 672. Temporarily enable the hard-coded Ctrl-Alt-Backspace terminate sequence
+ until a better fallback mechanism is implemented (Egbert Eich).
+ 671. Allow XKB-remappable hot keys to work with the "kbd" driver
+ (Egbert Eich).
+ 670. Export xf86inSuspend as needed by the "kbd" driver (Egbert Eich).
+ 669. SiS driver updates, including:
+ - support for SiS 330 Xabre (untested)
+ - Bugfix for boxes with two VGA connectors (tested)
+ - Autodetection of second monitor (tested)
+ - TV detection improved (tested)
+ - fixed error in 1280x1024 panel support (yet untested)
+ - Fixed bug in TV output on SiS30xB/30xLV (PAL still only BW, not
+ even the Windows driver can display PAL in color)
+ - Fixed positioning of TV picture. Works now for all video bridges
+ except Chrontel 7019 (still untested).
+ (Thomas Winischhofer).
+ 668. Add an alternative French XKB layout (fr-latin9) (#A.1446, Guylhem Aznar,
+ Rene Cougnenc, Nicolas Mailhot).
+ 667. Add bar and brokenbar to default <LSGT> definition for pc102 and
+ pc105 xkb maps (based on #A.1445, Göran Uddeborg).
+ 666. Change the keypad "decimal" key to KP_Separator in the dk, fi, no, se
+ xkb maps (#A.1440, Robin Rosenberg).
+ 665. Fixes and cleanups for the ISO8859-14 Compose table (#5543,
+ Séamus Ó Ciardhuáin).
+ 664. Update the Ogham xkb map, including full support for the IS434 standard
+ and laptops (#5542, Séamus Ó Ciardhuáin).
+ 663. Update the Irish xkb map, including adding support for laptops (#5541,
+ Séamus Ó Ciardhuáin).
+ 662. Add "Inet" key definitions for the Honeywell Euroboard keyboard (#A.810,
+ Scott Penrose).
+ 661. Add "Inet" key definitions for the Trust Direct Access keyboard (#A.897,
+ Raphaël Poss).
+ 660. Add draglock support to the mouse driver, for aiding trackball use
+ by people with low dexterity (#A.1224, Paul Elliott).
+ 659. Fix bad includes in the xkb "level3" symbols file (A.1444,
+ Göran Uddeborg).
+ 658. Fix atimisc panel support bug that occurs when the mode on server entry
+ is a VGA mode with large horizontal and/or vertical blanking pulses
+ (Marc La France).
+ 657. Fix small documentation error in config/imake/imakemdep.h (#A.1052,
+ Linus Almstrom).
+ 656. Small change to find_mesa_visual() in xf86glx.c to avoid
+ branch misprediction on x86 (#A.1057, lompik at voila.fr).
+ 655. Clear memory allocated in xtWidgetAlloc() to avoid garbage from
+ malloc() being referenced later (#A.1114, Adam J. Richter).
+ 656. Make SysRq generate the same keycode as PrtScrn, and Break the same
+ keycode as Pause (#A.1160, Owen Taylor).
+ 655. Add "Inet" key definitions for some HP and Toshiba laptops (#A.1213,
+ Peter Soos).
+ 654. "Inet" key definitions for the Brother Internet keyboard (#A.1242,
+ Diego Iastrubni).
+ 653. "Inet" key definitions for the Ennyah model DKB-1008 keyboard (#A.1256,
+ Lionel Landwerlin).
+ 652. Apply i830 DRM driver cleanups to the i810 driver (#A.1438,
+ David Airlie).
+ 651. Add XI18NOBJS files for the ko_KR.UTF-8 and ja_JP.UTF-8 locales
+ (#5538, 5539, Jungshik Shin).
+ 650. Add FIRSTINDEX to the gb2312.1980-0.enc, gbk-0.enc and jis0212.1990-0.enc
+ encoding files (#5537, Jungshik Shin).
+ 649. Increment shared libraries major revisions on OpenBSD if gcc with
+ stack protector is used (Matthieu Herrb, Todd Fries).
+ 648. Resync with DRI (mesa-4-0-4-branch).
+ 647. Update XDarwin's IOKit mode to work with new event handling code
+ (Torrey T. Lyons).
+ 646. Add some more aliases for some German locales (#A.1263, Thomas Koeller).
+ 645. Update kio8-r encoded Cyrillic BDF fonts (#A.1267, Andrey A. Chernov).
+ 644. Fix Xtrans TLI code to handle a port scan and not fill the log file
+ with error messages from _XSERVTransTLIAccept() (#A.1333, Fiel Cabral).
+ 643. Only free cbs.data.text when cbs.type is XIMTextType in
+ _XimStatusDrawCallback() (#A.1342, Owen Taylor).
+ 642. Allow mouse pointer movement to be rotated (#A.1346, Joost Buelens).
+ 641. Add xkb layouts for Indian scripts (Kannada, Telugu, and Oriya) (#A.1436,
+ Guntupalli Karunakar).
+ 640. Enable MMX, SSE and 3DNow! for NetBSD 1.6 and later (#5536,
+ Matthias Scheler).
+ 639. Merge the xkb 'lt' layouts into pc/lt (#5535, Nerijus Baliunas).
+ 638. Set the default fa_IR character set to UTF-8 instead of
+ ISIRI-3342 (#A.1356, Roozbeh Pournader).
+ 637. Fixes and updates for building under LynxOS/PowerPC 4.0 (#A.1386,
+ Stuart Lissaman).
+ 636. Update the ClearlyU fonts to version 1.9 (#A.1386, Mark Leisher).
+ 635. Fix for drmOpenDevice() ignoring success on its second attempt at
+ opening the drm device (#A.1394, Alexander Stohr).
+ 634. Add support for a "-include" command line option to makedepend, similar
+ to the same GNU C option (#A.1396, Alexander Stohr).
+ 633. Perform country-independent matching for Chinese languages in fontconfig
+ (#A.1406, Keith Packard).
+ 632. Finish off the UTF-16 APIs in Xft, and fix the UTF-16 conversion
+ code in fontconfig (#A.1411, Keith Packard, Jungshik Shin).
+ 631. Make XIM locale checking case-independent (based on #A.1422, Leon Ho).
+ 630. Fix incorrect datatype for the pixmap width in
+ fbCompositeSrcAdd_8000x8000(), and add some small optimisations
+ (#A.1423, Keith Packard).
+ 629. Update the se xkb map to allow the older AltGr+5 method of entering
+ the Euro sign (#A.1433, Christian Rose).
+ 628. Add validation for the screen number parameter received over the wire
+ by the X server's DRI extension code, and fix some similar checks in
+ the GLX code. This fixes X server segfaults when an invalid screen
+ value is provided (#A.1434, Felix Kühling)..
+ 627. Fix some bugs in the Iranian xkb layout (#A.1135, Roozbeh Pournader).
+ 626. Add a Bosnian xkb layout (#A.1398, Amila Akagic).
+ 625. Fix for Hungarian xkb layout (#A.1175, Peter Soos).
+ 624. Update the Maltese xkb layouts (#A.1243, Ramon Casha).
+ 623. Add EuroSign to the xkb "gb" layout (#A.901, Dermot McNally).
+ 622. Various updates for the xkb "xfree86" keymap list (including #A.777,
+ Andriy Rysin).
+ 621. Let kbd driver test if Xserver is in suspend before handling any
+ input events (Egbert Eich).
+ 620. Fixed agp version checking to accept minor versions >= the specified
+ number (Leif Delgass).
+ 619. Update referenced symbols lists for the mga, vesa, i810 and vmware
+ drivers (David Dawes).
+ 618. Add missing symbol to the mga driver's referenced symbols lists
+ (#5534, Mike Harris).
+ 617. Add some utf8 locale aliases (#5533, Mike Harris).
+ 616. Fix some Linux/Alpha (with domain support) build and runtime
+ problems (#5532, Jeff Wiedemeier).
+ 615. Add some missing symbols to the radeon driver's referenced symbols
+ lists (#5531, Mike Harris).
+ 614. Restore the Alt/Meta mappings for pc104/pc105 keyboards in the
+ multi-layout maps (David Dawes).
+ 613. Add UTF-8 locale entries for Amharic-Ethiopian, Tigrinya-Eritrean
+ and Tigrinya-Ethiopian (#5529, Daniel Yacob).
+ 612. Restore the "\|" key in the GB multi-layout keyboard layout (#5528,
+ Andrew Aitchison).
+ 611. Updates for the auto-generated UTF-8 Compose file (#5527,
+ David Monniaux).
+ 610. Updates/fixes for the Korean font encoding file (#5525, Jungshik Shin).
+ 609. Fix some problems with the multilayout version of the Turkish layout
+ (#5521, Nilgün Belma Bugüner).
+ 608. DRM vertical blank ioctl can send a signal as an alternative to
+ blocking (r200 and radeon only so far) (#5523, Michel Dänzer).
+ 607. Build fix for Linux/Alpha (#5515, Mike Harris).
+ 606. Change CppCmd on Linux to /usr/bin/cpp (#5514, Mike Harris).
+ 605. Fix an incorrect check for the "StrangeLockups" option in the
+ neomagic driver (#5505, Mike Harris).
+ 604. Rename geode driver to nsc and add GX2 support (Sarma Kolluru, NatSemi).
+ 603. Add the missing XKB definition for keysym "ISO_Level3_Lock" (#5526,
+ Séamus Ó Ciardhuáin).
+ 602. XkbSetControls should return True when successful, not False (#A.1385,
+ Stephen Montgomery-Smith).
+ 601. The functions XGetXlibControls and XSetXlibControls must work even if
+ the X server doesn't have the XKB extensions (#5513, Ivan Pascal).
+ 600. Add en_ZA locales (#5512, Berend De Schouwer).
+ 599. Fix shadowfb to not make update callbacks for operations that don't
+ touch offscreen memory, and to not double (or more) update glyph
+ rendering (#5509, Nolan Leake).
+ 598. Change XAA to not sync when it sees RENDER operations that don't
+ touch VRAM, and to try to accelerate Glyphs with Composite if it
+ seems likely that will work (#5509, Nolan Leake).
+ 597. VMware driver updates, including:
+ - Fixed vmwareGetImage to correctly calculate the region to be gotten.
+ - Small cursor bypass optimization.
+ - Fixed race between writing normal registers and writing HWcursor
+ registers.
+ - Fixed small race in the FIFO wrap code that could cause FIFO
+ corruption.
+ - Added temporary offscreen memory manager.
+ - Added compositing (RENDER) acceleration.
+ (#5509, Nolan Leake).
+ 596. Newport driver updates, including:
+ - Add hardware cursor support.
+ - Workaround blank console after VT switch on some newports
+ (based on a patch from Dominik Behr).
+ - Support for the Indigo2 XL (based on a patch from Adrian Schroeter).
+ (#5507, Guido Guenther).
+ 595. Add SGML versions of the XKB config and enhancing docs (#5506,
+ Kamil Toman).
+ 594. Enable SSE, MMX, 3DNow support by default for Linux/x86_64 (#5502,
+ Mike Harris).
+ 593. Replace hard-coded "lib" directory names with LibDirName in Imake.tmpl
+ (#5480, Mike Harris).
+ 592. DRI shouldn't have been enabled for Linux/s390 (#5500, Mike Harris).
+ 591. Numerous bug, stability, and correctness fixes for the Intel 830/845G
+ 3D support (#5517, Keith Whitwell).
+ 590. Numerous bug and stability fixes for the Intel 830/845G 2D and Xv
+ support (#5517, David Dawes).
+ 589. Move IOKit-specific global variables out of generic XDarwin code
+ (Torrey T. Lyons).
+ 588. Add a new interface for registration of core font renderers that allows
+ priorities to be assigned. This allows multiple renderers for the
+ same extension to be registered, with the one with the highest priority
+ being the one that gets used (#5435, 5437, Juliusz Chroboczek).
+ 587. Fix 640x480 modes in neomagic driver (Egbert Eich).
+ 586. Fix reporting of G400/G450 in MGA driver (Andrew C. Aitchison).
+ 585. Don't change the authorization data (and in particular, don't
+ enable local host access) if the X server's authority file
+ is removed or becomes unreadable while the server is running
+ (David Dawes, reported by Dietmar Schröter).
+ 584. Xterm patch #171 (Thomas Dickey).
+ 583. Fix uninitialized buffer-count in luit (Semen A. Ustimenko).
+ 582. Various xdm updates from Debian and Suse (#5358, Branden Robinson,
+ #5511, Sebastian Krahmer).
+ 581. Flesh out suncg6's SaveScreen() function (Moritz Bunkus).
+ 580. lib/Xaw/MultiSrc.c improperly checks open() return value
+ (A.1415, Jaromir Dolecek), Fix provided by Hideo Saito in NetBSD.
+ 579. Add DPMS and screen blanking support in the sunffb driver
+ (Ferris McCormick).
+ 578. Fix SEGV that occurs when Xsun* runs into an unrecognized framebuffer
+ type (Marc La France).
+ 577. When the mode on server entry is found to be using composite sync on a
+ Mach64 variant, turn on the "compositesync" option (Marc La France).
+ 576. Plug SIGIO hole while the server is switching back into its VT
+ (reported by Michel Lespinasse).
+ 575. Use shadowfb in XDarwin fullscreen Quartz mode (Torrey T. Lyons).
+ 574. Make RENDER optional for Xvfb. When RENDER is enabled add depth 32
+ pixmap format to list of supported pixmaps (Egbert Eich).
+ 573. Fix va_args glitches for xterm/libfontconfig: 0 == (void*)0 isn't true
+ for all platforms (Egbert Eich).
+ 572. Fix lbxproxy to also build on platforms that don't have snprintf()
+ (Egbert Eich).
+ 571. Fix va_args glitches in mkfontscale: arg stack isn't preserved after
+ calling va_arg on all platforms (Egbert Eich).
+ 570. Fixed x11perf aa benchmarks to support non-default visuals/colormaps
+ (Egbert Eich).
+ 569. Use -Os to build on Darwin PPC with Gcc 3.x (Torrey T. Lyons).
+ 568. XEditResCheckMessages trashed XtMalloced memory on some widget
+ hierarchies, due to using incorrect indexes when removing
+ duplicates (A.1409, Rob Arthan).
+ 567. xprop updates (Mihael Hategan).
+ 566. Fix SEGV in ICE library (Petter Reinholdtsen).
+ 565. Fix interaction between backing store and miext/shadow (adapted from
+ Paulo César Pereira de Andrade).
+ 564. Add new key descriptions for XFree86 special keys (i.e. for terminating
+ and VT switching the Xserver) (#5510, Ivan Pascal).
+ 563. #define DEALLOCATE_LOCAL as "do {} while(0)" instead of nothing to
+ eliminate GCC warnings caused by code that does not assume
+ DEALLOCATE_LOCAL can deal with null pointers (suggested by Kevin Martin).
+ 562. -
+ 561. Fix bug in kldload() call on FreeBSD (reported by Joy Ganguly).
+ 560. Adding int10 symbols to the list of possibly unresolved symbols in
+ Rage128 driver (Egbert Eich).
+ 559. Allowing scanpci to be build on Ppc (Egbert Eich).
+ 558. Updating SiS driver. Lots of new features, supported chipsets and
+ LCD panels, bug fixes. For details please check:
+ http://www.winischhofer.net/linuxsis630.shtml
+ (Thomas Winischhofer).
+ 557. Changed MGA driver to query fb_offset for DRI from kernel instead
+ of taking the driver's FBAddress - this is required by platforms
+ like Alpha (Egbert Eich).
+ 556. Fix Xmu memory leak (reported by Michael Vogt).
+ 555. Deal with Creative SBlive devices that mis-identify themselves as
+ "prehistoric" VGA's (Marc La France).
+ 554. Allow -configure to setup Unknown Vendor/Boards removing the requirement
+ of xf86PciInfo information (Alan Hourihane).
+ 553. Hardware alpha blended cursors in the "nv" driver, new PCI IDs, and
+ a fix for a problem on PowerPC (Mark Vojkovich).
+ 552. "nv" driver workaround needed to let Xv continue to work after a
+ suspend on some laptops (Pierre Lombard).
+ 551. Restore '--assembler-with-cpp' in AsCmd for Linux/mips, fixing the build
+ on that platform (#5499, Guido Guenther).
+ 550. An alternative update for alphabetic four level cz, sk XKB maps.
+ This is compatible with the way MS Windows behaves (#5498, Kamil Toman).
+ 549. Clarify the difference between characters and bytes in xev (#5497,
+ Markus Kuhn).
+ 548. Add an Irish (ie) XKB keyboard map (#5496, Seamus O Ciardhuain).
+ 547. Replace the UTF-8 compose map with one automatically generated from
+ the official Unicode documentation, with the addition of some
+ handwritten rules (#5495, David Monniaux).
+ 546. Document the "nomtrr" option in the XF86Config man page (#5494,
+ Mike Harris).
+ 545. Some fixes for the Icelandic xkb map (#5493, Olafur Osvaldsson).
+ 544. Add French Canadian keyboard description to xfree86.lst (#5492,
+ Mike Harris).
+ 543. Add a new file for descriptions of XkbModel, XkbLayout, XkbVariant
+ and XkbOption names, using an XML format. Includes a DTD file
+ and perl script to convert from the new format to the old (.lst)
+ format (#5491, Ivan Pascal).
+ 542. Add missing "dvorak" single-group XKB layout (#5490, Ivan Pascal).
+ 541. Change the xkbfile library to allow some names to be grouped into
+ a named list, which allows the rules file to be simplified (#5490,
+ Ivan Pascal).
+ 540. Make the new single-group XKB symbols maps used by default (#5490,
+ Ivan Pascal).
+ 539. Fix a crash that can happen when some apps are run in CJK locales
+ (#5489, Havoc Pennington).
+ 538. Make xdm check the full password string (on Linux) for locked accounts
+ rather than just the first character (#5485, Mike Harris,
+ Nalin Dahyabhai).
+ 537. Fix a few cases where the transport endpoints would be removed
+ even if NOUNLINK is specified in the flags (#5484, J. Kean Johnston).
+ 536. Attempt to fix bitblt problems when doing offscreen pixmaps in
+ i810 (Egbert Eich).
+ 535. Change Build rule so that x86 assembler code for MESA can be completely
+ disabled on i386 (Egbert Eich).
+ 534. Added IEEE Optimization for x86-64 (Egbert Eich).
+ 533. Initialized fullscreen in DRIscreenPrivate to a vaild value
+ (Egbert Eich).
+ 532. Fixed module loader to map memory in the low 32bit address space on
+ x86-64 (Egbert Eich).
+ 531. Shifted Keypad delete: added KP_Separator for de_DE and de_CH keyboard.
+ 530. Added sanity checks to various scripts (Egbert Eich).
+ 529. Fixed Trident RGB16 video playback mode (Alastair Robinsion).
+ 528. i810 only set OVRACT register when TVout isn't enabled
+ (Sebastien BASTARD, Matthew J. Sottek, Egbert Eich).
+ 527. Record changes of BusMaster state so that pciDisable/Enable/Mem/Io
+ don't override these (Egbert Eich).
+ 526. Fixed RAC code: when no resources are shared chips may still need
+ RAC for bus access if both require non overlapping parts of the
+ VGA resources (Egbert Eich).
+ 525. Fix for resource registration of C&T and Tdfx driver (Egbert Eich).
+ 524. Prevent core dumps in Xutf8Reset/Lookup code of Xlib (Masaru Yokoi).
+ 523. Added support for BE systems for C&T driver (Michael Stephen Hanni).
+ 522. Added support for special keys found on many ACPI control, Easy Access
+ Keyboards, Internet keyboards, laptops, notebooks and PDA (via
+ xkb/symbols/inet). Added new key symbols for these keyboards
+ (Stanislav Brabec).
+ 521. Fixed some problems with ininite loops which where introduced
+ with the host bridge specific code (Egbert Eich).
+ 520. AXP domain support (Jeff Wiedemeier).
+ 519. Added -m32 flag to c++ when build on ia32 (Egbert Eich).
+ 518. -
+ 517. Added rule to be able to use Numlock key on broken IBM keyboards
+ (Stefan Dirsch).
+ 516. Fixed Xlib build rules so it builds a truly static library again
+ (Egbert Eich).
+ 515. When compiled with GCC, force imake to generate Makefile's using GCC's
+ preprocessor rather than a system-provided one (Marc La France).
+ 514. Replace hard-coded "lib" directory names with LibDirName in X11.tmpl
+ (#5480, Mike Harris).
+ 513. Add some README files for XKB and it's configuration files (#5479, 5483,
+ Kamil Toman).
+ 512. Fixes for the "pc" cz and sk XKB maps:
+ - readded cz_qwerty (but new pc/ style) map
+ - added bskl variant missing in cz_qwerty and sk, sk_qwerty
+ - fixed keypad decimal key definition to affect only defined group
+ in cz, cz_qwerty
+ - missing SPCE definition readded to sk, sk_qwerty
+ (#5478, Kamil Toman).
+ 511. Union Reality UR-F98 headtracker input driver (Linux-only) (#5476, 5477,
+ Alan Cox).
+ 510. Palmax PD1100 touch screen driver (#5475, 5477, Alan Cox).
+ 509. Fujitsu Stylistic input driver (#5474, 5477, Rob Tsuk, John Apfelbaum,
+ Richard Miller-Smith, Alan Cox).
+ 508. Initialise ProgramName in xterm's main before referencing it (#5473,
+ Peter Valchev).
+ 507. Add an Ogham XKB keyboard map (#5472, Seamus O Ciardhuain).
+ 506. Handle Alt+Ctrl+Shift+SPECIAL differently from Alt+Ctrl+SPECIAL
+ where SPECIAL is one of the fallback built-in XFree86 hot keys
+ (#5468, J. Kean Johnston).
+ 505. Add Syriac XKB keyboard maps (#5467, Emil Soleyman-Zomalan).
+ 504. Rename HasKatmaiSupport to HasSSESupport (#5461-5463, 5465, Mike Harris).
+ 503. Add mouse wheel support for SCO OpenServer (#5460, J. Kean Johnston).
+ 502. Fix i18n problem in xmessage due to use of the useStringInPlace
+ resource (A.1381, Chisato Yamauchi).
+ 501. Fix xnest build on file systems that are not case sensitive
+ (Torrey T. Lyons).
+ 500. Use unique local Imake define for fonts.conf dir (#5482, Mike A. Harris)
+ 499. Fix xc/lib/Imakefile to not break HasFontconfig (#5481, Mike A. Harris)
+ 498. Refresh screen after wake from sleep in XDarwin full screen mode
+ (Torrey T. Lyons).
+ 497. Fixes and updates for the SCO OpenServer port (#5459, J. Kean Johnston).
+ 496. Add PCI ID defines for some ATI R300 chipsets (#5458,
+ Vladimir Dergachev).
+ 495. Fix error message typo in MakeRootTile() (#5451, Mike Harris).
+ 494. Redirect hostname's stderr in the xon script (#5450, Mike Harris).
+ 493. Add a request to the XFree86-Misc extension for querying the
+ X server's config file, module path, and log file name (#5456, Joe Moss).
+ 492. Add support for using the XKEYBOARD extension's action handlers
+ for the XFree86 X server hot keys. This provides control over
+ the mapping of these hot keys (#A.1334, 5454, Joe Moss).
+ 491. Reinstate the X server -xkbdir option, but only when the X server's
+ real and effective uids are the same (based on #A.1132, Ivan Popov).
+ 490. Fix an xkbcomp bug that prevents a later definition from specifying
+ actions if the previous definition didn't (#5471, Joe Moss).
+ 489. Add a stub handler to xkbcomp for the DeviceValuator action (#A.1341,
+ Joe Moss).
+ 488. Fix broken software cursor with XDarwin's new event handling
+ (Torrey T. Lyons).
+ 487. Change imake so that, when compiled with GCC, it invokes the pre-
+ processor through the gcc front-end, passing it imake's -v flag
+ (Marc La France).
+ 486. xf86cfg and xf86config patches, includind 1400x1050 mode, update list
+ of modules, auto inclusion of the xtt module when running X -configure
+ (A.1363, A.1364, A.1365, Chisato Yamauchi).
+ 485. Fix unbalanced paranthesis in linuxPci.c (#5466, Ishikawa Mutsumi).
+ 484. Remove "Option VideoRam" from savage driver, there's no need for it,
+ and utilize the entities given VideoRam size (Alan Hourihane).
+ 483. Fix fontconfig to obey NothingOutsideProjectRoot, so that the directory
+ /usr/share/fonts is ignored in this case (#A.1325, Joe Moss).
+ 482. Fix a segfault when using xkbcomp's -I option, and update the man
+ page to correctly document the way this option works (#5447, Joe Moss).
+ 481. Don't assume mmap returns the pointer hint requested. This is in
+ the DENSE map code for Linux/alpha (#5439, Ray Strode).
+ 480. Build fix for r128_accel on PPC when DRI is disabled (based on
+ #5438, Mike Harris and #5449, Matthieu Herrb).
+ 479. Updates to bdf/misc UCS fonts (#5446, 5453, Markus Kuhn).
+ 478. Fix Thai glyphs in the 6x13 UCS font (#5427, Theppitak Karoonboonyanan).
+ 477. Add Thai glyphs to 7x13, 7x13B, 7x13O, 7x14, 7x14B UCS fonts
+ (#5445, Theppitak Karoonboonyanan).
+ 476. Add Thai subfont generation based on the ISO8859-11 map from unicode.org
+ (#5434, 5445, Theppitak Karoonboonyanan).
+ 475. Update the multilayout version of the Greek (el) xkb symbols (#5425,
+ Vasilis Vasaitis).
+ 474. On XDarwin startup, do not send events to the X server thread until it
+ is ready to receive them (Torrey T. Lyons).
+ 473. Add a utility (called gtf) for calculating VESA GTF mode lines
+ (Andy Ritger).
+ 472. Add an input driver for KB-Gear's Jamstudio pentablet (A.1328,
+ Brian Goines).
+ 471. Add a Tektronix 4957 input driver (#A.1211, Olivier Danet).
+ 470. Fix backing store in Rage 128 and Radeon drivers (Kevin Martin).
+ 469. Fix Mono8x8 code in savage driver, needed ROP_NEEDS_SOURCE, also
+ add NO_PLANEMASK to ScreenToScreen as code doesn't handle that case
+ (Alan Hourihane).
+ 468. Add a little utility to read and write I/O ports, for those host
+ architectures that have them (Marc La France).
+ 467. Ignore (with messages) any HorizSync and VertRefresh specifications for
+ panels when using ATI LT, LTPro, XL and Mobility M1 (Marc La France).
+ 466. Fix a build failure when BuildServersOnly is defined and XnestServer
+ is not defined, and when /usr/X11R6 is not installed. (#A.1145,
+ Valeriy E. Ushakov).
+ 465. Fix panel support bug for ATI LTPro, XL and Mobility M1 chips
+ (Marc La France).
+ 464. Fix mode validation to deal with video memory sizes 256MB or greater
+ (Marc La France).
+ 463. Add ARGB cursors support to the vmware driver (#5442, Nolan Leake).
+ 462. Add more query options to glxinfo (#5441, Brian Paul).
+ 461. Fix a typo in glxinfo (#5440, D. Hageman).
+ 460. Fix a memory leak in Cygwin/XFree86 server (#5444, Kensuke Matsuzaki).
+ 459. Missing fallback to miPolyArc in fbarc.c (#A.1339, Ralf Klingebiel).
+ 458. Fix the cyrix driver support for the 5510, 5520 and 5530. This driver
+ only works with VSA1 based chips (#A.1260, Alan Cox).
+ 457. When building with gcc >= 2.8, generate Makefiles with `imake -Wundef`
+ (Marc La France).
+ 456. Re-instate changes clobbered by DRI merge (Marc La France).
+ 455. Fix a typo in shadowfb support from #5413 (#5430, Nolan Leake).
+ 454. Fix a bug in vmware's HW cursor support which conditionally hid the
+ cursor (#5430, Nolan Leake).
+ 453. Fix an initialization problem in the calcomp input driver (#A.1056,
+ Josef Walzer).
+ 452. Add command line and XF86Config options to control Render color
+ allocation on dynamic indexed visuals (Olivier Chapuis, Keith Packard)
+ 451. Keep track of whether the 830/845G HW cursor should be visible or
+ hidden so that it doesn't get turned on when it shouldn't (David Dawes).
+ 450. Fix for DGA offset inconsistency in the 830/845G driver (based on
+ a patch from Edgar Toernig).
+ 449. Fix a memory leak when calling _XCloseLC and removing the loadable
+ locales (#A.855 Mark Robinson).
+ 448. Fix input size of character strings used in lib/X11/lcGetConv.c (#A.828,
+ Yong-Jhen Hong).
+ 447. Add Shape extension support to Cygwin/XFree86 rootless mode (#5431,
+ Matsuzaki Kensuke).
+ 446. Fix a typo in the s3 driver which prevented virtual display sizes.
+ (#A.965, Stef Voltz).
+ 445. Fix a server crash that can happen when a DGA client frees its colormap
+ before setting the mode back to the original mode (David Dawes).
+ 444. Modify Type1 font RAM allocation heuristics to allow for larger fonts.
+ (#A.1121, Melchior Franz).
+ 443. Add new relocation entries for Alpha architecture to the loader which
+ are used when compiling with gcc >3.1 (#A.819, Thorsten Kranzkowski).
+ 442. Fix server crash when using Xinerama when application closes.
+ (#A.808, Tsukahara Ken).
+ 441. Import Mesa-4.0.4, and resync with the DRI trunk (DRI Project).
+ 440. Server support for the alpha architecture on OpenBSD 3.2.
+ (Matthieu Herrb, Arthur Grabowski).
+ 439. Workaround for <linux/input.h> conflict (Marc La France).
+
+XFree86 4.2.99.2 (21 October 2002)
+ 438. Fix some memory leaks in libX11 i18n code (#A.1314, Olivier Chapuis).
+ 437. Add DGA and Xvideo support to the i740 driver (#A.1307, Kopecek Tomas).
+ 436. Fix the number of beeps when using AccessX and XKB
+ (#A.1302, Alan Coopersmith).
+ 435. Add twelve hour format to xclock's digital format
+ (#A.1285, Brian L. Matthews).
+ 434. Fix application crash when using DPS client libraries
+ (#A.1282, Frank Giessler).
+ 433. Fix pixmap cache corruption on VT switches in mga driver
+ (#A.1279, Ross Mikosh).
+ 432. Add missing Increment option in Summa input driver (#A.1276, G.P.Halkes).
+ 431. Missing semicolon in twm/gram.y (#A.1307, Jim Gifford).
+ 430. Cygwin/XFree86 updates
+ - Add X.ico, an icon for Windows (Harold Hunt, Jehan Bing)
+ - Include a preliminary pseudo-rootless mode (Matsuzaki Kensuke)
+ - XF86Config file support (Alexander Gottwald)
+ - Scrollbars support (Jehan Bing, Harold Hunt)
+ (#5424, Cygwin/XFree86 developers).
+ 429. Add ko_KR.UTF-8 and ja_JP.UTF-8 XLC_LOCALE files (#5421, Jungshik Shin).
+ 428. Add TCVN support to luit (#5416, Tomohiro KUBOTA).
+ 427. Expand luit to support several major non-ISO-2022-compliant
+ encodings such as GBK and Shift_JIS (#5416, Tomohiro KUBOTA).
+ 426. Add support for double-buffering to the tdfx driver's XVideo overlay
+ support (#5415, Stephen Davies).
+ 425. Add a -strftime option for xclock's digital mode (#5414, George Belotsky).
+ 424. README.fonts update (#5409, 5410, Khoda Hafez).
+ 423. Major update for VMware driver
+ - recoded to use XAA, offscreen memory support, and color expansion code
+ - Add RENDER support
+ - Optimization of HWcursor
+ - Bug fixes for HWcursor in 8bit mode and VT switching
+ (#5423, Nolan Leake, VMware).
+ 422. Updates for shadowfb code
+ - Add RENDER support
+ - support for pre-fb modifications
+ - support for real framebuffers rather than memory based framebuffer
+ - Removal of old fullscreen update code (when VT switching)
+ - fix bug in FillSpans
+ (#5411, #5413, Nolan Leake, VMware).
+ 421. Clear the list of registered renderers at the start of each new server
+ generation, and only print warnings about suffixes with more than
+ one registered renderer for the first generation (David Dawes).
+ 420. Make xf86PrintModes() show which modes are hot-key switchable
+ (David Dawes).
+ 419. Fix the vesa driver's misuse of virtualX for displayWidth (David Dawes).
+ 418. Fix the VBE module's depth/bpp matching, which fixes some 24/32 problems
+ as well as some 15/16 problems (David Dawes).
+ 417. Fix black cursor images on Mac OS X 10.2.2 (Joseph Maurer).
+ 416. Fix hotkey switching for user-specified modes, and fix hotkey switching
+ between all valid modes when no specific modes are specified in the
+ config file (David Dawes).
+ 415. Trival input drivers Imakefile cleanup (#5299, Mike Harris).
+ 414. Use INSTDATFLAGS when installing X server modules (#5292,
+ Branden Robinson).
+ 413. Fix the iso8859-15 Compose map -- there is no diaeresis codepoint
+ in iso8859-15 (#5389, Wolfgang Sourdeau, Rüdiger Kuhlman).
+ 412. Acute/apostrophe fix for nodeadkeys section of XKB German symbols
+ (#5388, Andreas Metzler).
+ 411. Fix Cards file typo (#5387, Branden Robinson).
+ 410. Cleanup the XKB Macinosh US keyboard symbols, and remove those that
+ should be in other country maps (#5386, Branden Robinson).
+ 409. Add a user-configurable throttle on xconsole's number of saved lines
+ (#5379, Branden Robinson).
+ 408. Fix missing declaration of XShmGetEventBase() in XShm.h (#5375,
+ Branden Robinson).
+ 407. Remove inconsistencies in the way extension headers are referred to
+ in most extension libraries (David Dawes).
+ 406. Install extension struct/protocol headers that weren't already
+ being installed (#5369, Branden Robinson).
+ 405. Fix long-standing colour map bug in ATI driver (Marc La France).
+ 404. Enable imake.c to perform correct C library version detection on hppa
+ machines (#5372, Ben Collins).
+ 403. Add new Imake rules to handle C++ programs that don't have man pages
+ (#5371, Branden Robinson).
+ 402. Add a -color app-defaults file for xmessage that exercises some
+ features of Xaw7, and fix the base app-defaults to not use the no
+ longer supported "whenNeeded" value for the "Scroll" resource (#5370,
+ Branden Robinson).
+ 401. Stop the drm module from creating a world-writable directory in /dev.
+ Since dev nodes can only be created by root, there's no need for
+ anyone else to be able to write to /dev/dri (#5367, Brendan O'Dea,
+ #5380, 5422, Mike Harris).
+ 400. Fix a SEGV in lbxproxy because it's ResizeReverseMap() makes assumptions
+ about the atom numbers that can lead to unallocated memory being
+ accessed (#5366, Branden Robinson and Anthony DeRobertis).
+ 399. Increase the wacom driver's timeout for reading data after a request.
+ This is needed for PalmWac (Wacom emulation for PalmOS) (#5364,
+ Mathieu Clabaut).
+ 398. Add Big5-HKSCS to locale.dir, and fix a missing portion in X-TT's
+ Big5HKSCS-Unicode table (#5362, Branden Robinson and ThizLinux
+ Laboratory Ltd).
+ 397. Handle vetoed APM suspend events properly on Linux (#5362,
+ Branden Robinson).
+ 396. Handle ARM and HP-PA separately from m68k and PowerPC in xfree86.cf,
+ and some cleanups (#5360, Branden Robinson).
+ 395. xfs updates and cleanups (#5359, Branden Robinson).
+ 394. Fix for random crashes when a screen fails to initialise (Marc La France).
+ 393. Update RandR to include refresh rates (v1.1) (Keith Packard)
+ 392. Numerous man pages fixes, add some missing manpages (#5365, #5373,
+ #5376, #5377, #5382-5385, #5390, #5391, #5393, #5295 Branden Robinson
+ #5374, Jonathan Amery, #5378, Jochen Voss)
+ 391. Install bdftruncate and ucs2any without the .pl extension
+ (#5391, Branden Robinson)
+ 390. Rewrite Radeon DDC/DFP mode detection and management (Kevin Martin).
+ 389. Integrate ATI patch:
+ - Add 2D support for Radeon 9000 (RV250), Mobility M9 (RV250 mobile)
+ and Radeon 9700 (R300)
+ - Clone mode fixes and improvements
+ - Dell VE card fixes
+ - Dual-head VT switching fixes
+ - General code clean up
+ (#A.1217, Hui Yu@ATI).
+ 388. Rewrite XDarwin's event handling to fix some bugs and to use
+ SetInputCheck() for a performance boost (Torrey T. Lyons).
+ 387. Add a little utility to write files through mmap() (Marc La France).
+ 386. Add National Semiconductor Geode driver, support for the 5530, SC1200
+ and SC1400 chipsets (NSC, Alan Hourihane).
+ 385. linux.cf updates:
+ - Resync the DebianMaintainer #define and the stuff in the
+ corresponding if block to meet Debian's current needs.
+ - Sort long chains of architecture-dependent #if-#elif directives in
+ ASCII order.
+ - Add explicit recongition of several architectures to the #ifndef
+ BuildXF86DRI block.
+ - Define a fallback CplusplusCmd (g++) if we don't recongize the
+ platform we're on.
+ - Turn off the loadable server on MIPS and SuperH platforms, where it
+ doesn't (yet) work.
+ - Trash some unneeded #defines in the Mc68020Architecture compilation
+ environment.
+ - Remove the block that #defines HasXserver NO for the s390 and s390x
+ architectures (things like Xvfb build fine on these platforms).
+ (#5357, Branden Robinson).
+ 384. Fix an error in the Finnish XKB keyboard map (#5356, Marko Myllynen).
+ 383. Add a Malayalam XKB keyboard map (#5355, Baiju M).
+ 382. Add a "kbd" driver module that can eventually replace the built-in
+ "keyboard" driver (#5344, Ivan Pascal).
+ 381. Add os-support level support for a loadable keyboard driver for BSD
+ and Linux (#5344, Ivan Pascal).
+ 380. Add some new common layer functions for supporting a loadable keyboard
+ driver (#5344, Ivan Pascal).
+ 379. Move the XkbDisable option to a global server flag rather than
+ keyboard driver flag, since it really is a global setting (#5344,
+ Ivan Pascal).
+ 378. Fix RenderCreateCursor's conversion from an ARGB cursor to a 2-color
+ cursor when the cursor is wider than 8 pixels (#5353, Greg Parker).
+ 377. Fix 24bpp displays with the fbdev driver when not using shadowfb
+ (#5351, Michel Lanners).
+ 376. Fixes and improvements for the en_US.UTF8 compose rules (#5346,
+ Alexandre Oliva).
+ 375. Fix compose rules for some dead accents for iso8859-1 and iso8859-15
+ (#5338, 5339, Alexandre Oliva).
+ 374. Add support for th_TH.UTF-8. with XIM (#5336, Theppitak Karoonboonyanan).
+ 373. Fix some bugs in the Thai XIM:
+ - excessive '(' char when switching XKB keyboard group
+ - ineffective Ctrl-<key> and Alt-<key>
+ (#5335, Theppitak Karoonboonyanan).
+ 372. Add an X server command line flag (-br) to make the default root window
+ solid black (#5334, Jens Owen).
+ 371. Add support for th_TH.ISO-8859-11 (#5327, Theppitak Karoonboonyanan).
+ 370. Use pci_alloc_consistent/pci_free_consistent instead of the
+ local page alloc/free functions in the i810 and i830 DRM drivers
+ (#5323, Arjan van de Ven).
+ 369. Fix some non-POSIX usage of tail, expand and sort (#5322, Paul Eggert).
+ 368. Fix bug in PCI code for Solaris/SPARC (Marc La France).
+ 367. When enabling PCI adapters, also enable their bus mastering capability;
+ Consequently, deprecate xf86EnablePciBusMaster() (Marc La France).
+ 366. Fix lndir's handling of relative symbolic links, and update the man page
+ to document the -withrevinfo flag (H. J. Lu, Marc La France).
+ 365. Xdm patches: realloc usage, zero malloc()ated memory, enable
+ /dev/urandom on NetBSD 1.4 and later, OpenBSD patches (#5345,
+ Mike A. Harris, #5401, Matthias Scheler, Matthieu Herrb)
+ 364. Xterm patches #168, #169 (Thomas Dickey).
+ 363. In certain circumstances, allow VGA-rerouting through Simba bridges.
+ This only affects UltraSPARC-IIi systems. This is a small but
+ necessary step in eradicating SparcArchitecture's need to compile the ati
+ dribver with -DAVOID_CPIO (Marc La France).
+ 362. In int10, ignore interrupts whose simulation isn't yet implemented.
+ Previously, such interrupts caused the emulation to stop. (Egbert Eich,
+ Marc La France).
+ 361. Add full support for multi-head on 460GX-based Itanium systems
+ (Marc La France, with documentation loaned by Intel under NDA).
+ 360. Fix Darwin build problems with libXrandr and the new FreeType2 backend
+ (Torrey T. Lyons).
+ 359. Savage driver updates.
+ - Support for ProSavage DDR (PCI ID 0x8D04)
+ - TV output fixes
+ - support for -pixmap24 flag
+ - XAA fixes to cure lockups
+ (#5412, Tim Roberts).
+ 358. Enable version controlled .dll's on Cygwin/XFree86 (Alexander Gottwald).
+ 357. Some build fixes for Cygwin/XFree86 (Alan Hourihane).
+ 356. Add new FreeType2 backend which fixes a bug with -c- fonts
+ (#5347, #5348, Juliusz Chroboczek).
+ 355. Add new command line options to glxinfo for more detailed output
+ (#5354, Brian Paul).
+ 354. Support for 24bpp, fix screen blanking and bug fixes for newport driver
+ (#5329, #5349, Guido Guenther).
+ 353. Add RandR support to XFree86 DDX. (Keith Packard)
+ 352. Update RandR extension to 1.0. Eliminate depth switching
+ (Keith Packard, Jim Gettys)
+ 351. Fix XDarwin rootless crash when window resizing with complex bit
+ gravity (Greg Parker).
+ 350. Fix some incorrect mappings in the gbk-0.enc encodings file (#5313,
+ Tomohiro KUBOTA).
+ 349. Fix C precedence bug in mfb (#5309, Tassia St. Germain).
+ 348. Updates to mkfontscale (#5307, Juliusz Chroboczek).
+ 347. Add SharedXcursorReqs to Cygwin build (#5405, Harold Hunt).
+ 346. Add image transformation and subpixel order to Render (Keith Packard)
+ 345. Add Xcursor-def.cpp to Xcursor library (#5350, Alexander Gottwald).
+ 344. Update to pci.ids to 2002-09-24 snapshot (Marc La France).
+ 343. Add a little utility to read files through mmap() (Marc La France).
+ 342. Implement a means to ignore certain host bridges while determining PCI
+ bus topology (not yet used) (Marc La France).
+ 341. Bridge driver interface fixups for host bridges (Marc La France).
+ 340. Change makedepend to recognise invocations of parameter'ed macros
+ (Marc La France).
+ 339. Major redesign in the Xedit syntax highlight code. Now there isn't
+ anymore the builtin C mode, but a new version using the xedit lisp
+ interpreter, as well as several new modes, including Lisp/Scheme,
+ Imakefile, X Resource files, Makefile, Manpage source, Sgml and
+ Html (Paulo César Pereira de Andrade).
+ 338. Print a warning if more than one renderer is registered for a font type
+ (#5305, Juliusz Chroboczek).
+ 337. Fix a double free() that can cause a crash in XCloseIM() (based one
+ #5303, Mo DeJong).
+ 336. Allow xman's MANCONF definition to be specified in the Imakefile
+ (based on #5302, Mike Harris).
+ 335. Config typo and update for Linux on Hitachi SuperH architecture (#5301,
+ ISHIKAWA Mutsumi).
+ 334. Add a "DefaultRefresh" option to the vesa driver (David Dawes).
+ 333. Fix build problem when calling GNU make with "--" prefixed options
+ (#5291, Toomas (toomas at tklabor.ee)).
+ 332. Avoid noise from hostname call in startx (#5270, Mike Harris).
+ 331. xwd ignores the -frame option if the -id option is used (#5251,
+ Mike Harris).
+ 330. Fix problem where DRIUnlock was called when DRI fails to load
+ (Kevin Martin)
+ 329. Fix erroneous warnings about removing DRM signal handler when DRI
+ fails to load (Kevin Martin)
+ 328. Add LINE_LIMIT_COORDS option to XAA to work around limited coordinate
+ space for lines on Radeons (Kevin Martin)
+ 327. Fix Radeon DGA code to use XAA sync function (Michel Dänzer)
+ 326. Major rework of Radeon accel code:
+ - Merge CP and MMIO code (Kevin Martin and Michel Dänzer)
+ - Fix indirect buffer CP code (Kevin Martin and Michel Dänzer)
+ - Add CP support for scanline color expansion and image writes
+ (Michel Dänzer)
+ - Fix Mono8x8 problems (Kevin Martin and Michel Dänzer)
+ - Fix clipping routine to properly set transparency and
+ dp_gui_master_cntl reg (Kevin Martin and Michel Dänzer)
+ - Fix clipping calculation errors (Kevin Martin)
+ - Properly set line bias so that sw rendered solid and dashed lines
+ match the accel TwoPoint lines (Kevin Martin)
+ - Fix drawing last point for solid and dashed lines (Kevin Martin)
+ - Remove NoLineAccel option since two point lines work (Kevin Martin)
+ 325. Export some more Xft symbols (Cygwin) that are needed for qt 3.x
+ (#5285, Ralf Habacker).
+ 324. Don't sleep on Cygwin for ICE directory mode problems (#5284,
+ Ralf Habacker).
+ 323. Fix a bug in XtGetDisplays() with more than 1 open display (#5282,
+ Kip Rugger).
+ 322. Second part of xkb multi-layout keyboard map support (#5321,
+ Ivan Pascal).
+ 321. Allow the Record extension to report logical coordinated with Xinerama
+ (#5231, Paul Stewart).
+ 320. Allow the XTrap extension to report logical coordinated with Xinerama
+ (#5230, Paul Stewart).
+ 319. Moved LdPreLib define after the vendor/OS specific config files
+ as it may depend on setting done there (Egbert Eich).
+ 318. Several fixes for cross compile environment (Egbert Eich).
+ 317. Added code to allow for building of static only libraries with
+ -fPIC for platforms which require it (Egbert Eich).
+ 316. Added '-m32' to gcc flags as default for ia32 builds when gcc version
+ is >= 3.1. This allows building a 32 bit Version of X on 64bit x86-64
+ (Egbert Eich).
+ 315. Changed direct calls of ld to 'gcc -nostdlib' for Linux (Egbert Eich).
+ 314. Changed calls to as to 'gcc -c -x assembler-with-cpp' for Linux
+ (Egbert Eich).
+ 313. Added '-fno-strict-aliasing' flag to gcc version >= 3.1 (Egbert Eich).
+ Strict requires that one address must not contain pointers to
+ different types - a feature heavily used by X (Egbert Eich).
+ 312. Fixed a core dump problem in libXtt (?) (Egbert Eich).
+ 311. Removed '#pragma pack' from structures that contain function pointers
+ in x86emu. This causes problems on gcc 3.1 for ia64 (Egbert Eich).
+ 310. Added defines for missing X types to saverproto.h (Egbert Eich).
+ 309. Fixed compiler warings generated by gcc >= 3.1 in mesa drivers
+ (Egbert Eich).
+ 308. For platforms that allow both 32 and 64 bit libraries to be executed
+ split Xlib i18n modules path into
+ <libpath>/X11R6/lib/X11/locale/lib/common and
+ <libpath>/X11R6/lib/X11/locale/lib64/common. 'lib64' has been defined
+ to be the default path for 64bit shared libraries on these platforms
+ (Egbert Eich).
+ 307. Fixed obvious typo in OMlib (Egbert Eich).
+ 306. Fixed code in cfb that didn't comply with C sequence rules.
+ Modern C compilers tend to be more aggressive on code reordering
+ (Egbert Eich).
+ 305. Changed arguments of NoopDDA() from VarArgs to void. Handling
+ of VarArgs by gcc isn't compatible with the way it was used
+ on certain platforms (Egbert Eich).
+ 304. Added support for 32bit pixmaps for 24bit overlay framebuffers in
+ fb overlay code (Egbert Eich).
+ 303. Fixed kdrive to print a meaningful error message instead of just
+ core dump when no matching graphics cards is found (Egbert Eich).
+ 302. fixed portability bug in xwd (Andreas Schwab <schwab@suse.de>)
+ 301. fixed X Server crash, which happended each time a proportional iso10646
+ font was loaded with xtt backend (Yong Li <rigel863@yahoo.com>)
+ 300. Added some ARM specific fixes to compiler.h (Uli Hecht).
+ 299. Added a virtual 'dummy' driver (Egbert Eich).
+ 298. Fixed core dump when certain access functions are not set in
+ xf86Bus.c (Egbert Eich).
+ 297. Fixed problem where SIGIO could be disabled after a server reset.
+ 296. Added configurable list of devices the xf86Misc extension is allowed
+ to change the mouse device to (Egbert Eich).
+ 295. Changed default mouse type to 'auto' when generating config file
+ with '-configure' (Egbert Eich).
+ 294. Made sure keyboard modifier settings are consistent after exit
+ from DGA when the xkb extension is used (Egbert Eich).
+ 293. Disabled keyboard processing when Xserver is suspended by power
+ management.
+ This allows effective locking of laptops when stolen (Egbert Eich).
+ 292. Added/improved options for lockfile syncing (Egbert Eich).
+ 291. Added support for backup copy of Xserver logfile (Egbert Eich).
+ 290. Fixed GetTimeInMillis() to use deltas instead of absolute time
+ returend by gettimeofday(). This ensures time is monotonic in X
+ (Egbert Eich).
+ 289. Fixed xf86Misc extension to allow modification of Expps2 mice
+ (Egbert Eich).
+ 288. Made code in xf86MiscExt.c more readable (Egbert Eich).
+ 287. Fixed PCI CardBus bridge handling (Egbert Eich).
+ 286. Added code to reenable PCI bus mastering after coming back from a
+ VT switch to radeon driver (Charl P. Botha <http://cpbotha.net/>)
+ (Egbert Eich).
+ 285. Dito for r128 driver (M. Harris).
+ 284. Dito for glint and mga driver (Egbert Eich).
+ 283. Fixed double scan issues for low res modes in C&T driver (Egbert Eich).
+ 282. Set rgbBits to 8 for all HiQV chips in chips driver (Egbert Eich).
+ 281. Moved initialization of accel funtions past initialization of
+ offscreen fb manager in chips driver (Egbert Eich).
+ 280. Fixed initialization of video in chips driver (?).
+ 279. Fixed HALlib problem restoring text mode on G550 (Egbert Eich).
+ 278. Restructured and included Matrox's Merged Framebuffer changes
+ to mga driver (Egbert Eich).
+ 277. G450/550 clockchip programming fixes (Matrox).
+ 276. Fixed HW Cursor for HALlib frame granularity (Egbert Eich).
+ 275. Enabling 2D accel in 24-bit for neomagic 2360 and 2380 (Egbert Eich).
+ 274. Added support for builtin 1024x480 mode of Sony subnotebooks for
+ Neomagic driver (Egbert Eich).
+ 273. Fixed support for lowRes (320x240) modes in neomagic driver
+ (Egbert Eich).
+ 272. Fixed RAC function registration in S3 driver (Egbert Eich).
+ 271. Added some voodoo to screen initialization of S3 driver (Egbert Eich).
+ 270. Fixed vbe/int10 support in SMI driver. It used to core dump
+ when BIOS was not usable (Egbert Eich).
+ 269. Separated BRIGHTNESS and and CAPTURE_BRIGNTESS video attributes
+ in smi driver: CAPTURE_BRIGHTNESS refers to the capture chip
+ (ie. Philips SAA7110) while BRIGHTNESS controls the video overlay
+ of the SMI chip itself (Egbert Eich).
+ 268. Disable automatic loading of DRI when running SUN ffb as this is
+ inconsistent with other drivers (Thorsten Kukuk).
+ 267. Fixed Gamma/Brightness code in trident driver (Egbert Eich).
+ 266. Added FpDelay debugging option (Egbert Eich).
+ 260. Fixed video support for Trident 9397 (Egbert Eich).
+ 265. Fixed Cursor/VT switch support for vmware driver (Egbert Eich).
+ 264. Fixed Blit problems in vmware driver when running KDE (Egbert Eich).
+ 263. Added RENDER support to vmware driver (Egbert Eich).
+ 262. Added C&T 69030 to extrapci.ids (Egbert Eich).
+ 261. Improved mouse autodetection code (Egbert Eich).
+ 260. Restructured int10 code so that vm86 and x86emu support can be loaded
+ as modules. Implemented heuristic to try vm86 first and fall back to
+ x86emu. This allows 32 bit Xservers to run on x86_64 on 64-bit kernel
+ without vm86 support (Egbert Eich).
+ 259. Restructured elf loader: determine which section to load from elfheader
+ flags (Egbert Eich).
+ 258. Adding RENDER Support to RAC (Egbert Eich).
+ 257. Using borderClip instead of borderSize region for redisplay function
+ in miext/shadow code to avoid core dumps when vt switched away
+ (Egbert Eich).
+ 256. Replacing sprintf() by snprintf() in lbxproxy to eliminate possible
+ buffer overrun exploits (Egbert Eich).
+ 255. KP_Decimal fixes to Czech and Slovak keybards
+ (Jan Holesovsky <kendy@suse.cz>) (Egbert Eich).
+ 254. Treat PCI-to-MCA and PCI-to_EISA bridges as PCI-to-ISA (Marc La France).
+ 253. Correct the server's understanding of CardBus resource ranges
+ (Marc La France).
+ 252. Ignore unconfigured (and mis-configured) PCI-to-PCI and PCI-to-CardBus
+ bridges (Marc La France).
+ 251. Prevent infinite loops during VGA re-routing (Marc La France).
+ 250. Add a framework for bus bridge drivers and use it to rework the handling
+ of Sun's Simba P2P bridges (Marc La France).
+ 249. Fix bdftopcf memory leak (Marc La France).
+ 248. XVideo support for the i830 and i845G (David Dawes, Alan Hourihane).
+ 247. Fix various bugs in the DRI support for the i830 and i845G
+ (Keith Whitwell).
+ 246. Major rework of the 2D i830/i845G support, including:
+ - Improve VESA mode selection, and fix refresh rate selection.
+ - Don't duplicate functions provided in the vbe modules.
+ - Don't duplicate functions provided in the vgahw module.
+ - Rewrite memory allocation.
+ - Rewrite initialisation and save/restore state handling.
+ - Decouple the i810 support from i830 and later.
+ - Remove various unnecessary hacks and workarounds.
+ - Fix an 845G problem with the ring buffer not in pre-allocated
+ memory.
+ - Fix screen blanking.
+ - Fix some HW cursor glitches, and turn HW cursor off at VT switch
+ and exit.
+ - Don't attempt to use the i830's function 1 entity.
+ - Fix problems with option handling.
+ (David Dawes).
+ 245. A "hammer" approach at ensuring font properties are freed properly
+ (Marc La France).
+ 244. Fix 'su' usage for FreeBSD in the default xdm config (Eric Anholt).
+ 243. Fix a FreeBSD scrollwheel problem that shows up with gcc 3.1
+ (Eric Anholt).
+ 242. Make C++ libraries on FreeBSD get linked with $(CXX), fixing libGLU
+ (Eric Anholt).
+ 241. FreeBSD.cf updates, including enabling SSE/3DNow support (Eric Anholt).
+ 240. Intel 830 and 845G DRI support, including i830 support updated for
+ Mesa 4.x (#5288, Jeff Hartmann, 2D3D).
+ 239. [SECURITY] Fix an Xlib problem that made it possible to load arbitrary
+ code into privileged clients.
+ 238. Add Xcursor library. Make Xlib use it. (Keith Packard)
+ 237. Fix threaded libraries on Mac OS X 10.2 (A.1229, Marko Karppinen).
+ 236. Add hardware accelerated GLX to XDarwin (Greg Parker).
+ 235. Use Imake custom version variables in XDarwin startup message
+ (Torrey T. Lyons).
+ 234. Attempt to prevent PCI scans on non-PCI ix86 systems (Marc La France).
+ 233. Allow master aborts on CardBus buses to complete normally during PCI
+ scans (Marc La France).
+ 232. Fix bug that prevented the server from restoring CardBus data properly
+ (Marc La France).
+ 231. Fix DEVID define and make it more generally available (Marc La France).
+ 230. Fix bug in NetBSD PCI code (Marc La France).
+ 229. Add an option to completely disable PCI scans (Marc La France).
+ 228. Xterm patch #167 (Thomas Dickey).
+ 227. Add CreateCursor request to Render extension (Keith Packard)
+ 226. Change scanpci to not disable I/O too early (Marc La France).
+ 225. Better error handling in xfs -ls argument parsing (Mordy Ovits).
+ 224. Make loader ignore ELF objects that don't define any symbols (H. J. Lu)
+ 223. Add a HasGcc3 imake symbol (Marc La France).
+ 222. Enable threaded libraries on Darwin (Jeff Whitaker and Torrey T. Lyons).
+ 221. Xaw documentation fixes (A.1218, Paul Vojta).
+ 220. Add some mode collection/handling interfaces to the vbe module,
+ which makes it easier for drivers to set modes via the video BIOS
+ (David Dawes).
+ 219. I830/845 Workaround for BIOSes which force 1MB stolen memory, and
+ agpgart related fix (#5300, Abraham vd Merwe).
+ 218. Add NetBSD specific PCI access functions for powerpc and alpha
+ platforms (Charles Hannum).
+ 217. Split bsd_video.c into architecture specific files, and merge NetBSD
+ alpha and powerpc support there. (Matthieu Herrb, Simon Burge,
+ Charles Hannum & other NetBSD developers).
+ 216. Define CSRG_BASED for Darwin and fix xman so it works on Darwin
+ (Torrey T. Lyons).
+ 215. On Darwin, fix imake to find Gcc and correct config for RawCppCmd
+ (Torrey T. Lyons).
+ 214. Add functions to allow modules to query the core X server version
+ and the version of its sub modules (David Dawes).
+ 213. Fix scanpci's printing of 64-bit PCI bases (Marc La France).
+ 212. Add missing dependency and regenerate xf86PciStdIds.h accordingly
+ (Marc La France).
+ 211. A more flexible way of dealing with ix86 motherboard chipsets that can
+ only implement less than the full 256 PCI buses (Marc La France).
+ 210. RAC-related fixups to ATI drivers and xf86SetOperatingState() call
+ cleanups in most drivers (Marc La France).
+ 209. Fix int10 miscompilation glitch on IA-64 (Marc La France).
+ 208. Add support for Permedia3 (rev C) chips that use slightly different
+ clock programming techniques (Jay Estabrook).
+ 207. Fix Finder warnings about XDarwin plist format on Jaguar
+ (Torrey T. Lyons).
+ 206. Fix XDarwin build issues on Jaguar (Sean Fagan).
+ 205. Fix Radeon DDC for non-Dell cards, and fix a radeon pci id-related
+ build problem (#5326, Andrew C Aitchison).
+ 204. Change the X server (and scanpci) to use the pci.ids file (from
+ pciids.sf.net) for vendor/device descriptions (David Dawes).
+ 203. Change XDarwin to use NSQuickDrawView instead of Carbon windows to
+ get a QuickDraw graphics port for rootless windows (Torrey T. Lyons).
+ 202. Add support for some missing 32-bit address modes to x86emu. Some
+ video BIOSes use them, especially those for some of the integrated
+ Intel chipsets, and this fixes int10/vbe support for these on
+ platforms that use the emulator (David Dawes).
+ 201. Add PCI ID for ATI Radeon Mobility M7 'LX' (#5233, Mike Harris).
+ 200. Fix CrossCompile environment for Cygwin/XFree86
+ (#5324, Alexander Gottwald, Harold Hunt).
+ 199. ATI patch to:
+ - Fix Dell OEM VE card support
+ - Add better clone mode support
+ - Fix large panel (>= 1600x1200) detection and initialization problems
+ - Remove "PanelSize" and "CrtScreen" options since they are no longer
+ needed with new CloneMode and improved flat panel support
+ - Add "DDCMode" option to detect and use DDC modes
+ - Add "PanelOff" option to disable panel on laptops
+ - Fix corrupted console problem
+ - Other misc fixes
+ (#A.1043, Hui Yu@ATI).
+ 198. Remove -DNO_TCP_H from cygwin.cf for Cygwin/XFree86 (#5320, Harold Hunt).
+ 197. Major updates to Cygwin/XFree86.
+ - fix depth 24 issues.
+ - fix the handling of the DirectDraw module.
+ - disable the use of the LAYER/RANDR extension.
+ - lots of bug fixes.
+ (#5318, #5317, Harold L. Hunt, Alan Hourihane).
+ 196. When using the vesa driver and the DisplaySize option the server
+ would crash with a floating point exception due to a divide by zero
+ in miscreeninit() (#5298, Mike A. Harris).
+ 195. The function MoveLine in lib/Xaw/TextAction.c sometimes attempts to
+ read uninitialized memory when hit ctrl-N in a Text widget to move to
+ the next line (#5245, Johnathan Kamens).
+ 194. Adjust -probe for change in default stderr verbosity (Marc La France).
+ 193. Radeon patch for Xv on all known Radeon devices (James Ralston and
+ Keith Packard).
+ 192. New XDarwin application icon (Michael Oland).
+ 191. Dead strip unneeded code in rootlessValTree.c and other miscellaneous
+ XDarwin code cleanup (Greg Parker and Torrey T. Lyons).
+ 190. Lots of Cygwin/XFree86 cleanups and fixes (#5304, Harold Hunt)
+ 189. Fix rootless XDarwin crash when resizing a window with negative x
+ coordinate (Torrey T. Lyons).
+
+XFree86 4.2.99.1 (7 June 2002)
+ 188. Fix some build problems when building with shared libraries disabled
+ (David Dawes).
+ 187. Update the magellan input driver and turn it on in the build process
+ (#A.1024, Christoph Koulen).
+ 186. Add Peritek Borealis support to the I128 driver (Robin Cutshaw).
+ 185. Modify the r128 and radeon drivers to use fbdev's DPMS support when
+ fbdev is enabled (#5219, Michel Dänzer).
+ 184. Add support for the composite sync mode flag to the radeon driver
+ (#5219, Michel Dänzer).
+ 183. Add a mkfontscale utility for creating fonts.scale files (#5213, 5214,
+ Juliusz Chroboczek).
+ 182. Add a 1152x768 mode suitable for Titanium PowerBooks to the set of
+ build-in modes (#5212, Michel Dänzer).
+ 181. Add support to xkbcomp and libxkbfile for composing multi-layout
+ keyboard maps from partial "single layout" files. This allows
+ the XkbLayout to be specified as a comma-separated list of single
+ layout names. Note: new "single layout" symbol maps aren't available
+ yet. (#5210, Ivan Pascal).
+ 180. Fix Xv endianess problem with the Radeon driver (#5207, Guido Guenther).
+ 179. Updates to the Finnish xkb map, including:
+ - add ISO-8859-15 missing symbols ([zZsS]caron)
+ - reorganize some special symbols (such as paragraph, cent, division)
+ - map AltGr+SPCE as space, nobreakspace comes way too often by accident
+ - minor white space/comment cleanups
+ (#5197, Marko Myllynen).
+ 178. Add an option to the r128 driver for enabling DMA for Xv image transfers
+ (#5195, Michel Dänzer).
+ 177. Make the 'distclean' target remove depend files (#5194,
+ Carlos A M dos Santos).
+ 176. Fix bad usage of "UseInstalled" in FreeBSD.cf (#5192,
+ Carlos A M dos Santos).
+ 175. Several xkb layout updates:
+ - Added other Armenian layouts.
+ - Added Swedish dvorak layout.
+ - Fixed typo in "la" file.
+ - Added EuroSign in Dutch keyboard.
+ - Added a "comma" variant for "ro" keyboard allowing to type real comma
+ below Romanian letters.
+ - New file "ro2" with the real Romanian layout (the file "ro" is not a
+ Romanian keyboard, but a modified US one that has been hacked to
+ include Romanian letters).
+ (#5191, Pablo Saratxaga).
+ 174. Fix makedepend so that it can parse a unary '+' operator (#5185,
+ Mark Snitily).
+ 173. Fix a typo in Xvesa's emulation of instructions forbidden in vm86
+ mode (#5184, Juliusz Chroboczek)
+ 172. Fix a bounds check in Xlib's Region code (#5183, Owen Taylor).
+ 171. Fix LIBXML2LIBDIR name clash in lib/Imakefile (#5180, ISHIKAWA Mutsumi).
+ 170. Avoid a problem with setfontdirs when run in some locales (#5179,
+ ISHIKAWA Mutsumi).
+ 169. A little tuning for XtAppPeekEvent() (#5178, Dan McNichol).
+ 168. Add a command line option to luit to specify the encoding (#5177, 5181,
+ Tomohiro Kubota).
+ 167. A fix for luit's command line argument handling (#5173, Tomohiro Kubota).
+ 166. Add support to luit for some more 8-bit encodings (#5171,
+ Juliusz Chroboczek).
+ 165. Add an option to luit to enable using GL codes instead of GR codes
+ after a single shift for keyboard input (#5170-5172, Tomohiro Kubota
+ and Juliusz Chroboczek).
+ 164. Fix an fbdev driver crash when the VT isn't active (#5169,
+ Michel Dänzer).
+ 163. Fix a bug that resulted in XwcTextPropertyToTextList() storing an
+ incomplete list (#5168, Tassia St. Germain, for X.Org).
+ 162. Add "ISO8859-16" to the registry (#5167, Tassia St. Germain, for X.Org).
+ 161. A revised Greek xkb layout, including a three-level "extended"
+ variant, and a "polytonic" variant (#5165, Vasilis Vasaitis).
+ 160. Add support for an el_GR.UTF-8 locale, including a compose file with
+ support for polytonic Greek text (#5165, Vasilis Vasaitis).
+ 159. Add missing zh_CN XI18N_OBJS file (#5164, Yong Li).
+ 158. Make xfs chdir to "/" before fork()ing (#5162, Mike Harris).
+ 157. Add some reference counting for Xlib's i18n modules, preventing
+ a module getting unloaded while it's still in use (#5160, Owen Taylor).
+ 156. Update for SCO OpenServer support (#5158, Kean Johnston).
+ 155. Add aliases for the Brazilian Portuguese locale as defined on FreeBSD
+ (#5157, Carlos A M dos Santos).
+ 154. Recognise the en_UK.ISO8859-15 and en_US.ISO8859-15 locales (#5156, 5186,
+ Matthias Scheler).
+ 153. Some cleanups for the UTF-8 Compose file, including:
+ - Better support for Greek
+ - Typo fixes, including incorrect character literals and keysyms.
+ (#5154, Vasilis Vasaitis).
+ 152. Modify Xt's default fallback font pattern to work better in locales
+ where the current one fails to find a useful font (#5152,
+ Tomohiro KUBOTA).
+ 151. Updates to bdf/misc UCS fonts, and generate ISO8859-16 subsets
+ (#5147, Markus Kuhn).
+ 150. Fix some empty delay loops and jiffie wrap bugs in the i830 drm driver
+ (#5149, Arjan Van de Ven).
+ 149. Fix a potential NULL dereference in the drm kernel module (#5148,
+ Andreas Schwab).
+ 148. Major OS/2 support update (#5119, Holger Veit).
+ 147. Fix mode setting in DGA on the Rage128 & Radeon drivers (Alan Hourihane).
+ 146. Build libXt as a flat namespace image on Darwin (Torrey T. Lyons).
+ 145. Install the bitmap file xc/programs/bitmap/Stipple as Stippler on file
+ systems that are not case sensitive (Torrey T. Lyons).
+ 144. Fix enabling of MMIO window on BladeXP desktop chips (Alan Hourihane).
+ 143. Due to bugs in the CyberBladei7/i1 series that cause offset problems,
+ we're disabling the hardware cursor (for now) (Alan Hourihane).
+ 142. Fix Xft-def.cpp file for Cygwin/XFree86 (#5283, Harold Hunt).
+ 141. Server support for OpenBSD/sparc64 (Jason Wright, Matthieu Herrb).
+ 140. Alignment fixes for Xvideo on the Permedia3 (Alan Hourihane).
+ 139. lndir fix for paths containing '//' (H. J. Lu).
+ 138. Fix blank display problem in trident driver for older TGUI series
+ chips, and a few Xv cleanups too (Alan Hourihane).
+ 137. Enable MIT-SHM extension in Xnest server (#A.795, Steve Schwarz).
+ 136. Fix typo in Rage128 DGA driver (#5187. Charles M. Hannum).
+ 135. Fix enabling of DRI when XvMC is disabled (#5208, Matthew Sottek, Intel).
+ 134. Fix HW Cursor handling in vmware driver (#5193, Jeremy, VMWare).
+ 133. YUV handling updates for v4l module. Can now handle multiple formats
+ and find common format for both videocard and kernel.(#5196, Gerd Knorr).
+ 132. Savage driver updates (#5203, Tim Roberts).
+ 131. Drop the indirect buffer after ScreenInit, fixes corruption and
+ kernel error messages. (#5199, Michel Dänzer).
+ 130. Add Polygon support to Render extension (Carl Worth, Keith Packard)
+ 129. Add Intel i845G 2D support to the i8x0 driver, DRI is disabled.
+ (#A.1062, Graeme Fisher, 2D3D).
+ 128. Fix RGB/BGR inversion problem and screen blanking in the glint
+ driver (Alan Hourihane).
+ 127. Add MIT-SCREEN-SAVER extension docs (Alan Coopersmith).
+ 126. Fix problems opening /dev/fb0 in fbdevhw layer (#5229, Michel Dänzer).
+ 125. Update the apm driver (#5227, Loic Grenie).
+ 124. Update the Japanese localization of XDarwin (Toshimitsu Tanaka).
+ 123. Symbol table cleanup, leaving xf86GetPointerScreenFuncs() as the only
+ common/xf86Cursor.c entry available to modules (Marc La France).
+ 122. Fix VidMode-generated mode switches by making them go through (almost)
+ the same code path as keyboard-generated mode switches (Marc La France).
+ 121. Allow AGP apertures to overlap with other BIOS-assigned PCI resources
+ (Marc La France).
+ 120. Indent'd most of xterm's C code (Thomas Dickey).
+ 119. Major Radeon driver code cleanup (Kevin Martin).
+ 118. Radeon Xv fixes and video key support added (Keith Packard).
+ 117. DPMS support for DFP/LCD and second head added for Radeon (Hui Yu@ATI).
+ 116. Option to disable line acceleration added since Radeon only has 14 bits
+ for lines and clipping. This will be changed to an XAA option for 14
+ bit support in the future (Hui Yu@ATI, Kevin Martin).
+ 115. Radeon DDC and DFP handling improvements (Hui Yu@ATI).
+ 114. Fixes for DRI lockup problems with Radeon 7500/VE and the AMD 761
+ chipset (Hui Yu@ATI).
+ 113. Radeon PLL routines rewritten with ATOMIC_UPDATE enabled (Hui Yu@ATI).
+ 112. Clone mode added to Radeon driver (not yet functional and disabled
+ by default) (Hui Yu@ATI, Kevin Martin).
+ 111. Fix usage of BuildBinTop in Cygwin/XFree86 (#5223, Harold Hunt).
+ 110. Implement WarpCursor for Cygwin/XFree86, and use GetProcAddress
+ instead of relying on ddraw.dll (#5220-#5222, Harold Hunt).
+ 109. Fix bug that prevented the vesa driver from accessing VGA CRTC registers
+ (Marc La France).
+ 108. New pre-processor files for expat, fontconfig and rename of
+ OSmesa-def.cpp to OSMesa-def.cpp (#5215-#5218, Alexander Gottwald).
+ 107. Rework ati, atimisc, r128 and radeon module versioning (Marc La France).
+ 106. Code clean up for the original Rage LT (Marc La France).
+ 105. An attempt at disabling display switches while the server is running on
+ an LT Pro or Mobility M1 (Marc La France).
+ 104. Make atimisc, r128 and radeon modules register the symbols they reference
+ at module load time, rather than PreInit() (Marc La France).
+ 103. Fix rounding error in Mach64 DSP calculation (Marc La France).
+ 102. Convert xmh to ANSI C (Thomas Dickey).
+ 101. Xterm patch #166 (Thomas Dickey).
+ 100. Fix keyboard beeps on Cygwin/XFree86 (#5211, Harold Hunt).
+ 99. Fixed i810 crash on vt switch due to call to Sync() while switched away
+ (Andris Pavenis).
+ 98. Fixed MGAG550 HW Cursor (Laure-Amelie Couturie).
+ 97. Added Xv support to neomagic driver (Shigehiro Nomura).
+ 96. Implemented cross compile environment (Egbert Eich).
+ 95. Added AMD x86-64 architecture support (Egbert Eich).
+ 94. Fixed memory leaks in xkb code (Egbert Eich).
+ 93. Fixed several memory leaks in the config file parser and initialization
+ routines (Egbert Eich).
+ 92. Added CardBus bridge support (Egbert Eich).
+ 91. Fixed strdup() define in glx (Egbert Eich).
+ 90. Extended xf86misc extension to support changing the mouse device
+ (Egbert Eich).
+ 89. Replaced strdup() in xf86Configure.c with xalloc()/strcpy() to avoid
+ conflicts when using internal malloc (Egbert Eich).
+ 88. Extended memory debugging: Added signal handler to trigger a memory
+ debugger dump on SIGUSR2 when compiled with memleak support
+ (Egbert Eich).
+ 87. Set vtSema to FALSE when suspended by APM to catch calls to 2D accel
+ functions (Egbert Eich).
+ 86. Implemented mouse protocol detection by analyzing data stream
+ (Egbert Eich).
+ 85. Added PnP mouse detection for PS/2, ImPS/2 and older MS serial mice
+ (Egbert Eich).
+ 84. Fixed gamma correction code for Trident 9397 (Alan Hourihane).
+ 83. Fixed C&T driver to avoid initialization of video in non-linear mode
+ (Egbert Eich).
+ 82. Changed C&T driver to allow video even if acceleration is disabled
+ (Egbert Eich).
+ 81. Attempt to implement a more consistent handling of HW cursor in C&T
+ driver (Egbert Eich).
+ 80. Fixed MGA driver to make HALlib work with VESA framebuffer modes
+ (Egbert Eich).
+ 79. Reworked Rendition driver (Egbert Eich).
+ 78. S3 Virge driver: added minimal gap between SyncStart and HDisplay to
+ avoid video lockups (Egbert Eich).
+ 77. Fixed memory leaks in S3 Savage driver (Egbert Eich).
+ 76. Modified several drivers to do int10 initialization using the
+ VBE functions instead of calling int10 directly (Egbert Eich).
+ 75. Fixed video support and mode initialization in Silicon Motion driver,
+ removed wait for v-retrace (Egbert Eich).
+ 74. Misc fixes to SiS driver (Thomas Winischhofer).
+ 73. Added support for 1400x1050 screen in Trident driver (Egbert Eich).
+ 72. Fixed several video issues for Trident CyberBladeXP chips (Egbert Eich).
+ 71. Added probe for Tseng ISA chips (Egbert Eich).
+ 70. Added 'KGAUniversal' option to generic vga driver which changes handling
+ left overscan to work also on chips with C&T core (ie all C&T and Intel
+ graphics chips) (Egbert Eich).
+ 69. Modified int10 code to map area between V_BIOS and SYS_BIOS instead of
+ copying it. Copying causes problems if legacy devices map MMIO
+ registers there (Egbert Eich).
+ 68. Implemented an extended int10 init function to allow passing flags
+ (Egbert Eich).
+ 67. Implemented optional handling of BIOS video mode scratch area in int10
+ code (Egbert Eich).
+ 66. Again modified MTRR range splitting (Egbert Eich).
+ 65. Added funtions to VBE to save and restore a video mode (Egbert Eich).
+ 64. Added missing commas to symbols/us_intl (Hans Lunsing).
+ 63. Added Ungherese (qwerty) support (Koblinger Egmont).
+ 62. Added Euro symbol for hungarian kbd layout (Koblinger Egmont).
+ 61. Build with libcurses on Darwin for forward compatibility
+ (Jordan Hubbard).
+ 60. Add Trident CyberBladeXP acceleration (Alan Hourihane).
+ 59. Major XDarwin rootless mode rewrite:
+ - Use Carbon to draw directly to windows' backing buffers, rather
+ than "triple" buffering with Core Graphics.
+ - Reorganized Xserver/hw/darwin directory structure to separate out
+ legacy support for Mac OS X 10.0.x.
+ (Torrey T. Lyons and Greg Parker).
+ 58. Fix RGB/BGR inversion problem on Permedia3 chips (Alan Hourihane).
+ 57. Fix server link problem that shows up on ppc (#5205, Guido Guenther).
+ 56. Restore effect of option "NoSilkenMouse" (Marc La France).
+ 55. Fix some nForce graphics regressions caused by recent flat panel and
+ Mac updates to the nv driver (Mark Vojkovich).
+ 54. Recognise the "Absolute" keyword that was documented in the
+ XF86Config man page (David Dawes).
+ 53. Fix the man page information about Absolute screen positioning in
+ the ServerLayout section (David Dawes).
+ 52. SunOS changes to xedit's lisp interpreter (Marc La France).
+ 51. Support the Ti 3026 ramdac with 3DLabs Permedia found on some
+ AccelStar boards (Alan Hourihane).
+ 50. Move int10 softbooting furthur up in the glint driver to post
+ much earlier (Alan Hourihane).
+ 49. Fix bug that sometimes caused makedepend to forget #define'd symbols
+ (Marc La France).
+ 48. MIT-SHM updates (Roberto Zunino, Matthieu Herrb).
+ 47. Import Mesa-4.0.1, and resync with the DRI trunk which is now based
+ on this (Keith Whitwell, Brian Paul, Alan Hourihane, David Dawes).
+ 46. Mga driver updates:
+ - Don't try dual-head mode with the G400 unless the mga_hal module
+ is loaded.
+ - Distinguish between the G400 and G450 when showing the chipset in
+ the log.
+ - Update the mga man page for supported hardware and dual-head
+ support. Futher updates are needed to document all of the
+ drivers's options.
+ (David Dawes).
+ 45. Add -Wundef when compiling the tree with GCC >= 2.8 (Marc La France).
+ 44. Macintosh flat panel fix in the "nv" driver (Mark Vojkovich).
+ 43. XDarwin fixes and improvements for full screen Quartz mode:
+ - Pull full screen specific code out of generic Quartz support.
+ - Install new colormaps correctly with PseudoColor.
+ - Release the screen immediately when closing down.
+ - Do not try to release the screen when closing down in rootless mode.
+ (Torrey T. Lyons).
+ 42. Reimplement Xft library on top of new fontconfig library (Keith Packard).
+ 41. Resync with the final Mesa-3.4.x-based DRI trunk.
+ 40. Add support for wscons bell (Jason Wright).
+ 39. Fix IBM-reported bug that could cause PCI bus lockouts with second
+ generation integrated Mach64 controllers (Marc La France).
+ 38. Rework ATI driver's registration of symbols with the loader
+ (Marc La France).
+ 37. In the ATI driver, add option "CrtDisplay" to force CRT display in a
+ dual display situation (Marc La France).
+ 36. In the ATI driver, rename option "CrtScreen" to "NoPanelDisplay", keeping
+ "CrtScreen" as a private option for compatibility (Marc La France).
+ 35. Document X_NOT_IMPLEMENTED (Marc La France).
+ 34. NetBSD teeny OS version handling improvement in imake (#5176,
+ Matthias Scheler).
+ 33. Build I2C support before building drivers (Marc La France).
+ 32. Fix a problem related to reserving the overlay key in the default
+ colormap in 24+8 mode. This caused some clients using the 8-bit
+ visuals to fail (David Dawes).
+ 31. [SECURITY] Zlib error handling fix (Mark Adler).
+ 30. Put back XDarwin's byte-ordering fix for reading keymappings on
+ Darwin x86 that was inadvertently dropped (Rob Braun).
+ 29. Fix Big Endian hardware cursor bug on GeForce3 (Mark Vojkovich).
+ 28. Experimental flat panel support in the "nv" driver. GeForce2 Go
+ should work now (Mark Vojkovich).
+ 27. XDarwinStartup improvements:
+ - Auto-detect proper mode to run XDarwin.
+ - Find XDarwin.app with Launch Services.
+ - Add XDarwinStartup man page.
+ (Torrey T. Lyons).
+ 26. Localize XDarwin credits in French (Olivier Verdier) and Portuguese
+ (Fabr’cio L. de Castro).
+ 25. Turn off XFree86-Misc and VidMode extensions for XDarwin
+ (Torrey T. Lyons).
+ 24. Localize a few missing strings in XDarwin preferences (Torrey T. Lyons).
+ 23. GeForce4 support (Mark Vojkovich).
+ 22. Add IA-64 460GX PCI IDs (Marc La France).
+ 21. Some vesa driver updates:
+ - Use the common layer's mode validation functions, which gives
+ mode selection behaviour more consistent with other drivers.
+ - Don't force the depth 24 framebuffer bpp. Instead check what
+ framebuffer layouts are supported by VBE, and and choose the
+ layout appropriately.
+ - fb handles 24/32 fb/pixmap layout conversion, so don't use
+ the xf24_32bpp module.
+ - shadow + fb at depth 4 needs the bpp set to 8.
+ (David Dawes).
+ 20. Fix some misleading messages about why modes aren't available
+ (David Dawes).
+ 19. Fix for `hostname` issue on Linux (Marc La France).
+ 18. Fix startx script for ksh (Phillip B. Bruce).
+ 17. Fix Emulate3Buttons for wsmouse protocol on NetBSD and OpenBSD
+ (Matthieu Herrb).
+ 16. Add Portuguese localization of XDarwin front end
+ (Fabr’cio L. de Castro).
+ 15. Fix mouse Protocol "Auto" for SunOS (Marc La France).
+ 14. Relocate all driver low memory accesses (atimisc module not yet done)
+ (Marc La France).
+ 13. Make driver I/O relocatable (atimisc, s3, sis and tseng not yet done)
+ (Marc La France).
+ 12. PCI domain changes for SunOS/SPARC64 (Marc La France).
+ 11. PCI domain changes for Linux/SPARC64 (#4653, David S. Miller,
+ Marc La France).
+ 10. Temporary workaround for IA-64 (Marc La France).
+ 9. Fix SIGSEGV when printing modes that have no modifiers (Marc La France).
+ 8. Revert the ATI driver's composite sync default to off (Marc La France).
+ 7. Add a note to the messages that get printed when a signal is caught
+ during initialization (which includes X -configure) that reported
+ unresolved symbols might not be the reason for the server aborting
+ (David Dawes).
+ 6. Fix symbol registration in some drivers, which reduces the number of
+ symbols reported as "unresolved" when 'X -configure' crashes
+ (David Dawes).
+ 5. Fill in names for BIOS modes in the vesa driver's mode pool that weren't
+ otherwise assigned names (David Dawes).
+ 4. Fix an unresolved symbol in libGLU.so that shows up when building it
+ with gcc-3 (David Dawes).
+ 3. Fix invalid code caused by a memcpy() macro being split by a directive
+ (#5150, Sami Farin).
+ 2. Fix incorrect symbol prefixing with Xlib's i18n modules on Solaris
+ (Keith Packard, David Dawes).
+ 1. Don't try to print mode names when the name is NULL (David Dawes).
+
+XFree86 4.2.0 (18 January 2002)
+ 690. Workaround for hardware bug that prevents older ATI 3D Rage adapters from
+ being assigned to XF86Config device sections (Marc La France).
+
+XFree86 4.1.99.7 (17 January 2002)
+ 689. Fix bug introduced in snapshot 4.1.99.5 causing XDarwin's PseudoramiX
+ extension to always be disabled (Torrey T. Lyons).
+ 688. Disable the pipe check for stdout/stderr that was added in the previous
+ snapshot because it looks like it might cause too many problems
+ (David Dawes).
+ 687. Update the Arabic (ar) XKB keyboard map (#5145, Arabeyes team).
+ 686. Update the Russian (ru) XKB keyboard map, adding two new variants
+ ("typewriter" and "phonetic") (#5143, Ivan Pascal).
+ 685. Remove the lt_a and lt_p XKB keyboard maps (#5139, Nerijus Baliunas).
+ 684. Disable the DRI and print a warning message for Radeon 8500 cards
+ until they are supported (Kevin Martin).
+ 683. Properly detect when no BIOS is present on Radeon cards (#4978,
+ Charles Hannum, Kevin Martin).
+ 682. Delay before restoring VGA registers for Radeons to "fix" VT switch
+ problems (Kevin Martin).
+ 681. Add new PCI IDs from ATI (Kevin Martin).
+ 680. Update the Xinstall.sh script to create version compatibility links for
+ shared freetype libraries when needed (David Dawes).
+ 679. Update Freetype2 shared library versions to match the versions libtool
+ generates (Keith Packard).
+ 678. Doc updates (lots of people, includes #5142, 5144)
+
+XFree86 4.1.99.6 (14 January 2002)
+ 677. Change the default verbosity level for stderr from 1 to 0 (David Dawes).
+ 676. Set the X server's stderr to non-blocking for non-root users
+ (David Dawes).
+ 675. Don't allow the X server to start when stdout or stderr is a pipe for
+ non-root users (David Dawes).
+ 674. Add OpenGL man pages.
+ 673. Avoid duplicate symbol problem with xkbevd on some platform (#A.769,
+ Nicholas Leippe).
+ 672. Updated Ukranian XKB symbols file (#A.764, Andriy Rysin).
+ 671. Fix ELF loader for ARM architecture (#5138, Phil Blundell and
+ Adam C. Powell IV).
+ 670. Fix a race condition in the Linux kernel DRM code (#5136,
+ Arjan van de Ven).
+ 669. Fix DGA support in the s3virge driver (#5135, Kevin Brosius).
+ 668. Add XvBskew, XvRskew to adjust skew values for centering of an
+ Xvideo window for the trident driver (Alan Hourihane).
+ 667. Fix loader for Motorola 68k machines (Alan Hourihane).
+ 666. Fix very high resolution modes (e.g. 1600x1200@16bpp) in the
+ Trident driver (Alan Hourihane).
+ 665. -
+ 664. Quick hack to allow GLX to be included in non-XFree86 servers
+ (Marc La France).
+ 663. More ROP_NEEDS_SOURCE fixes for Savage chipsets (Egbert Eich).
+ 662. Improvements to the SiS driver which should fix a lot of the 630
+ issues (Thomas Winischhofer).
+ 661. In XDarwin IOKit mode, ignore screens sized 1x1 (Torrey T. Lyons).
+ 660. Some missing QNX fixes (#5121, Frank Liu).
+ 659. Update XDarwin man page and usage message for XFree86 4.2.0. Add
+ XFree86 man page to XDarwin distribution (Torrey T. Lyons).
+ 658. Add bn_BD.UTF-8 to locale.dir (Taneem Ahmed).
+ 657. Fix luit not dropping priviledges when run with the -c flag (#5134,
+ Juliusz Chroboczek).
+ 656. Fix unresolved symbol and loader symbol registration problems in the
+ i810 driver that were introduced with the i830 support (David Dawes,
+ Abraham vd Merwe).
+ 655. Fix sparklies problem for other Trident *BladeXP chipsets
+ (Alan Hourihane).
+ 654. In XDarwin IOKit mode, ignore screens that can not provide the requested
+ size, depth, or refresh rate instead of generating a fatal error
+ (Torrey T. Lyons).
+
+XFree86 4.1.99.5 (7 January 2002)
+ 653. Fix some typos in the DRI README (#A.757, Andreas Mohr).
+ 652. xon.sh path setting from 3.3.6 (#A.756, Marc Herbert).
+ 651. Fix a problem with the Radeon driver that was causing the sync polarity
+ to be ignored (#A.753, Vedran Rodic).
+ 650. Set the max clock correctly for the G550 second head (#5133,
+ Luugi Marsan).
+ 649. Fix a Radeon DRI lockup problem (#5128, Steven Pritchard).
+ 648. Back out some mga_g450pll.c changes that cause problems on at least
+ some G450 configurations (#5122, David Woodhouse).
+ 647. Fix some xterm build warnings on *BSD (David Dawes, Thomas Dickey).
+ 646. Some QNX4 fixes/updates (#5121, 5124, 5130, 5131, Frank Liu).
+ 645. Prefer POSIX O_NONBLOCK to O_NDELAY (when defined) in lib/dps (#5121,
+ Frank Liu).
+ 644. Fix portability problem with XpmI.h (based on #5121, Frank Liu).
+ 643. Only use SA_RESTART in xterm when it's available (#5121, Frank Liu).
+ 642. Work around Watcom compiler bug that shows up when building Mesa's
+ stencil.c (David Dawes, based on #5121, Frank Liu).
+ 641. Handle __inline and __inline__ in compiler.h for non-GNU compilers,
+ which makes it more likely that drivers will build with other compilers
+ (David Dawes, based on #5121, Frank Liu).
+ 640. Build fixes for xedit/lisp. Don't define NEED_SNPRINTF when not needed.
+ Avoid a double recursion into subdirs (#5123, Matthieu Herrb).
+ Added code for systems without getpagesize.
+ 639. Fix the xdm's handling of keys, allowing keypad keys to work (#A.662,
+ Servaas Vandenberghe).
+ 638. Fix hang when quitting XDarwin before starting X server
+ (Torrey T. Lyons).
+ 637. Don't add XDarwin's PseudoramiX extension with only one screen
+ (Greg Parker).
+ 636. Add Spanish localization of XDarwin help file (Pablo Di Noto).
+ 635. Improve XDarwinStartup's error reporting (Torrey T. Lyons).
+
+XFree86 4.1.99.4 (28 December 2001)
+ 634. Update the ati/radeon driver to recognise the All-in-Wonder 8500's
+ ID (#5117, Vladimir Dergachev).
+ 633. Fix bug where a pointer may be checked without being intialized in xman
+ (#5120, Martin Husemann).
+ 632. Add an informational message to the radeon driver when LCD/DFP mode
+ validation fails (#5118, Vladimir Dergachev).
+ 631. Handle the ATI Rage128 "PP" variant like the "PR" variant (#4982,
+ Mike Harris).
+ 630. Fix a LynxOS on PowerPC build problem (#A.746, Stuart Lissaman).
+ 629. Fix the names of the Northern Saami keyboards (#A.742,
+ Petter Reinholdtsen).
+ 628. Add Xinerama info to xdpyinfo (#A.741, Greg Parker).
+ 627. Fix an xdm problem caused by not handling an interrupted read (#A.728,
+ Darren Marshall).
+ 626. Add functions completing text control for Render. Bump XRender library
+ minor version (Keith Packard).
+ 625. Add XKB layout info for a newer Logitech iTouch keyboard (#A.727,
+ Dimitromanolakis Apostolos).
+ 624. Fix a problem that shows up with the summa tablet driver when using
+ a Genius EasyPen (#A.714, Anders Melchiorsen).
+ 623. Fix for VT switch problem with the S3 driver (based on #A.677,
+ Juergen Lesny).
+ 622. Remove some more spurious entries in the KSC 5601 encoding file (#A.678,
+ Jungshik Shin).
+ 621. Fix for APM problem on devfs-based Linux systems with APM in a kernel
+ module (#A.663, Denis Zaitsev).
+ 620. Update the mga Xv double buffering to match the more recent submission
+ (#4976, Didier Gautheron).
+ 619. Fix a bug in the XKB Slovak (sk) layout (#A.621, Juraj Bednar).
+ 618. Fix a small window when a SIGIO may be received without a handler
+ installed (David Dawes, based on #A.620, Michel Lespinasse).
+ 617. ISO 8859-{1,7,15} Compose file updates and fixes (#5114,
+ Vasilis Vasaitis).
+ 616. In XDarwin multi-monitor IOKit mode, read screen location from the
+ kernel (Torrey T. Lyons).
+ 615. Update XDarwin credits file (Torrey T. Lyons).
+ 614. Fix various XDarwin crashes in multi-monitor rootless mode by using
+ a new "light" version of PanoramiX/Xinerama called PseudoramiX
+ (Gregory Parker).
+ 613. Fix some typos in the X.Org INSTALL doc (#5113, Chris Pepper).
+ 612. Fix an bug that prevented the releasing of XvMC memory on exit (#5112,
+ Matthew J. Sottek).
+ 611. Some Xprint build warning fixes (David Dawes).
+ 610. Xprt PCL3 support (#5111, Mark Snitily, from X11R6.6).
+ 609. Xprt PostScript bitmap cache (#5110, Chris Bare, from X11R6.6).
+ 608. Updates for the Romanian (ro) XKB map (#5108, Marius Andreiana).
+ 607. Update s3virge docs (#5107, Kevin Brosius).
+ 606. Disable pixmap24 option for Permedia3/4/R4 as the chip doesn't support
+ this (Alan Hourihane).
+ 605. Fixed a infinite loop in the i2c code.
+ 604. Fixed a Sig11 problem in siliconmotion driver (Egbert Eich).
+ 603. Fixes to silicon motion driver:
+ - gamma correction for 24 bit true color mode.
+ - XAA: clipping rectangle was clipped to visible screen, so offscreen
+ pixmaps could not been drawn at with accelerated drawing functions.
+ - in SMI_ScreenInit frame buffer size calculation for video changed.
+ - smi_video: partly rewritten.
+ - Support for 7111
+ - interlaced video via
+ - XF86Config Option "Interlaced" or
+ - attribute XV_INTERLACED (Corvin Zahn).
+ 602. Add French localization of XDarwin help file (Olivier Verdier).
+
+XFree86 4.1.99.3 (19 December 2001)
+ 601. Change the property Xprint uses to identify pmf printer internal fonts
+ to avoid a clash with DPS (#5106, Chris Bare, from X11R6.6).
+ 600. Fix a C type aliasing bug in xkbcomp (#5104, Jakub Jelinek).
+ 599. Fix a bug in Xprint's PS output code that was over-optimizing out
+ clip change requests (#5102, Chris Bare, from X11R6.6).
+ 598. Improved error handling for Xprint's -XpFile option (#5101, 5105,
+ Chris Bare, from X11R6.6).
+ 597. Add higher resolution options to the Xprint postscript printer support
+ (#5096, Chris Bare, from X11R6.6).
+ 596. BuildLoadableXlibI18n should be keyed off "SharedLibX11" rather than
+ "BuildX11Lib" (#5095, Ernie Coskrey).
+ 595. Fix a luit inconsistency between the default data used when a
+ locale is unknown and the data used by ISO 8859-1 locales (#5092,
+ Juliusz Chroboczek).
+ 594. Add eo_EO locale entries, which is what GNU libc 2.2 uses for the
+ Esperanto locale (#5091, Juliusz Chroboczek).
+ 593. Fix an Xprt page handling problem (#5090, Chris Bare, from X11R6.6).
+ 592. Update the X.Org release number from 6.5.1 to 6.6 in various
+ documents and header files (#5089, 5100, Chris Bare, from X11R6.6).
+ 591. Recognise __SVR4 as an alternative for SVR4 in Xosdefs.h (#5087,
+ Chris Bare, from X11R6.6).
+ 590. Cleanup some header files to make them more C++ friendly (#5086, 5088,
+ Chris Bare, from X11R6.6).
+ 589. Update the driver status document (#5085, Branden Robinson).
+ 588. Fix the SiS drm driver (#5084, Torsten Duwe).
+ 588. Fix Trident driver pitch values when accelerator is in use, applies
+ to Image and Blade series chips (Alan Hourihane).
+ 586. Minor bugfix to SiS driver, restructured VT switching code
+ (Egbert Eich).
+ 585. Attempt to fix flickering in 24bpp on Trident CyberBladeXPAi1
+ (Egbert Eich).
+ 584. Fixed UTF8lib support (Mike Fabian).
+ 583. Re-instate makedepend's recognition of backslash line terminations
+ (Marc La France).
+ 582. Add proper reference counting to the XvMCContext so that destroying
+ the context before destroying associated surfaces is handled correctly
+ (#5083, Matthew J. Sottek).
+ 581. Fix the xtt (X-TrueType) font module so that it will recognise
+ fonts with upper-case suffixes (".TTF" and ".TTC") (#5082,
+ ISHIKAWA Mutsumi).
+ 580. Use uname instead of hostname in rstart and xon scripts for portability,
+ plus some other rstart and xon fixes (#5081, Chris Bare, from X11R6.6).
+ 579. Some newport driver cleanups and fixes (#5080, 5103, Guido Guenther).
+ 578. Fix XagNsingleScreen definition and some related side-effects (#5077,
+ Chris Bare, from X11R6.6).
+ 577. Fix some doc typos, and remove references to the non-existent
+ shadowfb(4) man page (#5076, David Krause).
+ 576. Pitch calculation updates for the r128 driver (#5074, Michel Dänzer).
+ 575. Updates for VMware SVGA programming documentation (#5073,
+ Jeremy (VMware)).
+ 574. Fix cases where makedepend reports the wrong line number and file when
+ an error occurs (#5072, Mark Snitily, from X11R6.6).
+ 573. Fix differences in libXt behaviour when using poll() compared with
+ when using select() (#5071, Chris Bare, from X11R6.6).
+ 572. Some warning cleanups for Tru64 (#5069, Antti Tapaninen).
+ 571. Fix a typo in the mt_us keymap entry (#5067, Nerijus Baliunas).
+ 570. Add some missing UNDEFINE lines to the iso8859-11 and tis620-2
+ encoding files (#5065, 5066, Theppitak Karoonboonyanan).
+ 569. Some Luxi font updates:
+ - update the Type 1 versions to fix a UID-related bug and cover more
+ glyphs
+ - update the TTF fonts.scale file to include ISO 8859-13
+ - update the docs to properly reflect the fonts' glyph coverage
+ (#5064, B&H, Juliusz Chroboczek).
+ 568. Fix "The Open Group" copyright notices to reflect the change in
+ post R6.4 licensing (#5093, Mark Snitily, from X11R6.6).
+ 567. Added debugging helpers (Egbert Eich).
+ 566. Added support for the Trident CyberBladeXPAi1 (Egbert Eich).
+ 565. Fixed Mono8x8Fill problem in S3 Virge and Savage drivers (Egbert Eich).
+
+XFree86 4.1.99.2 (12 December 2001)
+ 564. Fix XDarwin GetImage bug on screens other than 0 in rootless mode
+ (Gregory Parker).
+ 563. Fix acceleration, hw cursor and console restoration in the "nv" driver
+ on PowerPC (Mark Vojkovich).
+ 562. Fix console switching on r128 & radeon drivers using FBDev (#5075,
+ Benjamin Herrenschmidt (radeon), Michel Dänzer (r128) ).
+ 561. Implement double buffering for XVputimage in the mga driver (#A.601,
+ Didier Gautheron).
+ 560. Fix a wheel emulation problem that prevented delivery of button
+ events when the wheel button was the same as one of the emulated
+ button (#A.600, Antonio Larrosa Jiménez).
+ 559. Fix some 'make install.sdk' problems (#A.586, Stanislav Brabec).
+ 558. Fix mga DGA when UseFBDev is enabled (#A.584, Wayne Whitney).
+ 557. Fix dri module build when BuildXinerama is set to NO (David Dawes,
+ based on #A.599, Pontus Lidman).
+ 556. Fix libXext build when BuildLBX is set to NO (based on #A.582,
+ Didier Gautheron).
+ 555. Fix typo in ms_MY locale name (was ms_NY) (Hasbullah Bin Pit).
+ 554. Fix incorrect code in signal handlers in most of the clients,
+ xterm and xdm not done yet (Matthieu Herrb).
+ 553. Add Glint R4 and Gamma2 support to the glint driver (Alan Hourihane).
+ 552. Fix rotated display in the nv driver (Mark Vojkovich).
+ 551. By default, validate all available modes rather than only the largest
+ such mode (Marc La France).
+ 550. Various XDarwin improvements:
+ - Use all 8 bits of PseudoColor in full screen Quartz mode.
+ - Write XDarwin version number to console log.
+ - Move Alt/Option key back to Mod1 by default.
+ (Torrey T. Lyons)
+ 549. Fix offscreen memory manager segfault (Jacques Gangloff).
+ 548. XDarwin Quartz mode cursor improvements:
+ - Safely free QuickDraw cursors.
+ - Fix disappearing cursor in rootless mode with multiple monitors.
+ (Gregory Parker and Torrey T. Lyons)
+ 547. i810 XvMC fixes (#5078, Matthew J. Sottek).
+ 546. Downgrade DDC-related mode rejections to warnings as some monitors
+ advertise their nominal, rather than actual, tolerances (Marc La France).
+ 545. Add Korean localization of XDarwin front end (Kyunghwan Kim).
+ 544. Allow XDarwin to launch from the Finder even if there are spaces, etc.
+ in the path to its application bundle (Torrey T. Lyons).
+ 543. Add XvHsync, XvVsync to adjust skew values for centering of an
+ Xvideo window for the trident driver (Geoffrey Hausheer, Alan Hourihane).
+ 542. Fixed xkb to avoid setting of AccessXTimeout to 0 (Egbert Eich).
+ 541. Added option to sync the logfile after every line written (Egbert Eich).
+ 540. Improved APM handling:
+ - Added disable of Input Handlers.
+ - Added support for undo on failed APM requests.
+ - Set vtSema to false (Egbert Eich).
+ 539. Improved detection of primary device especially for non-PC platforms
+ (Egbert Eich).
+ 538. Silicon Motion driver Fixes:
+ - Removed separate loading of int10 code.
+ - Added reset of graphics engine on EnterVT (Egbert Eich).
+ 537. Set flag ROP_NEEDS_SOURCE for CPUToScreenColorExpand for all
+ S3 Savage chips (Egbert Eich).
+ 536. SiS driver:
+ - Added fix to restore fbdev mode properly on VT switch/exit.
+ - Improved LCD handling on SiS 630.
+ - fixed screen blanking in SiS driver to properly blank LCDs
+ (Egbert Eich).
+ 535. Trident driver:
+ - Fixed screen centering for 640x480 Modes.
+ - Fixed video playback for BladeAi1.
+ - Fixed hotkey internal/external switching for XPm8/16.
+ - Added support for on-the-fly video recentering.
+ - Attempt to fix contrast settings for video (Egbert Eich).
+ 534. Added reset code for PS/2 mice when replug events occurs
+ (required for later Linux 2.4.x kernels) (Egbert Eich).
+ 533. xf86cfg: start AccessX controls even when started from a running server
+ (Egbert Eich).
+ 532. Add support in glint driver for booting secondary cards that have
+ the VGA disable jumper set (so no access to the BIOS) (Jay Estabrook).
+ 531. Add Spanish localization of XDarwin front end (Pablo Di Noto).
+ 530. Set the r128 DRI driver version back to 2.2 so that the major version is
+ the same as for the version in XFree86 4.1.0.
+ 529. Fixes for DGA2.0 support in the radeon driver (#A.585,
+ Shyouzou Sugitani).
+ 528. Fix mkfontdir's scanning of fonts.scale files to detect a bad file
+ resulting from concatenating two fonts.scales files, and to avoid
+ buffer overruns from over-long strings (#A.563, Jonathan Kamens).
+ 527. Avoid i810 VT switching problems on FreeBSD (David Dawes).
+ 526. Fix a possible SIGFPE in the X-TrueType fonts (#A.640, Nam SungHyun).
+ 525. Fix -probe and -configure to not clear the screen on exit on SunOS SPARC.
+ (Marc La France).
+ 524. Fix support for ATI Graphics Pro Turbo 1600 adapters (Marc La France).
+ 523. Newport driver updates, including 24-bit support (#5062, Guido Guenther).
+ 522. Fix pixel info not being returned from the APPGROUP extension (#5061,
+ Chris Bare, from X11R6.6).
+ 521. Remove debug message in the calcomp driver (#5060, Martin Kroeker).
+ 520. Replace "X Windows" with "X Window System" or "X" in various places
+ (#5058, David Krause).
+ 519. Fix the size of some lbx struct members on 64-bit architectures
+ (#5053, Chris Bare, from X11R6.6).
+ 518. Fix the size of some xXagGetAttrReply struct members on 64-bit
+ architectures (#5052, Chris Bare, from X11R6.6).
+ 517. Add a NULL check that was missing in the CID part of the Type1 code
+ (#5050, Mark Snitily, from X11R6.6).
+ 516. XKB AccessX LED beep feature (#5047, Chris Bare, from X11R6.6).
+ 515. Fix WriteToClient flushing bug (#5046, Chris Bare, from X11R6.6).
+ 514. Fix improper freeing of widget translations in libXt when
+ REFCNT_TRANSLATIONS is defined (#5044, Chris Bare, from X11R6.6).
+ 513. Fix XPrint memory leak (#5042, Chris Bare, from X11R6.6).
+ 512. Local Authorization Fix (#5041, Chris Bare, from X11R6.6).
+ 511. Add locale entries for Sami (#5055, Børre Gaup).
+ 510. Fix XProcessInternalConnection man page duplication (#5040, Chris Bare,
+ from X11R6.6).
+ 509. Minor xrx Imakefile fix (#5038, Chris Bare, from X11R6.6).
+ 508. Remove outdated xc/fonts/encodings/large/README (#5033,
+ Juliusz Chroboczek).
+ 507. Enable XVideo support for the SuperSavage (#5031, Tim Roberts).
+ 506. Add some missing locale entries (#5026, Mike Harris).
+ 505. s3virge driver updates, including:
+ - cr3a patch (#4884, Adam J. Richter)
+ - ViRGE MX XVideo patch (#4915, Sven Menke)
+ - An option to disable XVideo
+ - Disable solid filled rects for Trio3D because of trouble reports
+ - Some MX fixes
+ - Fix ViRGE MX XVideo so window overlap works
+ - Enable ViRGE GX2 XVideo
+ - Fix low resolution problems on ViRGE MX (&GX2)
+ (#5024, 5030, 5034, Kevin Brosius).
+ 504. Some new/updated xkb files (#5019, Pablo Saratxaga).
+ 503. Add some ATI PCI IDs (#5018, Mike Harris).
+ 502. Implement a hack for the DEC TGA2 cards which maps an extra page
+ before framebuffer start as the acceleration code is slightly
+ broken (Jay Estabrook).
+ 501. Allow secondary MGA boards to be used on Alpha that have the VGA
+ disable switch set (Jay Estabrook).
+ 500. Fix Radeon jerky cursor movement bug (Jay Estabrook, #5054, Mike Harris).
+ 499. Add new Luxi fonts from Bigelow & Holmes (#5010, Charles Bigelow and
+ Kris Holmes, integrated by Juliusz Chroboczek).
+ 498. Update the ClearlyU fonts to version 1.8 (#5009, Mark Leisher).
+ 497. Add XKB symbols for Saami (#5006, 5059, Børre Gaup).
+ 496. Change the mapping of the JIS reverse solidus to what most Japanese
+ users expect (#5002, Juliusz Chroboczek).
+ 495. Fix hiding/showing of mouse cursor under Windows on Cygwin/XFree86
+ (#5056, Harold Hunt).
+ 494. Fix Permedia3 SDRAM based boards planemask problems (Jay Estabrook).
+ 493. Don't use int10 in glint driver when using fbdev interface (#5039,
+ Michel Dänzer).
+ 492. Fix SlowBCopy for MIPS and PowerPCs (Marc La France).
+ 491. Fix XF86Config overrides for I/O base, framebuffer address and video
+ memory size in cyrix driver (Marc La France).
+ 490. Don't interfere with ATI panel support when using DDC information for
+ monitor tolerance defaults (Marc La France).
+ 489. Add Dutch localization of XDarwin help file (Paul Edens).
+ 488. Add stub functions needed by libGL to libXThrStubs. Link libGL against
+ libXthrStubs on systems that build it. (#4997, Matthieu Herrb).
+ 487. Fix building and loading of I18N modules by Xlib on NetBSD and OpenBSD
+ (#5049, Matthieu Herrb).
+ 486. Fix duplicate loader symbols (#5048, Vladimir Dergachev).
+ 485. Fix problems with clipping in fb when the clip list contains negative
+ coordinates (Gregory Parker).
+ 484. Fix return value of VBEBankSwitch() (Norm Raden).
+ 483. Updates/fixes for the QNX6 (aka Neutrino) port (#4990, Frank Liu).
+ 482. Autodetect when -fno-merge-constants is needed for building modules,
+ and enable its use by default in those cases (Marc La France,
+ David Dawes).
+ 481. Status doc updates (#4991, Branden Robinson).
+ 480. Fix for flickering i815 LCDs (#4968, Poul-Henning Kamp, Harald Koenig).
+ 479. Move much of the I18N code in Xlib into separately loadable
+ modules (#4965, 5043, Ernie Coskrey, from X11R6.6).
+ 478. Modify UXTerm.ad's font5 resource so that xterm can display double
+ width characters using a font distributed with XFree86 (#4962,
+ Tomohiro KUBOTA).
+ 477. Add Dutch localization of XDarwin front end (Paul Edens).
+ 476. Add a quick check to not use as the default mode any internal modes
+ with horizontal timing parameters that aren't CRT-friendly (David Dawes).
+ 475. Add an 832x624 @ 75Hz mode line to the default mode set (#4960,
+ Andrew C. Aitchison).
+ 474. Fix Radeon LCD Panel detection and Power Delay (ATI Technologies).
+ 473. Ignore XDarwin full screen switch key combination when in rootless mode
+ (Torrey T. Lyons).
+ 472. Xterm patches #163, #164 (Thomas Dickey): mostly bug fixes.
+ 471. Fix race condition in XDarwin causing occasional hangs or crashes when
+ quitting from the menu (Torrey T. Lyons).
+ 470. Cygwin/XFree86 updates (#5035, #5036, Harold Hunt).
+ 469. Make sure Cygwin checks ENOBUFS for error test in XlibInt.c, as under
+ Cygwin when the socket is full ENOBUFS is returned (Brian Genisio).
+ 468. Fix SIGFPE in LastLinePel for ATI Radeon, console restoring on dual CRT
+ head on VE, improved panel and ddc line detection (ATI Technologies).
+ 467. Fix bug that caused hardware cursors to disappear on mode switches when
+ silken mouse is disabled (Marc La France).
+ 466. Preliminary changes to keyboard handling for SPARC SunOS
+ (Marc La France).
+ 465. Zero out SPARC SunOS primary framebuffer on exit, like Sun's servers do
+ (Marc La France).
+ 464. More driver name normalisation (Marc La France).
+ 463. Minor speedup for Mach64 acceleration for big-endian architectures
+ (Marc La France).
+ 462. Fix bug that prevented relocation of unassigned PCI I/O bases
+ (Marc La France).
+ 461. Add Swedish localization of the XDarwin help file (Patrik Montgomery).
+ 460. Fix use of gethostbyname and getservbyname to _XGethostbyname and
+ _XGetservbyname for portability (#5017, Mark W. Snitily, from X11R6.6).
+ 459. Fix buffer problems used by xrdb to build command line, noticed on
+ systems with a large amount of visuals (#5016, Alan Coopersmith).
+ 458. Fix bug regarding signal handling in x11perf by inserting an abort
+ test after each run (#5015, Mark W. Snitily, from X11R6.6).
+ 457. Add improved diagnostic messages and error checking to libXfont
+ which is used by bdftopcf command (#5014, Chris Bare, from X11R6.6).
+ 456. Fix advertised surfaces for the i810 Motion Compensation driver and
+ make use of new XVMC_INTRA_UNSIGNED surface flag (#5003, Matthew Sottek).
+ 455. Fix r128 driver to call wrapped screen functions when using the
+ fbdevhw layer (#5004, Michel Dänzer).
+ 454. Add Rage128 Pro PP detection to ati driver (#5025, Alfred Perlstein,
+ Mike Harris).
+ 453. Add CyberBladeXPAi1 recognition to the trident driver (#A.658,
+ Jani Jaakkola).
+ 452. Fix typo in PCI bus scanning that caused a hang when there was more than
+ one PCI bus (#A.652, Uwe Dannowski).
+ 451. Update Japanese localization of XDarwin help file (Toshimitsu Tanaka).
+ 450. Update XDarwin help file (Torrey T. Lyons).
+ 449. Fix XDarwin SHAPE support in rootless mode (Gregory Parker).
+ 448. More corrections to Xaw manpage (#5022, Branden Robinson).
+ 447. Fix XDarwin crash if a NULL mask is passed to Composite in rootless
+ mode (Torrey T. Lyons).
+ 446. Fix XDarwin crash if more than one keyboard interface is returned from
+ NXEventSystemInfo (Gregory Parker).
+ 445. Big5 encoding fix (#4957, Juliusz Chroboczek).
+ 444. Use DDC sync (disabled by default) and DPMS info (#4955,
+ Andrew C Aitchison).
+ 443. Update the i810 XVideo support to double the maximum image width
+ to 1440 (#4933, Philip Pokorny).
+ 442. Fix several memory leaks in x11perf (#4931, Ernie Coskrey, from X11R6.6).
+ 441. Bypass startup VT #1 switching hack for FreeBSD/syscons unless running
+ on a pre-3.1 version of FreeBSD (#4926, Huver).
+ 440. Catch bogus flat panel dimensions in the ati/r128 driver (#4907,
+ Michel Dänzer).
+ 439. Fix Maltese entry in xkbcomp/keymap/xfree86 (#4921, Nerijus Baliunas).
+ 438. Fix a locale.alias typo (#4920, Nerijus Baliunas).
+ 437. Documents Options for the Matrox and Neomagic drivers, and makes
+ HW/SWcursor generic options (#5021, Dr. Andrew C. Aitchison).
+ 436. Corrections and updates to Xaw manpage (#5020, Branden Robinson).
+ 435. Add German localization of XDarwin front end (Andreas Monitzer).
+ 434. Add the DEC-XTRAP extension and sample clients (#4904, 4918,
+ Paul Stewart).
+ 433. Update the us_intl XKB symbols map to include all diacritics used
+ in latin script (#4917, Pablo Saratxaga).
+ 432. Add a Compose file for utf-8 (#4917, 5019, Pablo Saratxaga).
+ 431. Fix radeon and sis GL module Imakefiles (#4916, Bill Nottingham).
+ 430. Bug fixes and updates for Savage driver (#5001, Tim Roberts).
+ 429. Add luit (#4914, Juliusz Chroboczek).
+ 428. Fix a typo in fontenc that prevents building with no dependency on
+ libfont (#4913, Juliusz Chroboczek).
+ 427. Add an encoding file for the KSC Johab encoding (#4912, Jungshik Shin).
+ 426. Remove some spurious entries in the KSC 5601 encoding file (#4910,
+ Jungshik Shin).
+ 425. Add Swedish localization of XDarwin front end (Patrik Montgomery).
+ 424. Fill in mode switch characters in XDarwin keymap (Mario Klebsch and
+ Torrey T. Lyons).
+ 423. Linux/PA-RISC portability fixes (#4892, Grant Grundler, Bdale Garbee,
+ and LaMont Jones).
+ 422. Linux/mips portability patch (#4891, 4919, Guido Guenther).
+ 421. Preliminary support for building on Linux/arm32 (#4890,
+ Branden Robinson).
+ 420. Make it possible to build the X server on Linux/m68k platforms
+ (#4889, Christian T. Steigies).
+ 419. Fixes for xman's manpath config handling (#4886, Branden Robinson and
+ Colin Watson).
+ 418. Fix some man page aliases (#4882, Branden Robinson).
+ 417. Define __GLX_ALIGN64 for glx on Alpha (based on #4888, Branden Robinson).
+ 416. Remove PEX5 from the lists of specs in doc/specs/Imakefile (#4881,
+ Branden Robinson).
+ 415. linux.cf updates (#4874, Branden Robinson).
+ 414. Updates for zh locale files (#4879, Branden Robinson).
+ 413. xf86config man page update (#4877, Branden Robinson).
+ 412. Startx enhancements and cleanups (#4875, Branden Robinson and
+ Henry T. So).
+ 411. Use DirectDraw2 instead of DirectDraw on Cygwin (#5012, Harold Hunt).
+ 410. Add French localization of XDarwin front end (Olivier Verdier).
+ 409. Fix portability problem in the generation of the man page version string
+ (Marc La France).
+ 408. Fix a NativeGDI problem on Cygwin/XFree86 (#5007, #5008, Harold Hunt).
+ 407. Fix for threaded libraries (Marc La France).
+ 406. Finish removal of SuperProbe (Marc La France).
+ 405. A rather large number of warning fixes throughout (Marc La France).
+ 404. Fix bug in HTML install script (Marc La France).
+ 403. Missing ident lines for some XFree86-modified files (Marc La France).
+ 402. Add default half-width doublescanned modes (Marc La France).
+ 401. Mark all driver-registered resources with ResBus (Marc La France).
+ 400. Fix DPMS-related build problem (Marc La France).
+ 399. Log a message just before calling each ChipProbe() during '-probe'
+ processing (Marc La France).
+ 398. Temporarily disable ISA probing on SPARCs and PowerPCs (Marc La France).
+ 397. Add PCI IDs for Sun hardware (Marc La France).
+ 396. Fix memory leak in resource relocation (Marc La France).
+ 395. Do not relocate resources that only conflict with disabled non-video PCI
+ devices or disabled PCI ROMs (Marc La France).
+ 394. Re-organise SBUS code (Marc La France).
+ 393. Add as-yet-unused definitions for PCI resource types other than I/O and
+ memory (Marc La France).
+ 392. Add doc for Solaris, but don't format it yet (Marc La France).
+ 391. Normalise driver names (Marc La France).
+ 390. For SPARCs, disable DGA support in ATI driver
+ (from #4650, David S. Miller).
+ 389. Clean up some debugging messages (Marc La France).
+ 388. Fix newport driver for when a /proc fs isn't mounted (Marc La France).
+ 387. Fix DAC handling bugs in s3 driver (Marc La France).
+ 386. Fix resource registration bug for PCI Tseng's (Marc La France).
+ 385. Add aperture driver for Solaris (not yet used) (Marc La France).
+ 384. Rework scanpci to fix problems that prevented it from completely
+ displaying non-PCI bridges and Simba bridges (Marc La France).
+ 383. Fix build problems in some input drivers (Marc La France).
+ 382. Fix int10 compile problem for SPARCs and PowerPCs (Marc La France).
+ 381. Ensure master aborts on secondary buses complete normally during PCI
+ scans (Marc La France).
+ 380. Some memory mapping and Solaris cleanups (Marc La France).
+ 379. Fix XDarwin crash on server reset and problem in full screen mode when
+ switching from X to Aqua to X too rapidly (Torrey T. Lyons).
+ 378. Add __apploaddir__ definition to imake MANDEFS, to specify location of
+ app-defaults directory, fixes Debian bug report #87611 (Thomas Dickey).
+ 377. Xterm patches #161, #162 (Thomas Dickey): mostly bug fixes.
+ 376. Add new CyberBladeXP Aladdin based chip ID's (#4994, Hubert Feyrer).
+ 375. fix a potential issue where POSIX allows the string returned
+ from getenv to be overwritten (from X11R6.6, Chris Bare).
+ 374. Cygwin/XFree86 cleanups and fixes (#4992, #4993, #4999 Harold Hunt).
+ 373. Fix i830 VT switching problems which hang the ring buffer (#4987,
+ #4989, Abraham vd Merwe).
+ 372. fix a format string problem in lbxproxy, apparently not exploitable
+ (r0gue@vertarmy.org, Matthieu Herrb).
+ 371. Fix disappearing cursor in XDarwin rootless mode by falling back to
+ system cursor for cursors bigger than 16x16 (Torrey T. Lyons).
+ 370. Make XDarwin start more robustly from the Finder (Torrey T. Lyons).
+ 369. Update XDarwin Japanese localization (Toshimitsu Tanaka).
+ 368. Fix calculation of DPI when Xinerama in use (#4986, Andrew C Aitchison).
+ 367. Update XDarwin preferences GUI to match current features
+ (Torrey T. Lyons).
+ 366. Xkb fixes for international keyboards (Matthieu Herrb).
+ 365. Add client side sparc64 support for NetBSD and OpenBSD (Eduardo Horvath,
+ Matthieu Herrb).
+ 364. Allow xkbcomp to be used in a cross-compile environment (Alan Hourihane).
+ 363. Update documention for the SiS driver, the Options file
+ (Ademar de Souza Reis Jr.).
+ 362. Xterm patches #157, #158, #159, #160 (Thomas Dickey): mostly bug fixes.
+ 361. Fix high-res modes in the nv driver. Add interlaced support for
+ chips older than NV11 (Mark Vojkovich).
+ 360. Cross compilation fixes (#4981, Harold Hunt, Alan Hourihane).
+ 359. Fix cursor artifacts when running XDarwin in full screen Quartz mode
+ with 8 bit depth (Torrey T. Lyons).
+ 358. Fix byte ordering issue in XDarwin when loading keymapping files on x86
+ and correctly set ByteOrder for PPC and x86 (Rob Braun).
+ 357. When XDarwin is launched from the Finder, start X clients in an
+ interactive shell if user's shell is Bourne-based (Torrey T. Lyons).
+ 356. Add CaseSensitiveFileSystem definition, which defaults to YES, except
+ on Darwin, Cygwin, and OS/2. Fix another case problem spotted by
+ NAKAHASHI Ichiro (Torrey T. Lyons).
+ 355. Enable Vendor specific FatalError for Cygwin/XFree86 and create
+ the Xserver as a windows executable (#4967, Harold Hunt).
+ 354. Add i830 2D and DRI driver (#A.604, VA Linux Systems, 2D3D).
+ 353. Use the -no-cpp-precomp compiler option on Darwin, rather than the
+ deprecated -traditional-cpp (Christoph Pfisterer).
+ 352. Reverting patch #340, fixing type (Egbert Eich).
+ 351. Fix rotation in fbdev driver (#4958, #4959, Michel Dänzer).
+ 350. Resync with DRI CVS trunk (DRI Project).
+ 349. Move ati driver out of DevelDrivers on PPC platforms (#4952,
+ Michel Dänzer).
+ 348. SECURITY: set default value of authComplain resource in xdm to true.
+ This closes a hole where anyone can connect to the X server if
+ the xdm auth dir doesn't exist (Galen Hancock).
+ 347. SECURITY: don't let a non-root user halt the machine by having X
+ send SIGUSR1 to init (Thomas Moestl).
+ 346. Changed int10 module to stub on Sparc (Egbert Eich).
+ 345. Added hyperpen driver (Roland Jansen et. al.).
+ 344. Fixed alignments of x86emu-structures for AXP (Jay Estabrook).
+ 343. Fixed XLoadQueryFont() and XLoadFont() to support locales
+ (required for Euro support) (Markus Kuhn).
+ 342. Modified XtCvtStringToFont() to match any ISO8859 instead of
+ latin1 as fallback. Required for Euro Support (Markus Kuhn).
+ 341. Added acute to compose key list for iso8859-15 (Markus Kuhn).
+ 340. Modified XV Xinerama support to recognize adaptors if screen 0
+ has no adaptor (Egbert Eich).
+ 339. Modified order of disable devices and LeaveVT() to be symetric
+ to the enter case (Egbert Eich).
+ 338. Modified GetTimeInMillis() to handle non monotonous system clocks
+ (Egbert Eich).
+ 337. Added comment about a Zeos Meridan 850c Notebook to C&T docs (Alan Cox).
+ 336. Added call to vbeFree() to apm driver (Egbert Eich).
+ 335. C&T driver:
+ - fixed sig11 problem for non-69030 chipsets.
+ - fixed DGA to announce acellerated functions only if accelleration
+ is enabled.
+ - added FP_mode flag to C&T driver which allows to override the detected
+ state of the flat panel (Egbert Eich).
+ - fixed driver to act appropriately if the BIOS switches to the
+ external monitor it detects when doing DDC.
+ - Set IOBase correctly for MMIO when detection 65545 PCI.
+ - fixed text screen restauration on 69030 (Egbert Eich).
+ - reinabled correct KGA handling of C&T chips: unblank before the end
+ of scanline.
+ - added support for composite sync.
+ - when FP is active disallow display sizes greater than panel.
+ - added double buffering to video support.
+ - fixed register settings to prevent flickering during video playback.
+ (Egbert Eich).
+ 334. Fixed bug in C&T driver that caused interlaced mode not to work
+ (Claus Hulstrøm).
+ 333. Added full MMIO support for C&T 69030 chips (Gregg H. Burman).
+ 332. Fixed MMIO accel code in Cirrus Alpine driver, got PIO accel code to
+ work (Egbert Eich).
+ 331. Fixed fbdev to obtain 24 bit framebuffer format from the kernel, added
+ more failure messages to fbdev driver (Egbert Eich).
+ 330. Added calls to vbeFree() to rendition, savage, silicon motion,
+ i740 and i810 driver (Egbert Eich).
+ 329. Modified MGA driver for new Sparse allocation sceme (Jay Estabrook).
+ 328. Modified handling of sparse addresses on AXP: The code now no longer
+ maps the entire sparse range. Now the required ranges are mapped
+ relative to a fixed base address (Jay Estabrook).
+ 327. Fixed HW cursor for MGA G100 (Egbert Eich).
+ 326. Fixed MGA drivers to be able to use overlay modes when HAL lib is
+ loaded (Egbert Eich).
+ 325. Disabled accel functions that cause lockups on certain neomagic
+ systems by default. They can be reenabled by setting the option
+ "StrangeLockups" to "no" (Egbert Eich).
+ 324. Did a further fix on ScreenToScreenCopy() for Neomagic 2200
+ (Egbert Eich).
+ 323. Added experimental support for Toshiba Libretto. This can be enabled
+ by the option "DisplayHeight480" (Egbert Eich).
+ 322. Fixed clipping in Savage driver, update to version 1.1.1.19
+ (Tim Roberts).
+ 321. fixed calls to BLTSync() on SiS driver (Egbert Eich).
+ 320. Fixed Mono8x8PatternFill(): Moving SETROPFG behind SETROPBG did the
+ trick (Egbert Eich).
+ 319. Setting 24 bpp pximap flags correctly in SiS driver dependening
+ on chipset (Egbert Eich).
+ 318. Setting depth and bpp of framebuffer correctly for suncg14 and sunleo
+ driver (Thorsten Kukuk).
+ 317. Tseng driver not longer ignores results of TsengDoMemLimit() which
+ tests for certain restrictions on the usable framebuffer size
+ (Egbert Eich).
+ 316. Vesa driver: adding calls to vbeFree() before exiting PreInit().
+ Reinit vbe in ScreenInit() (Egbert Eich).
+ 315. Adding int10 initialization to generic vga driver (Egbert Eich).
+ 314. Modified generic vga driver to use shadow fb for vga16 on AXP.
+ This works around the problem that AXP can address memory only 32bit
+ wide which doesn't work on a latched register planar fb (Egbert Eich).
+ 313. Removing 3.3 code from wacom driver. Makes driver hard to read
+ (Egbert Eich).
+ 312. Removing message output from xf86WcmPlug() which causes -configure
+ to core dump (Egbert Eich).
+ 311. Modified int10 Pci code to be able to use new version of
+ xf86ReadPciBIOS() (Egbert Eich).
+ 310. Modified int10 int1A handler to return valid when an unimplemented int10
+ call is encountered. This allows fallback to system BIOS (Egbert Eich).
+ 309. Modified xf86ReadPciBIOS() to check for valid i386 PC signature.
+ Added functions xf86GetAvailablePciBIOSTypes() and
+ xf86ReadPciBIOSByType() to obtain available PCI BIOS types and
+ retrieve a certain BIOS by type (Egbert Eich).
+ 308. Reversed bogus patch 1050 of version 4.0.2. The graphics engine will
+ *never* be called after receiving an APM suspend and before receiving
+ an APM resume. If the neomagic locks up on resume this has a different
+ reason (Egbert Eich).
+ 307. Change real/effective user ID to 0/0 before calling modprobe in
+ xf86LoadKernelModule() on Linux so user can also load drm modules. Fixed
+ PATH environment variable to /sbin (Stefan Dirsch, Egbert Eich).
+ 306. Removed disable/enable interrupt code on ia64 as interrupts cannot
+ be controled from user level (Egbert Eich).
+ 305. Further attempt to fix split algorithm for MTRR regions (Egbert Eich).
+ 304. Fixed problem in XAACopyPlaneNtoNColorExpand() that caused bogus
+ memory accesses when src was not in fb memory (Egbert Eich).
+ 303. Fixed cfb8_32PaintWindow() to use correct cfb32FillBoxTileOdd function
+ (Egbert Eich).
+ 302. Fix to xdm PAM support (Werner Fink).
+ 301. Fixed cz and cz_querty keyboard layouts, added support for Slovak
+ keyboard (Jan Holesovsky).
+ 300. Fixed core dump in twm if no locales are present (Egbert Eich).
+ 299. Modified xterm app default to use LFD fontnames instead of old type
+ (Michael Schroeder).
+ 298. Add a f.startwm function to twm to start another manager.
+ (Matthieu Herrb).
+ 297. Disable MIT-SHM in Xnest, caused a segfault (Matthieu Herrb).
+ 296. Update wskbd keyboard protocol handling for OpenBSD/macppc
+ (Matthieu Herrb).
+ 295. Fix problems starting XDarwin from the Finder and pasting with
+ multi-button mouse emulation (Torrey T. Lyons).
+ 294. S3 driver updates. Restore console for 964 with Ti3025 and Trio64, and
+ support for Aurora64V+ (#4953, Ani Joshi).
+ 293. Fix USB Keyboard access when no PS/2 controller present
+ (#4948, Pontus Lidman).
+ 292. Add i810 XvMC (Motion Compensation) driver (#4946, #4964, #4966,
+ Matthew Sottek, Intel).
+ 291. When using XKB and LEDs are switched on/off by external application
+ the keyboard module doesn't change phisycal LEDs state immediately
+ (#4951, Ivan Pascal).
+ 290. Clean up Cygwin/XFree86 keyboard files (#4949 Harold Hunt).
+ 289. Add Matrox G550 support (#4947, Luugi Marson, Matrox).
+ 288. Remove SuperProbe.man definition for manual page
+ (#4944, Ishikawa Mutsumi).
+ 287. Ark driver updates (#4943, Ani Joshi).
+ 286. Fix xterm when XIM is disabled - caused a segfault
+ (#4942, Tomohiro Kubota).
+ 285. Add Big Endian support (PowerPC) to radeon driver (#4934, Ani Joshi).
+ 284. Fix support for legacy Windows TrueType fonts in Big5 encoding
+ (#4938, Joe Man).
+ 283. Support Radeon 7500, 8500 and Rage128ProII (#4941, ATI Technologies).
+ 282. Support Trident TGUI96xx and greater with Xv (Alan Hourihane).
+ 281. XDarwin fixes for Xinerama in Quartz modes:
+ - Turn Xinerama on by default.
+ - Fix warping the cursor.
+ Also load keymapping from file in IOKit mode for Mac OS X 10.1
+ compatibility. (Torrey T. Lyons and Gregory Parker)
+ 280. Fix Trident 96xx high clock setting, acceleration fixes (Alan Hourihane).
+ 279. Fix XDarwin rootless crashing bug when window resizing with the Mac menu
+ bar not on X11 main screen (Gregory Parker).
+ 278. Define X_LOCALE on Darwin as Darwin's setlocale() does not work
+ properly (Torrey T. Lyons).
+ 277. Fix problems with XDarwin multi-monitor support for some screen
+ arrangements (Gregory Parker).
+ 276. Preliminary big endian (PowerPC) support for the "nv" driver
+ (Ani Joshi, Mark Vojkovich).
+ 275. Enable ThreadedX for Cygwin/XFree86 using auto import features of
+ newer binutils packages (Alan Hourihane).
+ 274. Exclude the Mac OS X menu bar from the X11 screen while running XDarwin
+ in rootless mode (Yannick Bessette and Torrey T. Lyons).
+ 273. Add support for builtin MTRR and AGP support in NetBSD 1.5Y.
+ (Matthias Drochner and Frank van der Linden).
+ 272. Rework XDarwin front end to start X clients in the user's normal
+ environment and fix issues while quitting (Torrey T. Lyons).
+ 271. SECURITY: fix glyph clipping for large origin (Keith Packard).
+ Reported to be remotly exploitable through konqueror or netscape
+ by Georgi Guninski.
+ 270. Fix setting of memPhysBase in a few drivers (#4937, Gerd Knorr).
+ 269. Finish merging freetype-2-0-4 into trunk by resolving conflicts. This
+ also fixes a syntax error on Darwin caused by an out of date version of
+ ttgload.c (Torrey T. Lyons).
+ 268. Update VMware driver (#4935, Jeremy (VMware)).
+ 267. Native GDI infrastructure sync with Cygwin/XFree86 (#4936, Harold Hunt).
+ 266. Update Darwin build configuration files including:
+ - Report full OS version and more capabilities.
+ - Fix X server build problem due to libraries in ProjectRoot being
+ listed as dependencies for some targets.
+ - Allow dynamic shared libraries to take advantage of two-level
+ namespace on Darwin 1.4.
+ (Torrey T. Lyons)
+ 265. Disable clipboard viewer, external program xwinclip handles this (fow now)
+ (#4932, Harold Hunt).
+ 264. Add ability to let Aqua and X use different display modes while running
+ XDarwin full screen (Torrey T. Lyons).
+ 263. Fix build dependency problem in xedit/lisp/lisp.rules
+ (#4930, Harald Koenig).
+ 262. Fix a fontenc-related problem that can cause the TrueType backend
+ to crash (#4909, Juliusz Chroboczek).
+ 261. Fix DPMS support for I128 driver (Robin Cutshaw).
+ 260. Add OSVErrorF for Cygwin/XFree86 (#4923, Harold Hunt).
+ 259. Support Trident Cyber9320, TGUI9440, TVGA8900C, TVGA9000 ISA chips
+ (Alan Hourihane).
+ 258. Fix banked 24bpp displayWidth calculation (Marc La France).
+ 257. Fix accel initialisation bugs in ATI driver (Marc La France).
+ 256. Add entry to initialise framebuffer manager by area (allowing for a
+ possible extra partial scanline) and make it print all largest areas
+ (Marc La France).
+ 255. Make xdm use BSD authentification on OpenBSD and use setproctitle()
+ instead of home grown version where available (enabled on
+ OpenBSD and NetBSD only) (Matthieu Herrb).
+ 254. Make -configure generate the DisplaySize from the acquired DDC
+ information (#4897, Andrew C Aitchison).
+
+XFree86 4.1.99.1 (20 August 2001)
+ 253. Fix bad xalloc() in the new fontenc code (#4899, ISHIKAWA Mutsumi).
+ 252. Fix some Xrandr build issues on Cygwin/XFree86 (#4898, Suhaib Siddiqi).
+ 251. Fix some Cygwin/XFree86 dependencies in cygwin.rules (#4894, Harold Hunt).
+ 250. Add ATI Xpert2000 (Rage 128 SM) (#4896, Mike Harris).
+ 249. Fix '-configure' crash introduced recently (#4895, Andrew C Aitchison).
+ 248. Re-write Xvideo support for Permedia3 (Alan Hourihane).
+ 247. Add Texas Instruments Permedia to Delta attached chips (Alan Hourihane).
+ 246. Add Permedia4 support (different clock synth) (Jay Estabrook).
+ 245. Resync with DRI CVS trunk (VA Linux Systems).
+ 244. Add XKB descriptions for the extra keys on a Dell Internet keyboard
+ (#A.533, Ben Liblit).
+ 243. Add a Maltese XKB map and locale support (#A.527, Ramon Casha).
+ 242. Add a new "bksl" variant of the Czech XKB map (#A.515, Stanislav Brabec).
+ 241. Fix the initialization sequence for ExplorerPS/2 (#A.510,
+ Arndt Schoenewald).
+ 240. When xdm is built with PAM support, don't call getpwnam() before
+ calling the various PAM functions associated with authenticating a user
+ (A.504, Ben Harris).
+ 239. Fix ccmakedep to handle source file extensions of more than one
+ character (#A.507, Andy Wiggin).
+ 238. Fix a VT switching crash in the cirrus driver when acceleration is
+ disabled (#A.489, Kirill V. Semenkov, #A.518, B. D. Elliott).
+ 237. Add support for the "PR" variant of the Rage 128 Pro (#A.487,
+ Alfred Perlstein).
+ 236. Make the config file created with 'XFree86 -configure' load the
+ speedo and/or type1 modules if relevant font directory is in
+ the font path (#A.484, Dmitry Yu. Bolkhovityanov).
+ 235. Fix a bug in the nv driver's detection of the crystal frequency (A.481,
+ Leo L. Schwab).
+ 234. Make xfontsel use the same order in its menus as the sort order used
+ by the X server and xfs (#A.480, Dmitry Yu. Bolkhovityanov).
+ 233. Add an input driver for DMC FIT10 touch-panel (#A.477, Mayk Langer).
+ 232. Fix xf86PostMotionEvent() to handle first_valuator values other than
+ zero (#A.468, Joe Krahn).
+ 231. Change the Swedish xkb map to map AltGr+Space to space (#A.467,
+ David Härdeman).
+ 230. Fix the return value information in the Xv library man pages (#A.458,
+ Tommi Vainikainen).
+ 229. Fix the DGA client library so that it can map the video memory on
+ Solaris 8 x86 (#A.454, Juergen Keil).
+ 228. Change {Max,Min}{X,Y}Position options in the elographics and mutouch
+ drivers to {Max,Min}{X,Y} so that it's consistent with the other
+ drivers.
+ 227. Some Bulgarian and Serbian locale updates (#A.444, Anton Zinoviev).
+ 226. Add a usage message to glxinfo (#A.430, Mike Coleman).
+ 225. Set the Alt/Windows key mappings for 104-key keyboards to be
+ compatible with 101-key keyboards by default, and add some new
+ XKB options to set them differently.
+ 224. Add some new XKB options to select third level shift and group
+ switchers/togglers (#A.425, Anton Zinoviev).
+ 223. Fix a bug in the Serbian XKB map (#A.424, Anton Zinoviev).
+ 222. Export from the loader the DIX symbols necessary for a modular version
+ of the DEC-XTRAP extension (#4797, Paul Stewart).
+ 221. Add a workaround for FreeBSD to make programs (like mkfontdir) that
+ are run as part of the build use the shared libraries from the build
+ rather than those that may be installed on the system (David Dawes).
+ 220. Use MAXSOCKS for connection limit in Cygwin/XFree86 (Alan Hourihane).
+ 219. Add Render's layer support to Cygwin/XFree86 (#4872, Harold Hunt).
+ 218. Support for OpenBSD/powerpc (Matthieu Herrb).
+ 217. Experimental change to default behaviour of ATI panel support to override
+ the horizontal and vertical porches of all modes to that found in the
+ mode on entry (Marc La France).
+ 216. Fix detection of a panel's mode on entry in the ATI driver
+ (Marc La France).
+ 215. Fix for Option "CRTScreen" in ATI driver (Marc La France).
+ 214. Patch for the Thai glyphs in Mark Leisher's ClearlyU font (#4846,
+ Theppitak Karoonboonyanan).
+ 213. Add a font encoding file for tis620-2 (#4845, Theppitak Karoonboonyanan).
+ 212. Add a font encoding file for ISO8859-16 (#4844, Markus Kuhn).
+ 211. Make the input method framework in Xlib work better in an UTF-8
+ locale (#4843, Yao Zhang and Bruno Haible).
+ 210. Default *sampleText*international to false in xfontsel's app-defaults
+ file, since it breaks if the user has '*international: true' (#4842,
+ Juliusz Chroboczek).
+ 209. A new version of the fontenc layer. A major difference is that it
+ reads from a "system" encodings directory
+ <ProjectRoot>/lib/fonts/encodings/encodings.dir, which is searched
+ after any encodings.dir file in the font's directory. The font
+ ABI version is bumped to 0.3 and the Xfont shared library's version
+ is bumped to 1.4 (#4839, Juliusz Chroboczek).
+ 208. Add support to xload for displaying the load of remote hosts by using
+ information in rwhod(1)'s database (#4833, Anders Eriksson).
+ 207. Rename the XVisibilityNotifyEvent man page to XVisibilityEvent,
+ which matches the naming convention for the other X Event man pages
+ (#4830, Ernie Coskrey, from X11R6.6).
+ 206. Update the registry to match X.Org's X11R6.6 version (#4829,
+ Ernie Coskrey, from X11R6.6).
+ 205. Fix for the SlowKeys feature of the AccessX portion of XKB not working
+ when the delay is longer than the amount of time between the delivery
+ of key press events to the extension (#4828, Ernie Coskrey,
+ from X11R6.6).
+ 204. Add a locale alias for "th_TH.TIS-620" (#4827,
+ Theppitak Karoonboonyanan).
+ 203. Some linux.cf updates (#4825, Branden Robinson).
+ 202. Make the vbe module build like the other modules.
+ 201. -
+ 200. Add a command line options (-show) to xvidtune to print out the current
+ video mode (#4809, Markus Kuhn).
+ 199. A new driver for the "Acecad Flair" tablet (not enabled by default yet)
+ (#4800, Edouard TISSERANT).
+ 198. Fix some typos in the iso8859-2 Compose file (#4799, Kamil Toman).
+ 197. Add some XKB options to allow the CapsLock behaviour to be easily
+ selected (#4794, Ivan Pascal).
+ 196. Don't reference the log file in the FatalError message if it hasn't
+ been opened yet (#4793, Branden Robinson).
+ 195. Add Calcomp input driver (#A.554 Martin Kroeker).
+ 194. Add preliminary 8 bit PseudoColor support to XDarwin full screen Quartz
+ mode and fix IOKit mode PseudoColor that was broken by the multi-monitor
+ patch (Torrey T. Lyons).
+ 193. Load XDarwin keymapping from file by default and give more useful error
+ message if getting keymapping from kernel fails. Change keymapping
+ translation so delete key is XK_BackSpace by default (Torrey T. Lyons).
+ 192. Create the two sets of locale.alias and locale.dir entries (those with
+ and those without the ':' separator) from a single set of entries in
+ the source files (David Dawes).
+ 191. Add an MS mouse driver for KDrive (#4754, Juliusz Chroboczek).
+ 190. Improve "true Big5" and "Emacs Big5" support (#4792, Yong Li, #4798,
+ Tomohiro KUBOTA).
+ 189. Fix a non-standard character set bug in Xlib (#4792, Ivan Pascal).
+ 188. Fix for the savage driver on 64-bit platforms (#4788, Jay Estabrook).
+ 187. Xv fix for the r128 driver on big-endian architectures (#4781,
+ Michel Dänzer).
+ 186. Fix an Xlib bug that affects conversion from CTEXT to multibyte /
+ wide character (#4780, Tomohiro KUBOTA, #4783, Bruno Haible).
+ 185. Release notes (4.1.0) and Status doc fixes (#4778, 4779,
+ Branden Robinson).
+ 184. 64-bit fix for lib/X11/ImUtil.c (#4773, Mike Harris).
+ 183. Fix dashed lines for the r128 driver on big-endian architectures
+ (#4769, Michel Dänzer).
+ 182. Fix Xlib's parsing of CTEXT with multi-byte characters in GR (#4761,
+ Juliusz Chroboczek).
+ 181. Fixes for the Romanian (ro) XKB map (#4746, Marius Andreiana).
+ 180. XDarwin bug fixes:
+ - Stop FatalError re-entry in "no Quartz support" messages.
+ - Synchronize XDarwin serverVisible state with application on rootless
+ startup.
+ (Torrey T. Lyons)
+ 179. Fix an XDarwin bug that broke XWarpPointer in Quartz modes (Gregory
+ Parker).
+ 178. Fix some more mi build warnings (David Dawes).
+ 177. Fix some mi build warnings (#4716-4719,4721-4724, Adam Sulmicki).
+ 176. Port for Linux/SuperH (Jornada680/690 and SEGA Dreamcast) (#4680, 4681,
+ ISHIKAWA Mutsumi).
+ 175. Support for mouse wheel emulation (#A.506, Henry T. So).
+ 174. Add support to Cygwin/XFree86 to use CTRL+ALT+BKSPACE as the shutdown
+ signal and fix up command line options to accomodate.
+ (#4838, Alexander Gottwald).
+ 173. In XDarwin, add ability to change modifiers to use when faking multiple
+ mouse buttons (Gregory Parker).
+ 172. Do not build Cygwin/XFree86 with -ansi as Cygwin's library (newlib) lacks
+ some prototype definitions that cause runtime failures (hypot being one
+ of them) (Alan Hourihane).
+ 171. Add extra library flags (commented out for now) for building
+ Cygwin/XFree86's server (#4834, Harold Hunt).
+ 170. Fix a bug in the v4l module which caused multiple TV cards not to work
+ (#4835, Gerd Knorr).
+ 169. Add multi-monitor support to XDarwin for all display modes using
+ Xinerama (Gregory Parker and Torrey T. Lyons).
+ 168. Fix 16bpp colour maps on Mach64's (Marc La France).
+ 167. Fix Mach64 DPMS bug (Marc La France).
+ 166. Fix bug that prevented hardware cursors on Mach64 CT's (Marc La France).
+ 165. Document what a ChipAdjustFrame() function should to to prevent moving
+ of hardware cursors during mode switches (Marc La France).
+ 164. -Wimplicit warning cleanup [`make World` >required<] (Marc La France).
+ 163. Ensure installed headers can find the headers they, in turn, #include
+ (Marc La France).
+ 162. Make imake pass its -W* flags to cpp (Marc La France).
+ 161. More accomodations for newer GCC's (Mike A. Harris).
+ 160. Remove a CYGWIN define from Xserver/include/windowstr.h
+ (#4832, Harold Hunt).
+ 159. Fix a casting problem which causes bdftopcf to write corrupted
+ fonts on buffer boundaries (#A.522, Jakub Bogusz).
+ 158. Cygwin/XFree86 updates (#4824, #4826 Harold Hunt).
+ 157. Fix horizontal stripes problem in Permedia3 driver (Alan Hourihane).
+ 156. Remove most X_NOT_STDC_ENV code, and assume that __STDC__ is defined
+ (David Dawes).
+ 155. Remove (stale) support for Amoeba and Minix (David Dawes).
+ 154. Update Cygwin/XFree86 cross-compilation and update to latest
+ source base (#4801, #4802, Harold Hunt).
+ 153. Fix 'make install' for Freetype. (#4812, Carlos A M dos Santos).
+ 152. Turn on dll style modules for Linux/MIPS. (#4807, Guido Guenther).
+ 151. Add support for ATI's Radeon VE, Mobility M6, All-In-Wonder Radeon
+ and Rage128 Pro Ultra, Digital Flat Panel support. Use DDC2 interface.
+ (#4817, Mike Smith, ATI Technologies).
+ 150. Add IBM S/390 support for building the tree (#4815, Mike A. Harris)
+ 149. Fixes incorrect spelling of "XChangeWindowAttributes" found in
+ XCreateColormap(3X11) and XInstallColormap(3X11)
+ (#4813 Carlos A M dos Santos).
+ 148. Fix a serious memory leak in XAA (Mark Vojkovich).
+ 147. Add a DriverPrivate field to I2C devices (Marc La France).
+ 146. In the ATI driver, initialise the fb manager whether or not XAA is also
+ used (Marc La France).
+ 145. Fix typos in radeon and wacom drivers.
+ 144. Don't disable the secondary CRTC on ATI Rage XL adapters (it doesn't
+ exist) (Marc La France).
+ 143. Speed up ix86 block moves in ATI driver (Marc La France).
+ 142. Temporarily disable hardware cursor support for ATI GX & CX adapters
+ (Marc La France).
+ 141. Make composite sync the default in the ATI driver (David S. Miller).
+ 140. Rework stretching of small DFP modes in ATI driver (Marc La France).
+ 139. Add an interesting PCI ID (Marc La France).
+ 138. Allow ChipValidMode() functions to pre-calculate a mode's horizontal
+ sync and vertical refresh rates (Marc La France).
+ 137. Another fix for mode switch and cursor interactions (Marc La France).
+ 136. Temporary fix for endianness problems in ATI driver (Marc La France).
+ 135. Add XGetIMValues() prototype to Xlib.h (Marc La France).
+ 134. Use a more reasonable numbering for recent binutils versions on Linux
+ (Marc La France).
+ 133. Fix dependencies for building drivers in a static server
+ (Marc La France).
+ 132. Update XDarwin Japanese localization to include rootless UI changes
+ (Toshimitsu Tanaka).
+ 131. Fix potential XDarwin bug in translating Darwin keymappings to X11
+ keymaps with unrecognized modifier keys (Gregory Parker).
+ 130. Make XDarwin ignore Caps Lock when checking for VT switch, except when
+ the user's switch key preference includes Caps Lock (Gregory Parker).
+ 129. Update XDarwin Cocoa UI and preferences for rootless mode. Add more
+ explicit error message for users trying to run in Quartz modes without
+ Quartz support. Remove unneeded info.nib files (Torrey T. Lyons).
+ 128. Added XDarwin menu bar hiding/showing in rootless mode (Gregory Parker).
+ 127. Fix DDC from reporting misleading information.
+ (#4806 Andrew C Aitchison)
+ 126. Patch to make VBE DDC honour the NoDDC option.
+ Before this, NoDDC disabled only 2 of the 3 ways the server might
+ ask the monitor for DDC infomation.
+ (#4805 Andrew C Aitchison)
+ 125. Stops xf86cfg complaining about non-video chips from Intel.
+ Adds a few PCI card ids for Intel and one for Matrox.
+ (#4804 Andrew C Aitchison)
+ 124. Add support for NVIDIA nForce integrated graphics (Mark Vojkovich).
+ 123. Fix a possible fatal crash in Xv when Xinerama is used (Mark Vojkovich).
+ 122. Corrects typos in output of xf86cfg when checking modules and
+ documents ddc module options (Andrew C Aitchison).
+ 121. On Mac OS X, allow users to disable mouse acceleration changes by
+ XDarwin (Torrey T. Lyons).
+ 120. By default, don't build the MagicTouch input driver until a common layer
+ interface is coded for it (Marc La France).
+ 119. Fix Offscreen Image support for Xv/v4l in tdfx driver (Alan Hourihane).
+ 118. Add MagicTouch driver (A.482, Mauro Ziliani)
+ 117. Fix side effect in XFree86 of the recent changes to libxf86config
+ (A.486, Knuts Andy).
+ 116. Define Xutf8LookupString in X11-def.cpp for Cygwin/XFree86
+ (#4790, Suhaib Siddiqi).
+ 115. Turn on RandR build for Cygwin/XFree86 (#4789, Harold Hunt).
+ 114. Import of Gregory Parker's rootless code for Mac OS X. The code has
+ been cleaned up, reorganized, and modified to use Cocoa and fb
+ (Gregory Parker and Torrey T. Lyons).
+ 113. Freshen SCO port (#4709, J. Kean Johnston).
+ 112. Fix int10 build for GCC 3.0 (Marc La France).
+ 111. An attempt at fixing the i740 driver to not reference options before they
+ are collected (Marc La France).
+ 110. Fix for RandR build (Bill Crawford).
+ 109. Fix 3Dfx Voodoo Banshee boards with timing issues (Alan Hourihane).
+ 108. Allow Cygwin/XFree86 to be cross compiled (#4784-#4786 Harold Hunt).
+ 107. Fix fatal bug in XAA's N-to-N CopyPlane acceleration (Elliot Lee).
+ 106. Add RandR support to the Kdrive PCMCIA driver (Alan Hourihane).
+ 105. Fix SharedLibGL to SharedLibGlx in cygwin.rules and some Cygwin/XFree86
+ fixes including enabling backing store. (#4770, #4771 Harold Hunt).
+ 104. xf86UnMapVidMem shows the wrong number of arguments in
+ os-support/README.OS-lib (#4357, Guido Guenther).
+ 103. Some driver loader symbol req/ref registration cleanups (David Dawes).
+ 102. Cygwin/XFree86 fixes.
+ Release pressed modifier keys when server looses focus.
+ Remove declaration in lib/X11/lcGetConv.c (no longer needed).
+ Remove unnecessary #if(n)def __CYGWIN__ in lib/X11/lcGetConv.c, one in
+ lib/dps/csconndi.c and one in lib/font/Type1/regions.h.
+ Add a new SharedDepLibraryTarget rule (#4763-#4768, Harold Hunt).
+ 101. Fix bogus handling of BUS_CNTL Mach64 register (Marc La France).
+ 100. Fix a typo in xc/programs/bitmap/Bitmap.h (#4757, Suhaib Siddiqi).
+ 99. Add Cygwin/XFree86 manpage and minor tweaks (#4756, Harold Hunt).
+ 98. Ensure PCI master aborts are allowed to complete normally on non-root
+ buses (Marc La France).
+ 97. Allow ChipScreenInit()'s to load modules during the first server
+ generation (Marc La France).
+ 96. Update XvMC header files to match the spec (Matthew Sottek).
+ 95. Darwin build configuration changes:
+ - Turn on building Xv and GLX extensions.
+ - Make GLX and GLU build successfully.
+ - Use Darwin's libz instead of building one for XFree86.
+ - Use XFree86's standard compiler optimization flags per CPU type.
+ (Torrey T. Lyons).
+ 94. Fix Xserver/Imakefile typo which broke XDarwin build (Torrey T. Lyons).
+ 93. Fix Darwin bindist files so that dynamic shared libraries are put in
+ Xbin.tgz instead of Xprog.tgz (Torrey T. Lyons).
+ 92. Fix problem in Ib/Xaw/AsciiSrc.c:nitStringOrFile() when descriptor 0
+ is closed, as a zero return value from open(2) is taken as an error
+ (splite at purdue.edu).
+ 91. Fix glide driver that causes -configure to fail for all drivers
+ (Alan Hourihane).
+ 90. Don't define SVR4 on Cygwin/XFree86 (#4751, Suhaib Siddiqi,
+ Alan Hourihane).
+ 89. Don't override system commands specified in host.def on Cygwin/XFree86
+ (#4753, Alexander Gottwald).
+ 88. Fix cursor problem in server respawn's on Cygwin/XFree86
+ (#4750, Harold Hunt).
+ 87. Fix typo definition of CplusplusCmd in cygwin.cf
+ (#4752, Alexander Gottwald).
+ 86. Fix makedepend for use on Cygwin/XFree86.
+ Use makedepend on Cygwin/XFree86.
+ Fix SharedDepLibraryTarget so that build dependencies are correct,
+ this fixes libGLU's build problem (Alan Hourihane).
+ 85. Don't define MKSTEMP on Cygwin/XFree86 (#4725, Harold Hunt).
+ 84. Fix memory count function for I128 (Mark Thompson).
+ 83. Use TermcapLibrary as -lncurses instead of -ltermcap, fixes problem
+ building xterm/resize on Cygwin/XFree86 (#4749, Harold Hunt).
+ 82. Fix X server segfault in the GLX code (Brian Paul).
+ 81. PseudoColor fixes for Cygwin/XFree86 (#4745, Harold Hunt).
+ 80. Fix broken TGA driver (Alan Hourihane).
+ 79. Fix FIFO reset trouble in tdfx driver by lowering the FIFO size due to
+ suspect code in Glide3. (Alan Hourihane).
+ 78. Fix Xvideo in tdfx driver when using YUY2 or UYVY data (Alan Hourihane).
+ 77. Add two missing symbols to loader reference for the glint driver
+ (#4740, Mike Harris).
+ 76. Make Cygwin/XFree86 work at 8bpp, and re-arrange some command line
+ flags. (#4743, Harold Hunt).
+ 75. Fix some build issues on Cygwin/XFree86 (#4736, #4737, Suhaib Siddiqi).
+ 74. Some Cygwin/XFree86 cleanups (#4735, Harold Hunt).
+ 73. Fix XAA's incorrect acceleration of X-Render's repeated sources and
+ masks (Mark Vojkovich).
+ 72. Disable PCI resource conflict checking for Linux/Alpha (Jay Estabrook).
+ 71. Fix Linux xf86GetPciSizeFromOS() parsing when the kernel is 64 bit
+ and any base or size is larger than 32 bits in magnitude (#4732,
+ David S. Miller).
+ 70. Xinstall.sh updates and bug fixes (David Dawes).
+ 69. Make XDarwin ddx pass up proper right and middle mouse button numbers
+ and fix mouse button 5 (Christoph Pfisterer and Torrey T. Lyons).
+ 68. Restore backwards compatibility from 4.0.[2,3] to 4.1.0 for
+ the i810, r128 and radeon DRI drivers (Gareth Hughes).
+ 67. Fix a problem when using patterns of horizontal lines with the mga
+ video overlay (#A.442, Ewald Snel).
+ 66. Remove duplicate XineramaLibrary section in X11.tmpl (#4731,
+ Mike Harris).
+ 65. Enable building DRI for Linux/ppc, and fix a drm-related bug
+ for Linux/ppc (#4728, 4730, Michel Dänzer).
+ 64. Document Options for the r128 and fbdev drivers (#4727, 4729,
+ Michel Dänzer).
+ 63. Add a BuildBindist switch which causes a file containing the XFree86
+ version number to be installed in ProjectRoot, include this in
+ the Xbin bindist tarballs, and turn on this switch in the bindist
+ host.def files. The purpose is to allow the installer script to
+ easily identify which version the bindist tarballs are (David Dawes).
+ 62. Resync bindist and Xinstall.sh with changes made for 4.0.3 (David Dawes).
+ 61. Fix the Shape extension's XShapeCombineMask to handle cases where
+ src_mask is None according to the spec. This reportedly fixes an
+ X server crash (#4715, Huver).
+ 60. Exclude the DRI extension when NO_HW_ONLY_EXTS is defined (based on
+ #4714, Frederic Lepied).
+ 59. Fixup Cygwin/XFree86 after recent Xrandr changes (#4726, Harold Hunt).
+ 58. Fix ATI Radeon driver on Alpha. Seems as though the BIOS doesn't
+ like Re-POSTing and memory setup gets confused. (Jay Estabrook, Jeff
+ Weidemeier)
+ 57. Build fixes for Cygwin/XFree86 (#4710,#4711,#4713 Harold Hunt).
+ 56. Fix problem with Xinstall.sh on Darwin 1.3.x (#A.431, Stefan Pantos).
+ 55. Update Xinstall.sh and Darwin bindist directories to optionally
+ install Quartz support and to add an x86 distribution (Torrey T. Lyons).
+ 54. Install xterm.termcap and xterm.terminfo when installing xterm
+ (Torrey T. Lyons).
+ 53. Add missing return value for miSetPixmapDepths() (#4708,
+ ISHIKAWA Mutsumi).
+ 52. Fill in the v4l man page template with some useful information (#4707,
+ Gerd Knorr).
+ 51. Fix FFB OpenGL SwapBuffers (#4705, David S. Miller).
+ 50. Fix some mi build warnings (#4695-4701,4704, Adam Sulmicki).
+ 49. Work around a problem building the rstart specs doc with a symlinked
+ build tree (David Dawes).
+ 48. Fix Glint 300SX+Delta support. Add faster 500TX text acceleration
+ based on other code (Alan Hourihane).
+ 47. Remove SPARC-specific byte-swapping code that would not work on older
+ SPARC CPUs (part of #4653, David S. Miller).
+ 46. NULLify mapVidMem() and remove DEV_MEM define for Linux/SPARC
+ (#4651, David S. Miller).
+ 45. Fixing MTRR split code (hopefully) (Egbert Eich).
+ 44. Fixing coredump when doing vbeFree() twice: S3 Virge and C&T
+ (Egbert Eich).
+ 43. Fixing HWCursor for mga driver in fbdev mode (Egbert Eich).
+ 42. Make the entire source tree (except GLX) compile under SunOS/SPARC 5.7.
+ Functions that have yet to be ported are FatalError()'s. This is
+ temporarily controlled through a BuildXFree86onSparcSunOS #define in
+ host.def (Marc La France).
+ 41. Merge support for all Solaris/ix86 versions together (Marc La France).
+ 40. Replace Xserver/Imakefile's DDXDIRn scheme with a more general scheme
+ (Marc La France).
+ 39. For GCC on SVR4 variants, use -fPIC rather than -fpic to generate shared
+ objects (Marc La France).
+ 38. Fix xmh's use of XtNewString() with getenv (#4694, Tim Waugh).
+ 37. Xdm/PAM fixes: leave it to PAM to observe whether or not an account
+ is locked, and reinitialize credentials after calling initgroups(),
+ because sometimes the credentials pam_setcred() gives are in the
+ form of group membership (#4693, Mike Harris).
+ 36. Add an encodings file for standard box drawing characters for
+ VT100-compatible terminals (#4691, Juliusz Chroboczek).
+ 35. Fix warnings when building mieq.c (#4689, Adam Sulmicki).
+ 34. Fix some bugs in the cz and sk entried in XKB's keymap/xfree86 file
+ (#4692, Ivan Pascal).
+ 33. Add 'hr' entries to XKB's keymap/xfree86 and rules/xfree86.lst files
+ (#4687, Nerijus Baliunas).
+ 32. Include <X11/Xutil.h> in shape.h to get Region typedef (#4686,
+ Adam Sulmicki).
+ 31. Acceleration bug fixes for GLINT Permedia1 (Alan Hourihane).
+ 30. Ensure glint driver chips don't exceed the specified virtual sizes.
+ (Alan Hourihane).
+ 29. ATI DGA changes (Patrick Chase and Marc La France):
+ - Add accelerated DGA primitives for Mach64 variants;
+ - Add accelerated DGA transparent blits for Rage128 and Radeon;
+ - Fix setting of DGA_CONCURRENT_ACCESS;
+ - Take XaaNo* options into consideration.
+ 28. Simplify DGAShutdown() (Marc La France).
+ 27. Fix colourmap bug when switching out of a DGA mode (Marc La France).
+ 26. Make it possible, but not required, for a driver to initialise DGA after
+ XAA so that it may factor in any XaaNo* options in determining what DGA
+ drawing primitives to support (Marc La France).
+ 25. Prevent mode switches while DGA modes are set (Marc La France).
+ 24. Remove all VGA'isms from the glint driver, it doesn't need them
+ (Alan Hourihane).
+ 23. Support the Delta in the glint driver, needed for boards that have
+ the Delta connected to the rasterizer, as it acts as an arbiter for
+ the bus. Resolves acceleration troubles. (Alan Hourihane).
+ 22. Add an lv entry to XKB's keymap/xfree86 file (#4685, Nerijus Baliunas).
+ 21. Fix some typos in XKB's xfree86.lst file (#4684, Nerijus Baliunas).
+ 20. Add DDXOSVERRORF ifdefs to the XFree86 ddx code that make use of the
+ OsVendorVErrorFProc feature (#4678, Michel Dänzer).
+ 19. Convert the r128 driver's "UseBIOSDisplay" option into a more general
+ "Display" option (#4678, Michel Dänzer).
+ 18. Treat GL_POINT like GL_POINTS and GL_LINE like GL_LINES in the sunffb
+ DRI driver (#4677, David S. Miller).
+ 17. Some doc updates related to cross compiling (#A.413, Scott A McConnell).
+ 16. Fix bsdLib.rules and bsdLib.tmpl problems that show up when
+ X11ProjectRoot is defined (#4676, Johnny C. Lam).
+ 15. Fix Trident XVideo colorkey at depth 15, 24 (Alan Hourihane).
+ 14. Fix some apm driver bugs, including one that prevented acceleration
+ from working (#4674, Loïc Grenié).
+ 13. Fix 555 (depth 15) palette handling in the i810 driver (#4673,
+ Andrew C. Aitchison).
+ 12. [SECURITY] Fix authentication issues with mmap() on drm devices
+ (Jeff Hartmann).
+ 11. Add euro locales and some other missing locales to locale.alias and
+ locale.dir (#4662, 4665, 4667, Mike Harris).
+ 10. Fix Romanian XKB map (#4664, Mike Harris).
+ 9. Spell Portuguese correctly in XKB lst files (#4663, Mike Harris).
+ 8. Fix new ioperm calls in lnx_video.c for Alpha that are not needed
+ (Jay Estabrook).
+ 7. Add drivers for PCMCIA cards, HP VGA Out F1252A, and the ColorGraphic
+ Voyager VGA card to the KDrive server. Tested on the Compaq IPAQ.
+ Use -listmodes, to check resolutions supported.
+ (Alan Hourihane).
+ 6. Add RandR extension (Jim Gettys)
+ 5. Fix int10 option handling and DDC max clock reporting (Marc La France).
+ 4. Fix problems with assembler file dependencies when using gccmakedep
+ with the build (Frederic Lepied).
+ 3. Update Japanese localization of XDarwin help file (Toshimitsu Tanaka).
+ 2. Update XDarwin man pages, help files, and version info. Add option to
+ build XDarwin.app bundle for deployment (Torrey Lyons).
+ 1. Finish DRI resync, including tdfx driver updates for textured video
+ support (VA Linux Systems).
+
+XFree86 4.0.99.900 (18 May 2001)
+ 561. Add an XKB description for Latvian (lv) keyboards (#A.411, Ilya Ketris).
+ 560. Resync with DRI CVS trunk (VA Linux Systems).
+ 559. Savage driver updates, including compiler warning fixes, document
+ the "ShadowStatus" option in the man page, and fix an argument
+ mismatch between ShadowWait and SavageWaitQueue (#4661, Tim Roberts).
+ 558. Update the wacom driver to add a "ScreenNo" option to allow a tablet
+ to be attached to a screen in a multi-head setup, and to add auto-
+ detection of USB line and max parameters of USB tablets (#4640,
+ Frederic Lepied).
+ 557. Add a README file that has information about enabling the extra buttons
+ on the IBM Rapid Access keyboard (#4639, Dennis Bjorklund).
+ 556. Fix some Slovene/Slovak confusion in locale.dir/locale.alias files
+ (#4638, Kamil Toman).
+ 555. New XKB keymaps for cz and sk (#4634, 4637, Kamil Toman).
+ 554. Updates for the iso8859-2 Compose file (#4634, Kamil Toman).
+ 553. Check V_CSYNC in the r128 driver, and fix building with R128_DEBUG
+ enabled (#4631, Michel Dänzer).
+ 552. Mesa 3.4.2 (and later) import.
+ 551. More build & warning fixes (Marc La France).
+ 550. Fix bug that caused hardware cursors to be temporarily moved during mode
+ switches (Marc La France).
+ 549. Optimise HARDWARE_CURSOR_AND_SOURCE_WITH_MASK case (Marc La France).
+ 548. Move xf86CursorScreenRec definition into xf86CursorPriv.h
+ (Marc La France).
+ 547. Fix BIOS retrievals in MGA driver (Marc La France).
+ 546. Fix ATIProbe() for newer Rage128 and Radeon chips (Marc La France).
+ 545. Add temporary workaround in ATI driver for interrupts that occur on
+ PowerPC's upon PCI master-aborts (Marc La France).
+ 544. Update XDarwin to use fb and support Render (Torrey Lyons).
+ 543. Back out sunleo conversion to fb. This driver is too heavily dependent
+ on cfb32 for a simple fb conversion (Marc La France).
+ 542. Miscellaneous build/warning fixes (Marc La France).
+ 541. More prep work for SunOS (Marc La France).
+ 540. Fix libXft build on SunOS (Marc La France).
+ 539. Another makedepend bug fix (Marc La France).
+ 538. Fix use of xftcache utility during !UseInstalled builds (Marc La France).
+ 537. Adds #XFree86LOADER define to wrap ModuleInfo related functions
+ (#4654, Harold Hunt).
+ 536. Add an option to the SiS driver to turn off Xvideo support
+ (Ademar de Souza Reis Jr.)
+ 535. Fix FreeType bug, use MAXFONTNAMELEN (#4652, Janusz Gorycki,
+ Juliusz Chroboczek).
+ 534. Fix hw/vfb for compilation on Cygwin/XFree86 (#4655, Harold Hunt).
+ 533. Fix some Sparc platform issues with Pci resources and the glint
+ driver (#4641-4641,4644-4648 David S. Miller).
+ 532. Update glide, imstt, newport, rendition, suncg14, suncg3, suncg6,
+ sunleo, suntcx, vga and vmware to use fb and support Render
+ (Keith Packard).
+ 531. XDarwin fixes:
+ - Turn off building non-functional RENDER support.
+ - Reduce disappearing cursor problems when switching with Dock.
+ - Top of X display is no longer occasionally drawn black when
+ switching from Aqua.
+ (Torrey Lyons).
+ 530. Update freetype2 bits to 2.0.2 version (Keith Packard).
+ 529. Re-fix the Trident Video scaler support for Blade series chips
+ (Alan Hourihane).
+ 528. Fixed lbx to handle endian swapping without core dump (Egbert Eich).
+ 527. Fixed MTRR region splitting (Egbert Eich).
+ 526. Cleaned up option handling in int10 code (Egbert Eich).
+ 525. Added options to specify the Video BIOS to use for POSTing a
+ chipset (Egbert Eich).
+ 524. Trident driver: added call to BIOS to enable unstretched mode when
+ display is stretched. This should make the option "CyberShadow"
+ obsolete. (Egbert Eich).
+ 523. Attempt to fix video Support on Trident driver (Egbert Eich).
+ 522. Added VBE DDC support to SiS driver (Egbert Eich).
+ 521. Fixed Silicon Motion to unblank the display when driver fails
+ in PreInit() (Egbert Eich).
+ 520. Cleaned up handling of 'shadow status' in Savage driver
+ (Egbert Eich).
+ 519. Savage driver: fixed lockups for Savage4 when loading colormap,
+ manipulating the HW cursor, doing certain blit operations
+ 518. Cleanded up DDC code in mga driver (Egbert Eich).
+ 517. Fixed KGA handling in i740 driver (Egbert Eich).
+ 516. Converted i740 and Silicon Motion drivers to fb (Egbert Eich).
+ 515. Added calls to vbeFree() or xf86FreeInt10() to C&T, glint,
+ mga, neomagic, nv, s3v, tdfx and trident drivers to clean up
+ shared memory segments (Egbert Eich).
+ 514. Reworked video support in C&T driver, cleaned up block handler
+ (Egbert Eich).
+ 513. C&T driver: introduced a delay when setting the cursor image for
+ the first time after a mode change (Egbert Eich).
+ 512. Fixed R128CCE_RESET in r128 driver to do a reset only when dri
+ is enabled (Egbert Eich).
+ 511. Rewrote readPciBIOS() and getValidBIOSBase() (Egbert Eich).
+ 510. Fixed xf86Info structure in xf86Globals.c to match prototype
+ (Egbert Eich).
+ 509. -
+ 508. Fix XDarwin install problems with DESTDIR handling and with soft links
+ to the XtAppAddTimeOut manpage (Christoph Pfisterer).
+ 507. Add Error message output in Cygwin/XFree86 (#4632, Harold Hunt).
+ 506. Fix xdm when HasPam defined, and enable Pam support on Solaris 2.6 and
+ later (#A.401, #A.402, #A.403, Rainer Orth).
+ 505. Add Croatian keyboard for xkbcomp from Slovenian keyboard layout
+ (#A.405, Vlatko Kosturjak).
+ 504. Fix XvQueryAdaptors when there is no adaptors found
+ (#A.394, Jamie Strachan).
+ 503. Remove a stray INCLUDES in Xmuu/Imakefile when snprintf isn't used.
+ Set the Permedia2 DAC Mask to 0xFF.
+ PCI ROM space address access patch for LynxOS PPC.
+ Change limit of motoppcBusAddrToHostAddr for LynxOS PPC.
+ Include <sys/wait.h> for LynxOS in os/osinit.c.
+ Define CBAUD, when it's missing in xterm, on LynxOS.
+ (#A.387, Stuart Lissaman).
+ 502. Add SiS 86C204 to xf86PciInfo.h (#A.382, Carlos Manuel Duclos Vergara).
+ 501. Fix mga font corruption problems introduced with the recent addition
+ of big-endian support (#4629, Andrew C. Aitchison).
+ 500. Update for the mga driver's man page (#4628, Andy Isaacson).
+ 499. Add more drivers to the default build on Linux/mips (#4623,
+ Guido Guenther).
+ 498. Move the vgahw module load/init after the PROBD_DETECT handling
+ in the i810 driver's PreInit(), which fixes a segv when using
+ the X server's -configure option (#A.378, Leandro Martelli).
+ 497. Fix a problem with Radeon VE cards failing to enable its video output
+ (#A.376, Paul Stewart).
+ 496. Fix some DRI-related build dependency problems (David Dawes).
+ 495. Fix some drivers (including tdfx, r128, radeon, ark, imstt) that weren't
+ respecting the Virtual resolution requested in the config file
+ (David Dawes).
+ 494. Fix some offscreen memory calculation/allocation problems in the
+ tdfx driver (David Dawes).
+ 493. Fix a bug in localResizeOffscreenLinear when checking widths
+ (Alan Hourihane).
+ 492. Update Japanese localization for XDarwin Dock related fixes
+ (Toshimitsu Tanaka).
+ 491. Fix restoring of text mode fonts on Permedia3 (Alan Hourihane).
+ 490. Provide workaround for an apparent bug in Mac OS X 10.0.2 that causes
+ XDarwin to lose the cursor when switching to X using the Dock icon.
+ Fix "Application not responding" message in XDarwin's popup Dock menu
+ (Torrey Lyons).
+ 489. Hardware cursor documentation update (Marc La France).
+ 488. XVideo extension support in ATI driver for generic (e.g. v4l) adapters
+ (based on a patch by Ignacio Garcia Etxebarria).
+ 487. Fix ATI driver bug that caused the hardware cursor to move after mode
+ switches (Marc La France).
+ 486. Fix off-by-one error in screen positioning after a mode switch
+ (Marc La France).
+ 485. Backout part of 479 and implement a proper fix in the ATI driver
+ (Marc La France).
+ 484. Fix palette problem on NVIDIA Riva128 in DGA mode (Mark Vojkovich).
+ 483. setxkbmap patch that:
+ - fixes bug in comand line parser
+ - makes debug output more comprehensive
+ - prevent to use 'variant' from previous call if 'layout' name changed.
+ (#4627, Ivan Pascal)
+ 482. Documents Xaa specific options in the XF86Config manual page
+ (#4616, Branden Robinson)
+ 481. Add Mouse 3 Button emulation to Cygwin/XFree86 (#4626, Harold Hunt,
+ Alexander Gottwald).
+ 480. V4L documentation fix (Marc La France).
+ 479. Fix bug in generic hardware cursor RealizeCursor entry
+ (Marc La France).
+ 478. Extend the XFree86-VidModeExtension to accept gamma ramps from the
+ client rather than just rgb gamma values (Mark Vojkovich).
+ 477. More Xv updates for the Permedia3 (#4625, Sven Luther).
+ 476. Build Cygwin/XFree86 with -ansi -pedantic (Alan Hourihane).
+ 475. Limit the number of PCI buses to 128 on ix86 (Marc La France).
+ 474. More fixes for the handling of unassigned PCI bases (Marc La France).
+ 473. Fix option handling in most drivers so that per-screen options work
+ correctly (David Dawes).
+ 472. Resync with DRI CVS trunk (VA Linux Systems).
+ 471. Import latest Mesa 3.4.x branch.
+ 470. Add a PIOOffset value plus readEnable and writeEnable function pointers
+ to the vgahw rec. The former allows vgahw to be used for VGA registers
+ that are shadowed in I/O space. The latter allow the VGA_ENABLE
+ register to be accessed in similar way to most other VGA registers.
+ Add vgaHWEnable() and vgaHWDisable() functions (David Dawes).
+ 469. Disable HWcursor for CyberBladeXP chips (Alan Hourihane).
+ 468. Fix a Trident Cyber9388 setup issue (Alan Hourihane).
+ 467. Fix man page building and installing on Darwin. To be safe we assume
+ the Darwin file system is case insensitive since one common variety is,
+ ie. HFS+ (Torrey Lyons).
+ 466. Improve interoperability between Aqua pasteboard and X cut buffer with
+ XDarwin (Gregory Parker).
+ 465. Updates for Cygwin/XFree86 (Harold Hunt).
+ 464. Provide more robust default preferences for XDarwin (Torrey Lyons).
+ 463. Remove map84 keyboard map from Cygwin/XFree86 build (#4621, Harold Hunt).
+ 462. Disable xload on Cygwin/XFree86 (Alan Hourihane).
+ 461. Remove an errorneous i++ from os/xdmcp.c with -class (Alexander Gottwald).
+ 460. Allow Cygwin/XFree86 to build with cygipc support (Alan Hourihane).
+ 459. Small XDarwin fixes:
+ - Don't leak IOService objects when searching for desired screen.
+ - Eliminate chance of SIGPIPE while shutting down.
+ - Revert to Aqua cursor when quit by exiting main client.
+ - Stop console error messages when using mouse button 3.
+ (Torrey Lyons and Christoph Pfisterer).
+ 458. At Linus' request, make linux/int10 module deal with shmat() errors
+ (Marc La France).
+ 457. Fix makedepend's integer value parsing and make it understand GCC's
+ #include_next directive as found in glibc & libc5 (Marc La France).
+ 456. Xterm patch #156 (Thomas Dickey): change preference of types for
+ selection-target between UTF8_STRING and STRING (Juliusz Chroboczek),
+ fixes for configure script and documentation (report by Adam
+ <adam@cfar.umd.edu>).
+ 455. Fix XDarwin so display number preference is followed (Torrey Lyons).
+ 454. Fix Xserver/Imakefile for Cygwin/XFree86 (Harold Hunt, Alan Hourihane).
+
+XFree86 4.0.99.3 (26 April 2001)
+ 453. Loader fixups for Sparc's (Marc La France).
+ 452. Fix dependencies for libGLU on Cygwin/XFree86 (Alan Hourihane).
+ 451. Make xdm & xfs compile on Cygwin/XFree86 (Alan Hourihane).
+ 450. Update Japanese localization of XDarwin.app's Preferences window
+ (Toshimitsu Tanaka).
+ 449. Don't build clients that require extension libraries unless those
+ libraries are being built (#A.386, Scott A McConnell, David Dawes).
+ 448. Fix the BuildXinerama test in Xserver/Imakefile (#4615, Harold Hunt).
+ 447. Ignore MakeDllModules when DoLoadableServer isn't set (#4613,
+ Guido Guenther).
+ 446. Don't define the <Ctrl>T compose sequences in the iso8859-1 compose
+ map by default (#4611, Mike Harris).
+ 445. Allow the nls compose data files to be pre-processed (David Dawes).
+ 444. Fix some problems introduced with the internationalisation of twm
+ (#4607, Juliusz Chroboczek).
+ 443. Fix dpsinfo so that the correct headers are included (#4606,
+ Juliusz Chroboczek).
+ 442. Fix mismatches between the way xlsfonts interprets font properties and
+ the way they are defined in the XLFD spec (#4604, Jochen Voss).
+ 441. Add entries for German iso-8859-15 locales (#4603,
+ Philipp Matthias Hahn).
+ 440. Cleanup build in Xserver/GL/mesa, making use of the earlier cleanups in
+ the lib/GL build (David Dawes). #4602 is redundant as a result.
+ 439. [SECURITY] Check for negative reply length/overflow in _XAsyncReply
+ (Xlib) (#4601, Mike Harris).
+ 438. New 'hu' xkb symbols file (#A.364, Peter Soos).
+ 437. Trident driver fixes for PC98 platforms (#4612, Akio Morita).
+ 436. Convert apm driver from cfb to fb (Alan Hourihane).
+ 435. Fix makedepend for '//' comment parsing and symbols that contain
+ expressions (Marc La France).
+ 434. Fix a problem with the mga G400 2nd head going into power saver mode
+ when it should be blanked, and enable DPMS for the 2nd head (#A.358,
+ Craig Leres).
+ 433. Fix a horizontal resolution problem that shows up with mga Xv (#A.365,
+ Ewald Snel).
+ 432. Work around a refresh rate problem when using custom modelines that
+ have a refresh rate > 100Hz with the Matrox HAL library (#A.360,
+ Ewald Snel).
+ 431. XDarwin fixes:
+ - Provide work around for kernel/driver issue on Darwin 1.3 that
+ causes the kernel keymapping to be empty on Mac portables.
+ - Command line -dpi option is no longer ignored.
+ (Torrey Lyons).
+ 430. Ensure that the X-TT module isn't built if the Xserver isn't being
+ built (#4594, Chu-yeon Park).
+ 429. Make xconsole try to reopen the /dev/xconsole pipe when it gets an EOF
+ (#4593, Jeff King).
+ 428. Prevent an infinite loop (or unpredictable behaviour) in xmodmap (#4592,
+ Peter Maydell).
+ 427. Add a font substitute for the zh locale (#4590, submitted by Branden
+ Robinson).
+ 426. Make the backspace key definitions for the xkb macintosh/us and
+ dvorak layouts consistent with the default 'us' layout (#4588, 4589,
+ Branden Robinson).
+ 425. Update for the sessreg man page (#4587, Branden Robinson).
+ 424. Add a font substitute for the ko locale (#4586, Changwoo Ryu).
+ 423. Avoid using fileno() in xauth's signal handler, and write messages to
+ stderr rather than stdout (#4585, submitted by Branden Robinson).
+ 422. Fix nested comment warnings in dix/gc.c (#4584, Branden Robinson).
+ 421. Include <stdlib.h> in two lbxutil files to get malloc/free prototypes
+ (#4583, submitted by Branden Robinson).
+ 420. Remove duplicate paragraph in xdm man page (#4582, Branden Robinson).
+ 419. Fix line numbers in error messages when parsing .twmrc files (#4580,
+ Topi Miettinen).
+ 418. Fix backwards font glyphs in the ati/Mach64 driver for big endian
+ platforms (#4579, Michael Dänzer).
+ 417. Add a build-time option to xf86config to make it append the major version
+ number to the config file name (David Dawes, prompted by #4577,
+ Branden Robinson).
+ 416. xf86config build fix for non-GNU make (Marc La France).
+ 415. Build fix for Summa driver on SunOS/Sparc (Marc La France).
+ 414. compiler.h cleanup (Marc La France).
+ 413. More DependDefines, OS_DEFINES and EXT_DEFINES build fixes
+ (Marc La France).
+ 412. Fix installation of specs docs (#4575, Branden Robinson).
+ 411. Make Cygwin/XFree86 call miSetPixmapDepth for RENDER extension
+ (Alan Hourihane).
+ 410. Xterm patch #155 (Thomas Dickey): correct change to return-type of
+ in_put(), which caused problem with UTF-8 (fixed by Bruno Haible).
+ 409. Some unobstrusive preparations for SunOS/Sparc (Marc La France).
+ 408. Remove unnecessary libxf86_os link into Xnest & Xvfb (Marc La France).
+ 407. Disable building of SuperProbe by default (Alan Hourihane).
+ 406. Make OS_DEFINES available to all server Makefiles (Marc La France).
+ 405. Add support to xman for parsing '\" <string> formatting hints.
+ Also cleanup some of the vendor-specific definitions and fix
+ processing of mandoc pages on FreeBSD (based on #4573,
+ Branden Robinson, David Dawes).
+ 404. Fix default mailbox selection in xbiff for Linux, add recognition of
+ $MAIL, and update the man page accordingly (based on #4571,
+ Branden Robinson).
+ 403. Remove redundant PCI id definitions in the tdfx driver, and clean up
+ the messages printed when the DRI can't be enabled because the bpp
+ isn't supported (based on #4570, Branden Robinson and #4598,
+ Antti Tapaninen). Also, re-enable soft booting.
+ 402. Install the XftConfig file under $(CONFDIR), with a link from the
+ usual place (based on #4569, Branden Robinson).
+ 401. Update the Debian section on linux.cf (#4568, Branden Robinson).
+ 400. Startx fixes/enhancements, including:
+ - Fix argument processing.
+ - Set XAUTHORITY.
+ - Don't overwrite existing cookies, and remove ones added for this
+ session when exiting.
+ - Deallocate the VT that X was using.
+ - Update the man page.
+ (based on #4567, Branden Robinson, Henry T. So, Jr).
+ 399. Implement two new driver-provided options in the common cursor code and
+ use them to work around hardware bug that causes flickering Mach64
+ hardware cursors (Marc La France).
+ 398. Integrate SiS driver changes (Ademar De Souza Reis).
+ 397. Initialize Elsa GloriaXXL (GLINT) framebuffer properly (Alan Hourihane).
+ 396. Fix bug where XDarwin.app would not hide the X display when it was no
+ longer the active application (Torrey Lyons).
+ 395. Make XDarwin.app ignore .xserverrc file when started from the GUI so
+ that it starts correctly (Torrey Lyons).
+ 394. Cygwin updates (#4557, 4558, 4563, Suhaib Siddiqi).
+ 393. Document the usage of the -server option in the xfsinfo man page (#4562,
+ Mike Harris).
+ 392. Fix xfs man page problem (#4561, Mike Harris).
+ 391. Fix a crash that happens when a font encoding has no aliases and it is
+ invoked using a non-canonical name (#4560, Takeshi Miyasaka).
+ 390. Add imake/config support for distinguising big endian and little endian
+ MipsArchitecture types (#4556, Florian Lohoff).
+ 389. Add support to the mga driver for auto-detecting the display type
+ (#4555, Stephane Duguay (Matrox)).
+ 388. Savage driver updates, including:
+ - Enable the Render extension.
+ - Make the DGA mode setup look more like the other drivers.
+ - First cut at Xvideo for the Savage4.
+ - Add a "ShadowStatus" option, which is a reliable workaround for the
+ scrolling hang that many experience.
+ (#4554, Tim Roberts).
+ 387. Enable wide character support for NetBSD 1.5P and later (#4553,
+ Matthias Scheler).
+ 386. Add offscreen image support to the i810 driver (for Xv), and fix
+ physMemBase (#4552, Matthew Sottek).
+ 385. Fix bad cut&paste update to the sunffb driver (#4551, David S. Miller).
+ 384. Fix "DriDrivers" typo in the sparc section of xfree86.cf (#4550,
+ David S. Miller).
+ 383. Update UCS 75dpi and 100dpi fonts, including adding UCS versions of
+ the UTBI and UTB fonts that were in the unnec_75dpi and unnec_100dpi
+ directories. The other "unnec" fonts are also moved over (#4548,
+ Markus Kuhn).
+ 382. Make the v4l driver module keep searching for more devices if the first
+ one can't do overlay (#4545, 4614, Gerd Knorr).
+ 381. Bug fixes for Xv support using a Permedia3 chip (#4564, Sven Luther).
+ 380. Xterm patches #151, #152, #153, #154 (Thomas Dickey):
+ - improve select/paste of COMPOUND_TEXT and UTF8_STRING (Juliusz
+ Chroboczek, Bruno Haible).
+ - fixes for erase operations (Alexander V Lukyanov).
+ - correct ifdef for bold overstriking when built to support UTF-8.
+ - change resource corresponding to "-T" option to match Xt library's
+ "-title", i.e., ".title" rather than "*title" so the command-line
+ options are interchangeable as documented (Debian bug report #68843).
+ - modify "RequestResize()" function to save/restore window manager hints
+ (Debian bug report #79939).
+ - improved error checking for input-method initialization.
+ - minor fixes for terminfo entries.
+ - various build/portability fixes.
+ 379. XDarwin fixes:
+ - Don't SetUID XDarwin X server. (The IOKit doesn't need it.)
+ - Startup message reports correct display mode.
+ - XDarwin.app is now installed in /Applications by default.
+ - Update xinit server name list.
+ - "make clean" now works for a non-root user.
+ (Torrey T. Lyons)
+ 378. Make XDarwin correctly handle color hardware cursors in Quartz mode
+ (Gregory Parker).
+ 377. Fixes to the XDarwin application:
+ - Display menubar when started without a splash screen.
+ - Query before quitting from Aqua when started with startx.
+ (Torrey T. Lyons).
+ 376. Update Japanese localization for XDarwin application (Toshimitsu Tanaka).
+ 375. Fix byte ordering and static colormap issues with XDarwin server
+ on x86 hardware (Rob Braun).
+ 374. Fix problems with XDarwin hardware cursor support in Quartz mode
+ (Gregory Parker).
+ 373. Resync with DRI CVS trunk (VA Linux Systems).
+ 372. Fix bug in XvMC protocol (Bob Paauwe).
+ 371. Ensure NoInt10 is used for PC98 (Alan Hourihane).
+ 370. Fix PC98 issues with the trident driver (#4547, Akio Morita).
+ 369. Add a NoInt10 option to the int10 module, allowing it to be disabled
+ per entity (Alan Hourihane).
+ 368. Fixes to the XDarwin application:
+ - X clients are now started correctly.
+ - Shuts down cleanly.
+ - Removed erroneous NSString releases in quartzCocoa.m.
+ - Dragging with mouse button 3 or higher depressed produces events.
+ (Christoph Pfisterer and Torrey Lyons)
+ 367. Make the ramdac module for the IBM RGB640 DAC work at depth 15
+ (Alan Hourihane).
+ 366. Fix interference between acceleration and hardware cursors on Mach64
+ variants (Marc La France).
+ 365. Fix xload so it is functional on Darwin OS (Rob Braun).
+ 364. Mac OS X specific fixes:
+ - Fix typo in XDarwin startup program that could cause crash with
+ many command line options.
+ - Move Show/HideMenuBar() call to main thread so that XDarwin
+ application displays a menu bar on the Mac OS X desktop.
+ (Greg Parker).
+ 363. XDarwin application fixes including:
+ - Fix bugs causing XDarwin preferences to not be saved correctly.
+ - When using system beep, turn off bell when beep volume is set to 0.
+ (Christoph Pfisterer).
+ 362. Fix building of dpsops.h and psops.h in correct order (Alan Hourihane).
+ 361. Change xvmc.h to xvmcext.h to avoid case-(in)sensitive name clash with
+ XvMC.h for Cygwin/XFree86 (Alan Hourihane).
+
+XFree86 4.0.99.2 (6 April 2001)
+ 360. Fbdev driver updates, including:
+ - Switch from shadowfb to mishadow.
+ - Add RENDER extension support.
+ - Add DGA support.
+ - Fix SaveScreen function
+ - Blank screen in ScreenInit so the former framebuffer contents aren't
+ visible
+ (#4544, Michel Dänzer).
+ 359. Remove references to th_TH compose file from compose.dir (#4543,
+ Theppitak Karoonboonyanan).
+ 358. Fix for improper setting of the maxHValue limit in the tseng driver.
+ This makes modes like 1152x864@24bpp possible (#A.355, Stanislav Brabec).
+ 357. Fix a hw cursor related lockup that shows up with some mga G400
+ 16MB OEM single head cards (#A.351, Ewald Snel).
+ 356. Fix the XKB macintosh/it mapping (the accent-related keys were wrong)
+ (#A.349, Andrea Ghirardini).
+ 355. Add XKB descriptions for the extra keys on a Chicony internet
+ keyboard (#A.356, John Gladkih).
+ 354. Add support for the internal input device interface to mice on
+ Solaris 8, and make it the default protocol ("VUID") (#A.340,
+ Marcus Comstedt).
+ 353. Add XKB descriptions for the extra keys on an IBM Rapid Access II
+ keyboard (#A.332, Patrick D'Cruze).
+ 352. Fix a typo in xvidtune (#A.327, Peter Breitenlohner).
+ 351. Fix Linux/libc5 build problem in the bigfont extension code (#A.327,
+ Peter Breitenlohner).
+ 350. Fix typo in Chooser.ad (#A.327, Peter Breitenlohner).
+ 349. Big endian and PowerPC support for the mga driver (#4540, Ani Joshi).
+ 348. Big endian support for the tdfx driver (#4539, Ani Joshi,
+ Nicolas Dimitrijevic).
+ 347. Build the tdfx and imstt drivers on PowerPC platforms (#4538, Ani Joshi).
+ 346. Add IMS (Integrated Micro Solutions) PCI data for the TwinTurbo128
+ and TwinTurbo3D (#4537, Ani Joshi).
+ 345. Fix some color and accel glitches in the imstt driver (#4536, Ani Joshi).
+ 344. Add ISA I/O support for PowerPC Linux using the __NR_pciconfig_iobase
+ syscall (#4535, Ani Joshi).
+ 343. New Xwin server code from the Cygwin/XFree86 project. This version
+ is more portable across Win32 platforms. Changes include:
+ - Use fb and shadowfb, and use the faster of GDI blitter,
+ DirectDraw blitter and DirectDraw4 blitter to update damaged
+ regions. The video card's framebuffer is no longer mapped.
+ - Works correctly at depths > 8, but colors are not correct at depth 8.
+ - Uses the standard Win32 API messages for processing keyboard and
+ mouse input rather than using DirectInput. This is more reliable.
+ - Improved internal structure and coding conventions.
+ - Builds completely from the XFree86 tree using gcc (the Visual C++
+ compiled xf_dx.dll is no longer used).
+ - The new server can run on machines that don't have DirectDraw/DirectX
+ installed (or installed but not operable) by falling back to the
+ GDI blitter. The best drawing interface is determined at startup,
+ but this can be overriden with the -engine command line option.
+ - The Xrender extension is now supported.
+ - Command line option is available to run in full screen mode.
+ (#4531, 4532, 4534, Cygwin/XFree86 project including Harold L Hunt II,
+ Suhaib M Siddiqi, Dakshinamurthy Karra, Peter Busch).
+ 342. v4l driver bug fixs: catch xalloc() failures, and set the depth
+ correctly for the VIDIOCSPICT ioctl (#4530, Gerd Knorr).
+ 341. Add a driver for VMware virtual SVGA devices. This is for use
+ by X servers running under a VMware guest OS (#4529, VMware, Inc).
+ 340. Remove Cygwin-specific #ifdef in Xserver/os/Waitfor.c, which fixes
+ a crash (#4528, Suhaib Siddiqi).
+ 339. Cygwin build fixes (#4527, Suhaib Siddiqi).
+ 338. Updates to the "citron" input driver. It includes compatibility
+ with the Winbond SIO chip (83977EF), and some new commands to
+ communicate to the touch driver from an application program
+ (via XChangeFeedbackControl) (#4526, Peter Kunzmann, Citron).
+ 337. Updates to the "summa" input driver, including:
+ - "Resolution" replaces "LPI" as option for setting resolution.
+ - Fixed device reporting to give the actual tablet area size and
+ resolution.
+ - Tested and working with: SummaSketch3, Hitachi_1217D, a couple of
+ others emulating the Summa protocol.
+ - Reduce debug message verbosity.
+ - Various cleanups.
+ (#4525, Huver).
+ 336. SunFFB driver bug fixes, including:
+ - Be smarter about restoring Kernel framebuffer state.
+ - Cure build errors when debug defines are enabled.
+ - Do not enable DRI or DGA acceleration if NoAccel option is specified.
+ (#4524, David S. Miller).
+ 335. Mga G450 dual head support, (#4523, Luugi Marsan (Matrox) and
+ David Woodhouse).
+ 334. Fix missing xfree -> Xfree mapping in the Type1 font library code (#4521,
+ Juliusz Chroboczek).
+ 333. Make sure that an initialization assumption in parse_fontdata() in
+ lib/X11/omGeneric.c is met (#4520, Jonathan Kamens).
+ 332. Add checksum verification to detect monitors that give incorrect EDID
+ data (#4517, Andrew C Aitchison).
+ 331. Fix checking of LD_ELFDLOBJECT on big-endian systems (#4514,
+ Guido Guenter).
+ 330. Add an update.fonts target/rule for maintainer use to update
+ the latin1 fonts in the source tree that are derived from the
+ ISO10646-1 masters (David Dawes).
+ 329. Update UCS misc fonts, which includes the addition of the missing
+ 4 DEC VT100 graphics characters from Unicode 3.2 (#4533, Markus Kuhn).
+ 328. Handle build-time generation of 8 bit fonts from the UCS versions,
+ rework the way this is organised, and allow some better control over
+ which fonts are built/installed (David Dawes).
+ 327. Add UCS versions of most of the 75dpi and 100dpi bdf fonts, and generate
+ 8-bit subsets of them. Also, remove the now-redundant latin2
+ bdf font directories (#4512 Markus Kuhn).
+ 326. Add support for Trident CyberBladeXP and CyberBladeXPm (mobile)
+ (Alan Hourihane, Robert V Fleisig).
+ 325. Add XKB descriptions for the extra keys on an IBM Rapid Access keyboard
+ (#4510, Dennis Bjorklund).
+ 324. Update Status and i810 docs to mention i815 support and FreeBSD support
+ (#4509, Andrew C Aitchison, David Dawes).
+ 323. Xprt fixes to make it closer to X.org version (Danny Backx).
+ 322. Fix for reading PCI resource data on Linux/alpha (#4508,
+ Ivan Kokshaysky).
+ 321. Add XKB descriptions for the extra keys on a "Logitech Internet Keyboard"
+ (#4505, Matthew Hand).
+ 320. Build shared libGL and DRI client modules on Linux without PIC for
+ performance reasons.
+ 319. Updates to glxinfo (Brian Paul).
+ 318. Add glxgears (Brian Paul).
+ 317. glxinfo needs libGLU (Marc La France).
+ 316. Rage128 fix to Cards database (Marc La France).
+ 315. Minor fix to PCI resource overlap handling (Marc La France).
+ 314. Loader code simplification and IA-64 cache flushes (Marc La France).
+ 313. Workaround in the ATI driver for troublesome interaction between loader
+ and compiler optimisation (Marc La France).
+ 312. Warning fixes for `gcc -fno-builtin`, which appears to be the default on
+ some systems (Marc La France).
+ 311. Add glyph transformations to Xft (Tuomas J. Lukka)
+ 310. Add XftCache creation to fonts/Type1 (Keith Packard)
+ 309. Add Xmuu library for non-Xt/Xaw dependent applications (Jim Gettys)
+ 308. Add i810 and Xv support to kdrive (Pontus Lidman)
+ 307. Fix Radeon CPUToScreen acceleration on Alpha platforms (Jay Estabrook).
+ 306. Fix bug in ServerLayout option handling when there's no ServerFlags
+ section present (David Dawes).
+ 305. Allow fb to access 16bit devices (Alan Hourihane).
+ 304. XvImage support for GeForce chips in the nv driver (Mark Vojkovich).
+ 303. XvMC build fix (Marc La France).
+ 302. Fix recently introduced bug in xf86cfg (Marc La France).
+ 301. Re-instate warning fixes clobbered by DRI merge (Marc La France).
+ 300. Ignore disabled non-video PCI ROMs (Marc La France).
+ 299. Hardware cursor implementation for Mach64 variants (William Blew,
+ Ani Joshi, Marc La France).
+ 298. Some endianness fixes in the ATI driver (incomplete) (Marc La France).
+ 297. Fix MMIO ordering problems for Mach64 acceleration (Marc La France).
+ 296. Fix ATI driver behaviour when it finds the LCD panel has been disabled
+ on entry (Marc La France).
+ 295. Fix ECP clock for GATOS (Vladimir Dergachev).
+ 294. Undo part of CHANGELOG 36 (Marc La France).
+ 293. Rework the building of libGL and the DRI drivers (David Dawes).
+ 292. Update greek keyboard layout and compose map.
+ (#4513, Katsaloulis Panagiotis)
+ 291. Fix problems in Xnest when MouseKeys is enabled and patched it to
+ use XKB to allow clients to change keyboard description and
+ configuration whithout interfering with the "real" X server
+ (Paulo César Pereira de Andrade).
+ 290. Dvorak keymap fix (#A.343, J Phillips).
+ 289. Some vesa driver updates, including:
+ - Wrap CloseScreen().
+ - Call xf86PrintModes().
+ - Add error messages for when PreInit bails out for lack of modes.
+ - Rework how the debugging information is printed.
+ _ Avoid some build warnings.
+ (David Dawes)
+ 288. Make it possible to call xf86PrintModes() when there is no hsync or
+ refresh data available, like from the vesa drivers (David Dawes).
+ 287. Add a "cleanlinks" script for cleaning up dangling links in lndir-created
+ shadow trees (David Dawes).
+ 286. Resync with DRI CVS trunk (VA Linux Systems).
+ 285. Make extension headers available when the extension is enabled but the
+ extension's client library is disabled (David Dawes).
+ 284. Make it possible to enable building selected extension libraries
+ when BuildServersOnly is set, and allow independent control of
+ building docs and clients (David Dawes).
+ 283. Import latest Mesa 3.4.x branch.
+ 282. Lower the default fifo threshold for PM3 chips (Alan Hourihane,
+ Rafael Barbalho, 3DLabs).
+ 281. Fix 3DLabs GLINT driver for use the Flat Panels, use the UseFlatPanel
+ option. Tested with the SGI 1600SW and Permedia3 board (Alan Hourihane).
+ 280. Fix glxinfo to query default display (Alan Hourihane).
+ 279. Convert TGA driver to use fb (Alan Hourihane).
+ 278. Fix XTRAP typo in miinitext.c (Damien Touraine).
+ 277. Major updates to the XFree86(1) man page (David Dawes).
+ 276. A new (perl) version of the mkhtmlindex script that works better than
+ the shell version (David Dawes).
+ 275. Fix the `make depend` scripts to accept -U flags and not require a blank
+ in their -f flag (Marc La France).
+ 274. Bump the video and input driver ABI minor numbers.
+ 273. Add xf86SetRealOption() (Huver).
+ 272. Change Xdarwin do that it processes all pending events instead of
+ just the oldest one on ProcessInputEvents() call ,
+ Quit Xdarwin cleanly, wether from the Xserve or from Cocoa front end,
+ Fix a case typp which cases the Xdarwin server not to start if
+ installed on a case sensitive file system like UFS.
+ (#4504, #4507, #45011, Gregory Parker, Torrey T. Lyons).
+ 271. Move Section DRI/Endsection into the DRI function to be consistant with
+ all of the other sections. (Quentin Neill)
+ 270. Made xf4bpp code moer 64bit clean (still doesn't work on Alphas)
+ (Egbert Eich).
+ 269. Removed disable/enable interrupt call on ia64 platforms.
+ The machine instruction is privileged and not permitted in user space
+ (Egbert Eich).
+ 268. Improved mode setting in Trident driver; added code to ValidMode
+ to reject any modes whose size is larger than the physical LCD
+ size if LCD is enabled (Egbert Eich).
+ 267. Modified error message in TDFX driver to give user a clue how
+ to avoid error (Stefan Dirsch).
+ 266. Fixed appearant typo in SMI driver (Egbert Eich).
+ 265. Changed Savage driver to unmap memory when exiting PreInit() and
+ maps it on every call to ScreenInit() (Egbert Eich).
+ 264. Changed handling of failed vbe call in rage 128 driver.
+ No the driver doesn't fail any more (Egbert Eich).
+ 263. Integrate the currently Panix-specific keycodes into atKeynames.h,
+ since they're not really Panix-specific (David Dawes).
+ 262. Fix problem with a NULL pointer in Xv Xineramification (Benjamin Monate).
+ 261. Bug fixes and improvements for mouse 3 button emulation state machine
+ (Andrew Pimlott).
+ 260. Updates for Hurd support (#A.324, Marcus Brinkmann).
+ 259. Add call to setlocale() in xev (#A.322, Eugene B. Byrganov).
+ 258. Add support fo the charset Big5HKSCS to the X-TrueType module, as
+ well as some basic XLocale support for it (#A.321, Roger So).
+ 257. Fix core dump in XqueueMousePreInit (#A.317, Fiel Cabral).
+ 256. Allow the mga driver's "DigitalScreen" option to work for the first
+ head (#A.297, Niels Gram Jeppesen).
+ 255. Add zh_CN.GBK locale support (#A.293, Yong Li).
+ 254. Fix a problem with the ThinkingMousePS/2 protocol handling of left
+ movement (#A.292, Ian Remmler). (This has been in 3.3.x since 3.3.4.)
+ 253. Make xdm Xinerama-aware so that it can avoid splitting login and
+ chooser windows across physical screens (#A.276,
+ Dmitry Yu. Bolkhovityanov).
+ 252. Fix a resource allocation bug in the DBE code (#A.271, Bill Rugolsky).
+ 251. Only enable Xv support for the 630 in the sis driver (#A.263, Nick Lamb).
+ 250. Modify the sis driver to prefer 24bpp framebuffer layout. Perhaps not
+ all support 32bpp? (#A.263, Nick Lamb).
+ 249. Add missing byte to Intellimouse init string, which fixes problems
+ that show up with some KVM switches (#A.258, Seung-Hyeon Rhee).
+ 248. Some DRM module fixes for FreeBSD 5-current (#A.242, Andrew Atrens).
+ 247. Fix xterm build on Solaris 2.5.1 (based on #A.282 from mark at zang.com).
+ 246. Make the Linux/PPC "custom keycodes" choice a run-time option instead
+ of a build-time option (#A.240, Franz Sirl).
+ 245. Add support to splitting WC MTRR regions on Linux when the regions is
+ not aligned on a size boudary (#A.238, _Usul John Obscurant).
+ 244. Add Acecad support to the "summa" input driver (#A.237, Arpad Gereoffy).
+ 243. Don't try to map 64K blit window aperture on older trident chips
+ (Alan Hourihane).
+ 242. V4L driver cleanups and Xineramification (#4502, Gerd Knorr).
+ 241. Make the X server and the Mac OS X front end run in a single process.
+ Other build fixes for Darwin (#4500, #4501, the XonX team).
+ 240. Don't build xf86config under BuildServersOnly (Marc La France).
+ 239. Potential fix for DGA apps that set colourmaps the normal way rather than
+ through DGA (Mark Vojkovich, Marc La France, Pontus Lidman).
+ 238. Make fstobdf generate correct ATTRIBUTES fields (Ishikawa Mutsumi).
+ 237. Xt man page updates (Paul Vojta).
+ 236. Plug kernel security hole in Linux int10 (Marc La France).
+ 235. Fix Xnest build for newest gcc versions (Marc La France).
+ 234. Fix typo in Xv Xinerama support (Gerd Knorr).
+ 233. Fix a problem with multi-thread support on OpenBSD (released OpenBSD
+ versions don't have getpwuid_r) (Matthieu Herrb)
+ 232. Allow to compile on OpenBSD-current which has completly removed PCVT
+ from its installation. (Matthieu Herrb)
+ 231. Support for ThreadedX on FreeBSD (FreeBSD ports patch-xthread).
+ 230. Updates for console-related FreeBSD system header changes as of 4.1-REL
+ (FreeBSD ports patch-r, patch-s).
+ 229. Don't leave free'd vrotate uninitialised in lib/X11/omGeneric.c
+ (FreeBSD ports patch-q).
+ 228. Protect #define HasPam in FreeBSD.cf (FreeBSD ports patch-d).
+ 227. Fix border garbage for the G400 second head by backing out #4205
+ (David Dawes).
+ 227. Fix a typo in fonts/util/Imakefile (#4499, Juliusz Chroboczek).
+ 226. Add a document describing the DPS code included in the tree, and
+ pointers to web resources (#4498, Juliusz Chroboczek).
+ 225. Use VBE to add runtime DDC support to the i810 driver (#4496,
+ Andrew C. Aitchison).
+ 224. DRM kernel module updates for FreeBSD (#4493, joe at cracktown.org).
+ 223. Add support for the "Internet" keys of the Genius Comfy KB-16M keyboard
+ (#4491, Kamil Toman).
+ 222. Include three DPS sample clients:
+ - dpsinfo: random info about the DPS extension;
+ - dpsexec: interactive DPS ``executive'' (command-line);
+ - texteroids: a demo of font support.
+ (#4489, 4497, Juliusz Chroboczek).
+ 221. Don't build the GLU library when not building GLX. This fixes
+ a build failure when GLX is disabled (#4488, Juliusz Chroboczek).
+ 220. Make the stub files that pswrap generates contain the same set of
+ includes as the Adobe version, which fixes problems building
+ standalone DPS clients (#4487, Juliusz Chroboczek).
+ 219. Fix setxkbmap bugs, including:
+ - Continue working if the appropriate root window property where the
+ current xkb settings are saved can't be read or interpreted.
+ - Make the -keymap option work.
+ - Update the man page to explain how the "-option" option works.
+ - Add primitive sanity checking for 'map name'.
+ (#4482, Ivan Pascal).
+ 218. Fix a server crash while reading DDC data from EDID2 capable monitors
+ (#4481, Andrew C Aitchison).
+ 217. Updates to Thai support, including:
+ - Fix a bug combining characterw with Shift keys.
+ - Remove the th_TH Compose file so that Thai XIM is/can be(?) activated
+ without needing XSetLocaleModifiers().
+ - A more precise context-sensitive input sequence check using
+ XNStringConversionCallback added. This has been tested with
+ xiterm+thai-1.04pre2. The implementation detail might be changed
+ if found inconsistent with the X11 specification.
+ (#4478, Theppitak Karoonboonyanan).
+ 216. Update ucs2any.pl, and replace the special map-* files with the
+ original mapping files from ftp.unicode.org. Changes include:
+ - A bug has been fixed that caused sometimes the FONT property not
+ to be updated correctly.
+ - The FONTBOUNDINGBOX is now recalculated, which makes the script
+ also suitable for proportional fonts.
+ - The mapping table for the DEC VT100 graphic characters is now built
+ into the script. This means the special map-* files are not necessary
+ any more and they could be replaced with the original mapping files
+ found on ftp://ftp.unicode.org/Public/MAPPINGS/
+ - Whether the DEC VT100 graphic characters are added can be controlled
+ with options +d/-d. Default is to add them for upright charcell fonts
+ only.
+ - Slightly improved warning messages.
+ (#4472, Markus Kuhn).
+ 215. Fix libGLU build problem on Cygwin (#4467, Suhaib M. Siddiqi).
+ 214. Fix missing libX11 exported symbols for Cygwin (#4467,
+ Suhaib M. Siddiqi).
+ 213. Updates for Hurd support (#A.209, Marcus Brinkmann).
+ 212. Fix some mis-placed mem_barrier's for Alpha platforms (Jay Estabrook).
+ 211. Fix a Index/DAC register access in glint PM2v, PM3 driver.
+ (#A.319, Romain Dolbeau).
+ 210. Add Xv support to Permedia3 driver (#4480, #4486 Sven Luther).
+ 209. Support for NVIDIA GeForce3 (Mark Vojkovich).
+ 208. Allow GccWarningFlags overrides on Linux (Marc La France).
+ 207. Fix a problem with xvinfo's listing of image formats
+ (Giridhar Pemmasani).
+ 206. Fix bug in XkbSetNamedDeviceIndicator (XkbSetNamedIndicator). This
+ function can be used both for change state of specified indicator
+ (on/off) and for change description (and so behavior) of indicator.
+ Fix bug (in XkbGetPerClientControls). Typo where subroutine apply bit
+ mask (that consist of bitwise OR of three separate masks) to value
+ that have to be returned (#4474, Ivan Pascal).
+ 205. Setxkbmap can crash X server if one specify some illegal string as
+ 'xkb variant' name (#4471, Ivan Pascal).
+ 204. In Grab mode XKB sends 'state' in key events without 'group info'
+ (keyboard map layout) (#4469-4470, Ivan Pascal).
+ 203. Rewrite the X-Video extension's Xineramification (Mark Vojkovich).
+
+XFree86 4.0.99.1 (19 February 2001)
+ 202. Gamma correction and DirectColor visual support for NVIDIA RIVA TNT
+ and newer chipsets (Mark Vojkovich).
+ 201. IA64 fix for generic int10 code (Egbert Eich).
+ 200. Redadding space as delimiter in locale.alias and locale.dir
+ (Egbert Eich).
+ 199. Modified memory debugger script to retieve backtrace information
+ with an unmodified version of gdb (Egbert Eich).
+ 198. Modified memory debugger to print out backtrace of call where
+ a referenced freed pointer was once allocated (Egbert Eich).
+ 197. Several more fixes for memory leaks and several "referenced freed"
+ to keep memory debugger quiet (Egbert Eich).
+ 196. Fixed "referenced freed" memory debugger message in xf8_24bpp code
+ (Egbert Eich).
+ 195. Add a new rule for building DRI (client) modules, so that only the
+ relevant symbols are exported (#4454, Red Hat).
+ 194. Fixed several memleaks in PCI bus code (Egbert Eich).
+ 193. Added code to disable SIGIO when entering SETUP state and reenable
+ it when leaving SETUP state (Egbert Eich).
+ 192. Add type of option argument as comment to config file.
+ (xf86cfg might need some fixing) (Egbert Eich).
+ (Hopefully) fixed reordering of chips so primary comes first
+ (Egbert Eich).
+ 191. Fixed bug that caused server to crash when a DGA private colormap
+ was freed as miSprite still had a pointer to this colormap
+ (Egbert Eich).
+ 190. Fixed savage driver for altered vbe functionality (Egbert Eich).
+ 189. Moved bulk of generic VBE functionality from VESA driver into
+ the vbe module (Egbert Eich).
+ 188. Fixed some bugs in vesa driver (Egbert Eich).
+ 187. Fixed memleaks in parser code as well as several referenced freed
+ pointers which pollute output of memory debugger and obsucre debugging
+ (Egbert Eich).
+ 186. Fixed ChangeWindowAttributes() in cfb8_16 code (Egbert Eich).
+ 185. Moved Linux specific typedef from shared/xf86AXP.h to linux-specific
+ os-level code (Egbert Eich).
+ 184. Added option to int10 softbooter to POST even primary device.
+ 183. Fixed memory leak in linux int10 code (Egbert Eich).
+ 182. Modified vm86 trap code not to fail on a #LOCK prefix byte
+ (Egbert Eich).
+ 181. Fixed memory leak in posix_tty.c (Egbert Eich).
+ 180. Added support to generic driver to POST even primary devices
+ (Egbert Eich).
+ 179. Added support for more AXP chipsets that require sparse addressing
+ to bsd os level (Egbert Eich).
+ 178. Added missing symbols to C&T driver (Egbert Eich).
+ 177. Fixed problems with Xv code in C&T driver (Egbert Eich).
+ 176. Fixed a vertical and horizontal offsets on HiQV chips due to
+ non-"standard" handling of H/VBlankEnd registers (Egbert Eich).
+ 175. Removed code that sets a chipset into graphics mode when
+ saving/restoring fonts in standard vga code. This causes problems
+ on some trident chipsets (Egbert Eich). [EXPERIMENTAL!]
+ 174. Moved KGA code that handles the H/VBlankEnd code that overscans remain
+ invisible to separate functions. This way drivers have better control
+ over these registers.
+ 173. TGA driver fixes (Jay Estabrook).
+ 172. Moved option processing to allow VGAClock option to be processed
+ (Egbert Eich).
+ 171. Added option to swap heads on a matrox G400 dual head (Stefan Dirsch).
+ 170. Added handling of broken planemask support on different models of
+ matrox G100 cards (Egbert Eich).
+ 169. Fixed minor memory leak in ati driver (Egbert Eich).
+ 168. Fixed resource registration in TDFX driver (Egbert Eich).
+ 167. Set new modelines for Trident LCD modes (Egbert Eich).
+ 166. Fixed handling of PreEnd Control register on Trident (Egbert Eich).
+ 165. Fixed problem with Trident Blade Mono8x8Patterns (Egbert Eich).
+ 164. Fixed clock division for CyberBlade E4 (Egbert Eich).
+ 163. Removed last static symbols from Tseng driver (Egbert Eich).
+ 162. Fixed handling of ICS5341 RAMDAC under 24bpp (Egbert Eich).
+ 161. Fixed resource registration in rendition driver (Egbert Eich).
+ 160. Attempt to fix various other issues on rendition - driver remains
+ to be broken though (Egbert Eich)!
+ 159. Fixed false linear size for NeoMagic 2380 (Egbert Eich).
+ 158. Modified calulation of aperture size in NeoMagic driver to use the
+ available video memory instead of the map size (Egbert Eich).
+ 157. Added a delay to prevent rare cases of lockups when starting
+ X on NeoMagic 2160 (Miles Lane).
+ 156. Added DGA to Cirrus driver (Egbert Eich).
+ 155. Missing symbols added to Cirrus driver (Egbert Eich).
+ 154. Fixed acceleration on Alpine (Cirrus) driver. PIO and MMIO versions of
+ the accelerator driver now support the same functionality (Egbert Eich).
+ 153. Removed unneededed call to xfree() in ddc code (Egbert Eich).
+ 152. -
+ 151. Siliconmotion driver updates, including:
+ - Color change/flash at 8bpp when switch back to desktop in rotation
+ mode.
+ - System hangs when enabling rotation in 24-bpp.
+ - Overlay disappear in the virtual desktop when move the window.
+ - Mouse pointer doesn't work properly in panning modes under rotation.
+ - Garbage appears on desktop when click the Basic/Metal for the Theme
+ Selector.
+ - Added ZoomOnLCD option.
+ - Desktop changes color when panning in 24-bpp mode.
+ - CRT is off after exit X on DSTN 800x600.
+ - Screen broken occurs in X when enable Rotation on DSTN 800x600.
+ (#4463, Frido Garritsen).
+ 150. Include <time.h> in Xos.h to get struct tm (based on #4464, Mike Harris,
+ and H.J. Lu).
+ 149. Add 1400x1050 60Hz and 75Hz to the default built-in modes (#4462,
+ Tim Roberts).
+ 148. Create the default modes source file from the mode definitions on
+ systems that have perl (David Dawes).
+ 147. Alias memset and memcpy to xf86memset and xf86memcpy in the loader,
+ which should catch implicit compiler-generated calls to these functions
+ (David Dawes).
+ 146. Fix NV, Glint, ati and mga drivers for Alpha EV56 machines
+ (Jay Estabrook).
+ 145. Work around compiler-generated call to memcpy in the sis driver
+ (David Dawes).
+ 144. Fix the neomagic driver so that it saves/restores the palette (#4452,
+ Ken Hornstein).
+ 143. Fix a palette saving bug in the vgahw module (#4452, Ken Hornstein).
+ 142. Fix a typo in Xfbdev.man (#4446, Juliusz Chroboczek).
+ 141. Major updates to the savage driver, including:
+ - DDC support
+ - I2C support
+ - XVideo YUV overlay support for Savage/MX and Savage/IX
+ - DGA support
+ - yanks Ani Joshi's depth/bitsPerPixel patch for searching the BIOS
+ - fixes interactions with frame buffer and SVGATextMode consoles;
+ VT switching now seems quite reliable for almost everyone
+ - yanks unused options
+ - adds new options for hacks to deal with the status register hangs
+ - adds one special case memory configuration for Savage 4
+ - adds support for doublescan modes (320x240 works)
+ - adds LCD panel detection
+ - fixes a panning bug at depth 24 (panning must be to even pixels)
+ - adds a workaround for bugs in the latest ProSavage BIOSes
+ (#4445, 4448, Tim Roberts).
+ 140. Make 'X -configure' use the long monitor name when present in the
+ DDC info (#4444, Andrew C. Aitchison).
+ 139. Make glxinfo respect $DISPLAY (#4443, Meelis Roos).
+ 138. Fix TrueType font problems in 4.0.2 (#4439, Juliusz Chroboczek).
+ 137. Document the "DisplaySize" keyword in the XF86Config man page (#4438,
+ Andrew C. Aitchison).
+ 136. Update the i810 driver to set the UV vertical phase for the 4:2:0
+ planar formats to account for the spatial relationship between the
+ chroma and luma samples (#4436, Jonathan Bian).
+ 135. Updates for Cygwin support (#4433, Suhaib M. Siddiqi).
+ 134. Fix a bug in the fonts.sgml doc (#4432, Juliusz Chroboczek).
+ 133. Fix the xdpyinfo so that it will build when the XKB extension isn't
+ defined (#4422, Jim Gettys).
+ 132. Fix the xdm greeter so that it will build when the XKB extension isn't
+ defined (#4421, Jim Gettys).
+ 131. Only build setxkbmap when building the XKB lib support (based on #4420,
+ Jim Gettys).
+ 130. Improve the mga driver messages when the HAL module isn't available
+ (#4451, David Woodhouse).
+ 129. Add G450 support to the mga driver (#4416, Luugi Marsan (Matrox),
+ 4449, David Woodhouse).
+ 128. Mga driver updates, including HAL cleanups, add a Crtc2Ram option,
+ and merge with Matrox beta4 source (#4415, Antii Tapaninen, #4423,
+ Simon Hosie).
+ 127. Fix a rounding problem in the wacom driver that was causing some
+ position instability (#4417, Hannes Eriksson).
+ 126. Change Freetype2 compilation to pacify makedepend (Marc La France).
+ 125. Added changes to il (Hebrew) xkb keyboard map (#4459, Tzafrir Cohen).
+ Added new by (Belarusian) xkb keyboard map (#4460, Alexander Mikhailian).
+ Small additions to fixes A.272 to allow autorepeat control of MouseKeys
+ also in 'non-accelerated mode' (#4461, Ivan Pascal).
+ 124. Add ATI Rage 128 PD support (#4455, ISHIKAWA Mutsumi).
+ 123. Make modeline2c.pl script case-insensitive (#4453, Mike Harris).
+ 122. Change ATI driver to detect panel dimensions of non-PC systems using an
+ LT or LT Pro (Marc La France).
+ 121. Fix misdetection of sparse I/O PCI bases and handling of unassigned PCI
+ bases in ATI driver (Marc La France).
+ 120. Extend libc wrapper's emulation of gettimeofday() and add emulation of PC
+ and PC98 interval timers to int10 (Marc La France).
+ 119. An attempt at fixing the handling of unassigned PCI resources by
+ improving detection of them and forcing them to be relocated
+ (Marc La France).
+ 118. Make lndir ignore finder data files on Mac OS X (Matthieu Herrb).
+ 117. -
+ 116. -
+ 115. Undo s3virge changes in 4.0.2 for Xv support on ViRGE chipsets since
+ they caused problems with plain ViRGE cards. Xv is still supported
+ for the ViRGE DX (#4414, 4430, Kevin Brosius).
+ 114. Siliconmotion driver fixes:
+ - 24bpp corruption
+ - mouse cursor still showing after X-server shutdown
+ (#4413, Frido Garritsen).
+ 113. Change the Thai charset and locale description to a form agreed to
+ by some Thai developers (#4412, Chanop Silpa-Anan).
+ 112. [SECURITY] Fix temp files vulnerabilites in xman on systems with
+ mkstemp(). (Matthieu Herrb).
+ 111. Major improvement to the Xmaster UI on Mac OS X. (#4447, XonX team).
+ 110. 8 bit DAC support for the NVIDIA Riva-128 (Mark Vojkovich).
+ 109. Fix panning on Permedia3 (Alan Hourihane).
+ 108. Enable wsmouse support on OpenBSD/i386 (Matthieu Herrb).
+ 107. Xdarwin bug fixes and updates (#4440-4442, Torrey T. Lyons).
+ 106. ATI driver Sparc compile fix (David S. Miller).
+ 105. Implement BlockFills at 32bpp in the Permedia3 driver (Alan Hourihane).
+ 104. Ensure PCI retry is off for Permedia3, and fix an over by 1 error on
+ FIFO usage (Alan Hourihane).
+ 103. Prevent glint driver from Seg faulting if mode pool is empty
+ (Alan Hourihane).
+ 102. Add FIFOSize to glint driver for overriding of the FIFO depending on
+ the target chip being used (Alan Hourihane).
+ 101. Major updates to the GLINT driver.
+ - Add Dual-Headed Appian Jeronimo 2000 support (dual PM3's), it now
+ shares heads as per MGA driver for G4xx dual head boards.
+ - Faster Permedia3 WriteBitmap/WritePixmap accelerator functions.
+ - Fix Scanline acceleration routines when MAX FIFO is reached.
+ - Improved Gamma support.
+ - Upload cursor and cursor colours for pm2v/pm3 during vertical retrace,
+ which fixes r/b inversion and loss of video problems.
+ - Fix pm2v/pm3 text restoration problems.
+ - Re-arranged structure to accomodate multi-chips per screen.
+ - Removed dualmx files and incorporated changes into standalone versions
+ - Allow -configure to only configure VGA based Glint chips, works
+ around multichip boards (for now).
+ (Alan Hourihane).
+ 100. Add XaaNoWriteBitmap and XaaNoWritePixmap options to XAA (Alan Hourihane).
+ 99. Improve determination of primary adapter (Marc La France).
+ 98. Fix PPC xf86sym.c compile problems (Marc La France).
+ 97. Fix int10 option handling for drivers that call xf86CollectOptions()
+ before calling int10 (Marc La France).
+ 96. Properly detect unassigned MMIO address in ATI driver (Marc La France).
+ 95. Fix default compilation on Sparc/Solaris (Marc La France).
+ 94. Fix typo in Linux/Arm configuration (Marc La France).
+ 93. By default, don't build libGLU on libc5 systems (Marc La France).
+ 92. Fix HW cursor colors for pm2v/pm3 in the glint driver (Alan Hourihane).
+ 91. Rework the memory detection code for Permedia3, now correctly detects
+ boards which aren't 32MB (Alan Hourihane).
+ 90. Write ScanlineCPUToScreen, ScanlineImageWrite functions for Permedia3
+ which write directly to the FIFO, and remove obsolete functions
+ (Alan Hourihane).
+ 89. Fix ordering of writes in pm2v/pm3 ramdac functions in the glint driver,
+ thus fixing the R/B inversion problems (Jay Estabrook).
+ 88. Set the version strings in man pages dynamically (David Dawes).
+ 87. Remove the XF86_VERSION string from xf86Version.h, leaving just
+ the numerical values. All the version information is now derived
+ from that single set of values (David Dawes).
+ 86. [SECURITY] Fix temp vulnerabilities in Xaw/MultiSrc.c using the technique
+ in patch #4279 (Branden Robinson). Fix temp file vulnerability in
+ gccmakedep based on report from Alan Cox. Fix temp file vulnerability
+ in Imake.rules, InstallManPageAliases (Matthieu Herrb).
+ 85. Support vertical sub-pixel glyph rasterization in Xft
+ (Keith Packard)
+ 84. Allow xf86ClaimPciSlot to be called with a NULL GDevPtr, as it was
+ previously (Alan Hourihane).
+ 83. Fix clean rule in DRM build (Philip Willoghby).
+ 82. If MouseKeys is switched on, then the mousekeys autorepeat. (fixes
+ #272, Stephen Montgomery-Smith)
+ 81. Ensure Video is unavailable when no acceleration available in the
+ trident driver (Alan Hourihane).
+ 80. Implement a distclean make target (Marc La France).
+ NOTE: To correctly install this change, either `make Everything` or
+ `rm xmakefile; make World`.
+ 79. Preprocess all man pages to make sure that the references to pages
+ in sections that are platform-dependent are correct. Also fixed some
+ misc formatting problems found while doing that (David Dawes).
+ 78. Ensure client side version checking in 3D drivers for Rage128 and
+ Radeon chipsets (Alan Hourihane).
+ 77. Nv driver update to fix the cursor for double scan modes, and to
+ improve double scan mode handling in general (#4408, Csaba Halasz,
+ Jarno Paananen).
+ 76. Fix a twm segfault if it gets events for buttons > 5 (#4407, 4425,
+ Nathan Hand).
+ 75. Update the module subdirectory search list to include "multimedia/"
+ (#4405, Vladimir Dergachev).
+ 74. Small R6.5.1 merge update in Xlib (based on #4403, Bruno Haible).
+ 73. Updates to the xprop utility, including:
+ - Move to ANSI C, use const where possible.
+ - Print WM_NAME and WM_ICON_NAME properties in the locale encoding.
+ - Allow multiple "-remove" commands on the same command line.
+ - Better error message when "-remove" is applied to a font.
+ - New option "-set" that permits the changing of individual window
+ properties.
+ (#4402, Bruno Haible).
+ 72. Remove schumacher-clean compatibility aliases, since the fonts are
+ really ASCII and not iso8859-1 (#4401, Bruno Haible).
+ 71. Allow drivers to provide their own substitute for the xf86I2CWriteRead
+ function (#4399, Vladimir Dergachev).
+ 70. Cirrus driver updates, including:
+ - Add a call to fbPictureInit() in the Laguna driver.
+ - Fix warning (missing a symbol from VBE) when starting the Alpine
+ driver.
+ - Fix MMIO acceleration for the CL-GD5480
+ (#4395, Itai Nahshon).
+ 69. Fix Neomagic 2200 screen corruption (Egbert Eich).
+ 68. Disable RENDER extension support in the ATI(misc) driver when mibank
+ and/or shadowfb is used (Marc La France).
+ 67. Remove cfb & friends from the ATI driver (Marc La France).
+ 66. Some additional ATI PCI IDs (Marc La France).
+ 65. Make compilation of drivers produce the same object whether or not
+ DPMS and DGA extensions are being built. Partial changes to do the same
+ for RENDER (Marc La France).
+ 64. Ensure `make depend` goes through the same set of subdirectories as
+ `make all` does. Allows MakefileAdditions to contain depend rule(s)
+ (Marc La France).
+ 63. Move $(EXTRA_DEFINES) to the end of ALLDEFINES. Ditto for
+ $(CXXEXTRA_DEFINES) and CXXDEFINES. Allows easier overrides at the
+ subdirectory level (Marc La France).
+ 62. Add a pre-clean phase to `make World` if xc/xmakefile already exists
+ (Marc La France).
+ 61. Import X.Org's X11R6.5.1 (David Dawes)
+ 60. Change identification of Trident 8400(CyberBlade/i7) so that it is not
+ a Cyber chipset (integrated Desktop version) (Alan Hourihane).
+ 59. Use the wsmouse protocol in XFree86 -configure if wsmouse is available
+ (Matthieu Herrb, lha at stacken.kth.se).
+ 58. Sync Xdarwin with XonX version (#4428 Torrey T. Lyons):
+ - add a working WarpCursor
+ - add 15 bit pixel depth to the Quartz mode.
+ 57. New version of Xmaster, a Mac OS X application that controls the
+ X server (#4427, Torrey T. Lyons, Andreas Monitzer).
+ 56. Add external CRT support for the Rage 128 Mobility (Kevin Martin
+ and ATI).
+ 55. Radeon DRI fixes (VA Linux Systems).
+ - Re-enable freeing resources when the screen is destroyed (Kevin
+ Martin)
+ - Use screen-relative instead of window-relative coordiantes to
+ calculate the tiled depth buffer offset address (Kevin Martin)
+ - Fix texture upload at offset 0 bug. Quake 2 engine games use
+ TexSubImage to update lightmaps and the like, and we were
+ uploading the updates before the image had space in the texture
+ heap allocated to it. (Gareth Hughes)
+ - Add XF86Config file option to enable depth buffer moves (they
+ are disabled by default since they are excuciatingly slow)
+ (Kevin Martin)
+ - Enable bus mastering in PCI config space for those systems that
+ do not automatically have it enabled (Kevin Martin)
+ - Remove AGP_CNTL register programming -- it was a holdover from
+ the Rage 128 driver and is not needed on the Radeon (Kevin
+ Martin)
+ - Fix offscreen memory allocation calculation for textures (Kevin
+ Martin)
+ 54. Allow libGLU to be built (Craig Dunwoody, SGI, David Dawes,
+ Alan Hourihane).
+ 53. Import the GLU parts of ogl-sample.
+ 52. Add an imake control for determining when xload should be installed
+ set-gid (David Dawes).
+ 51. Add some imake controls for installing Xkb and app-defaults files
+ in the traditional location rather than under /etc/X11 (Red Hat does
+ that) (David Dawes).
+ 50. Add compressed man page functionality to the rules in Imake.rules,
+ so it should be usable on most platforms (David Dawes).
+ 49. Make acceleration work on the Trident Cyber9388 (Alan Hourihane).
+ 48. - Various small changes to accomodate Mac OS X support and fix a
+ problem people were having with uninitialized globals in X
+ libraries,
+ - Allow XFree86 to run on Mac OS X as a full screen client of
+ CoreGraphics,
+ - Add a Mac OS X application that controls the X server and feeds it
+ events when running on Mac OS X. Currently must be built by
+ ProjectBuilder (#4409, #4410, #4411, Torrey T. Lyons).
+ 47. Fix Mach64 Mono 8x8 Pattern acceleration (Marc La France).
+ 46. Experiment with setting the server's "vendor release" value from
+ the information in xf86Version.h, and modify xdpyinfo to show the
+ server version in an easily readable format (David Dawes).
+ 45. Fix 1bpp colour map in vgaHW (Marc La France).
+ 44. More IA64 loader fixes and make xf86sym.c compile again
+ (Michael Madore, Marc La France).
+ 43. Add missing symbols in vesa driver (Marc La France).
+ 42. Fix multihead pointer problem on Rage 128 (Mark Vojkovich).
+ 41. Resync with DRI CVS trunk (Kevin Martin, VA Linux Systems)
+ - Add Radeon 3D driver (Kevin Martin and Gareth Hughes)
+ - Improve Rage 128 3D driver support (Gareth Hughes)
+ - Add fast AGP read/drawpixels support in MGA driver (Keith Whitwell)
+ - Update DRI docs (Kevin Martin, Brian Paul)
+ - Fix various bugs (Keith Whitwell, Brian Paul, Kevin Martin)
+ 40. Rename fsinfo to xfsinfo to avoid a name clash with the fsinfo utility
+ in the Berkeley automounter amd (Matthieu Herrb).
+ 39. Invert NO_COMPILER_H_EXTRAS to prevent unintentional references to inx()/
+ outx() on the likes of SunOS (Marc La France).
+ 38. Change the os-support layer to only claim a bare minimum of I/O resources
+ rather than a larger estimate (Marc La France).
+ 37. Loader work: Fix handling of shared GOTs on IA-64 and Alpha's, and of
+ PLT and OPD entries on IA-64; Cleanup debug messages and #if testing
+ (Marc La France).
+ 36. Extensive int10 rework to address lockups, spontaneous reboots and tight
+ CPU loops on various architectures (Marc La France):
+ - Use intialised BIOS to softboot primary adapters on non-PC's;
+ - Fix endianness problems;
+ - Move stack into its own page to prevent overwritting interrupt vectors;
+ - Prevent (with a message) int10 from interfering with mainboard devices
+ (i.e. RTC, keyboard, speaker, chipset, etc.);
+ - Flesh out int 0x42 emulation on non-PC's;
+ - Emulate BIOS data area on non-PC's;
+ 35. Add missing symbols in i810 and sis drivers (Marc La France).
+ 34. Optionally disable, at compile time, loader bug workarounds in ATI driver
+ (Marc La France).
+ 33. Prevent the Rage 128 and Radeon drivers from initialising an adapter more
+ than once (Marc La France).
+ 32. Move support for >64kB BIOS'es from int10 into the os-support/bus layer
+ (Marc La France).
+ 31. When retrieving PCI BIOS'es, only use another PCI base when a previous
+ retrieval attempt fails (Marc La France).
+ 30. Temporary kludge to not consider any adapter as primary if more than one
+ candidate can be found (Marc La France).
+ 29. Make deleted mode messages less fearsome (Marc La France).
+ 28. Fix -configure to retrieve the correct set of options for ATI, C&T,
+ Cirrus and NeoMagic adapters (Marc La France).
+ 27. When removing PCI resource overlaps, always consider resources whose size
+ can be accurately determined, whether active or not (Marc La France).
+ 26. Real 4:2:0 YUV support for the Rage 128 (Mark Vojkovich).
+ 25. Xinerama support for Render extension (Keith Packard).
+ 24. Make some changes to the clock selection for trident driver
+ (Alan Hourihane).
+ 23. Switch savage driver to fb (+Render), correct maxHValue (Keith Packard).
+ 22. Add font property caching in Xft (Keith Packard).
+ 21. Xterm patch #150 (Thomas Dickey).
+ 20. Fix 24/8 Overlay support on Permedia2v and Permedia3 chipsets
+ (Alan Hourihane).
+ 19. Add CyberStretch option to the trident driver for Cyber chipsets that
+ allows Graphics modes to stretch to the full display (Alan Hourihane).
+ 18. Xterm patch #149 (#4351, Thomas Dickey).
+ 17. Fix Y offsets passed to pixmap cache when DRI disabled in R128 driver
+ (Alan Hourihane).
+ 16. Add BlockFills to Permedia3 (Alan Hourihane).
+ 15. Fix pixmap cache when more than 16MB of memory on Permedia 3
+ (Alan Hourihane).
+ 14. Fix colourmap problems at depth15/16 on Permedia3 (Alan Hourihane).
+ 13. Bump xc/programs/Xserver/GL/dri (libdri.a) version to 3.1.0 to
+ correspond with the DRI backbuffer rewrite, and modify drivers accordingly
+ (Alan Hourihane).
+ 12. Enable ImageWrites on Rage128 and Radeon (Alan Hourihane).
+ 11. Add DRIMoveBuffersHelper function to prevent code duplication in
+ the drivers (Mark Vojkovich).
+ 10. Bug fixes for endianness problems in Permedia3 driver
+ (#4404, Sven Luther).
+ 9. Add Appian Jeronimo 4x8Mb (PM2v) support to the glint driver
+ (Alan Hourihane).
+ 8. Add render support to i810 driver (Keith Packard with testing
+ by Christien Bunting)
+ 7. Switch misc (non-radeon, non-r128) ATI driver to fb (Keith Packard).
+ 6. 3DFX driver changes (Mark Vojkovich).
+ - fix some DGA issues.
+ - 2D and 3D now share offscreen memory (much faster 2D now).
+ - rewrite Xv support to use the video overlay.
+ - add new Options "VideoKey" and "ShowCache".
+ 5. Change xterm from simple face name to full Xft font name so
+ that options can be provide (like minspace) (Keith Packard)
+ 4. Add UTF-8 support to Xft (Keith Packard)
+ 3. Add font/face sharing and a minumum vertical space option
+ to Xft (Keith Packard)
+ 2. Fix 64 bit DGA bug (Mark Vojkovich).
+ 1. Rewrite DRI back buffer handling to minimize the impact on 2D
+ performance (Mark Vojkovich).
+ 0. Fix incorrect driverName fields in the cyrix, i810 and sis drivers.
+ This was causing 'XFree86 -configure' to get the driver name wrong
+ (David Dawes).
+
+XFree86 4.0.2 (18 December 2000)
+1211. Fix a problem introduced recently when using the "ps/2" protocol for
+ mice on FreeBSD (David Dawes).
+1210. Disable DRI for tdfx when there's insufficient memory for textures
+ (Alan Hourihane).
+1209. Rename the R6.4 INSTALL and RELNOTES docs at the top level of the source
+ tree, and add a copy of the XFree86 RELNOTES.
+1208. Add Solaris 8/x86 key mappings for some more jp106 keys.
+1207. Fix wacom man page to match the driver (based on #4398, Akio Morita).
+1206. Install the iso8859-13 encoding file (#4397, Nerijus Baliunas).
+1205. Misc doc-related updates.
+
+XFree86 4.0.1Zc (15 December 2000)
+1204. Fix an Xlib memory overrun when the Xutf8TextPropertyToTextList function
+ is used in a unibyte locale (#4394, Bruno Haible).
+1203. Fix the yen/backslash keys for Solaris 8/x86 with Japanese 106 keyboards
+ (based on #4393, Takaaki Nomura).
+1202. Fix type mismatches in the r128 DRI driver on Alpha platforms (#4392,
+ Gareth Hughes).
+1201. Fix build on Japanized version of Solaris 8 for x86 (#4390,
+ Takaaki Nomura).
+1200. Remove some old XtOffset magic for the arm that affects building
+ with gcc (#4388, Keith Packard).
+1199. Release notes updates (David Dawes, Egbert Eich, Mark Vojkovich,
+ Robin Cutshaw, Keith Packard, Alan Hourihane, #4391, Kevin Brosius).
+1198. Revert the tdfx driver to something functionally close to the
+ last known working version (4.0.1g) (David Dawes).
+
+XFree86 4.0.1Zb (14 December 2000)
+1197. New fonts document (#4386, 4387, Juliusz Chroboczek).
+1196. Status doc update for Trident (Alan Hourihane).
+1195. Update the R6.4 INSTALL and RELNOTES docs to include references at
+ the top to the XFree86-specific docs (David Dawes).
+1194. Make it possible to install platform-specific man pages with most
+ ix86 builds (David Dawes).
+1193. Add a short man page for the newport driver, update it's sample config
+ file, and have the driver check user-supplied parameters (#4385,
+ Guido Guenther).
+1192. Missing part of fix for FreeBSD sysmouse support (#4317, from FreeBSD
+ ports collection).
+1191. Trident driver bug fixes (Alan Hourihane).
+1190. Make it possible to install hardcopy specs docs that we can't generate
+ from source (David Dawes).
+1189. Set the HasPerl default correctly for LynxOS (#4384, Thomas Mueller).
+1188. Lots of Status doc updates (#4383, Branden Robinson).
+1187. Update some DebianMaintainer defaults in linux.cf (#4380,
+ Branden Robinson).
+1186. Fix a segfault in the font path verification code in xfs (#4379,
+ Charles C. Fu).
+1185. Rework and document the various MatroxHal imake parameters, and
+ build in support for the mga_hal module by default for loadable server
+ builds (David Dawes).
+1184. Fix sis driver corrupt display with more than 8MB of video memory (#4378,
+ Can-Ru Yeou).
+1183. Fix xf86cfg build problem on systems that don't come with snprintf
+ and/or regex (based on #4361, Thomas Mueller).
+1182. Fix siliconmotion driver screen restoration when a graphics vesafb mode
+ is selected during boot up (#4377, Frido Garritsen).
+1181. Install and RELNOTES updates for Darwin (#4375, 4376, Torrey T. Lyons).
+1180. s3virge patch to get Xft/Xrender working (#4374, Kevin Brosius).
+1179. Improve aperture driver related error messages on OpenBSD
+ (Matthieu Herrb).
+1178. Workaround for IA-64 loader bug (Marc La France).
+1177. Fix recognition of valid depth/fbbpp combinations in ATI driver
+ (Marc La France).
+1176. Fix 1bpp in ATI driver (Marc La France).
+1175. Fix ATI DPMS support on panels by mimicking BIOS behaviour more closely
+ (Marc La France).
+
+XFree86 4.0.1Za (12 December 2000)
+1174. Set defaults for Mesa's x86 CPU-specific asm options, and make it
+ possible to build with MMX disabled for systems with older assemblers
+ (David Dawes).
+1173. Fix some R128 DRI bugs:
+ - Fix depth span functions (was causing rendering errors for windows
+ not at (0,0)).
+ - Don't use 32-bit depth buffers since they're not supported by Mesa.
+ - Use subpixel offsets to fix coordinate rounding errors.
+ (#4373, Gareth Hughes).
+1172. Reinstate the AllTarget for the rule to make html man pages
+ (David Dawes).
+1171. Build all modules on Linux/mips, fixing Xnest build (#4372,
+ Guido Guenther).
+1170. Update Permedia 3 README, Cards file, and glint section in the Status
+ doc (#4371, Sven Luther).
+1169. Fix depth passed to the BIOS in the savage driver (affects depth 15)
+ (#4369, Ani Joshi).
+1168. Update fbdev man page (#4368, Michel Daenzer).
+1167. Fix a problem with 32-bit depth buffers when using indirect rendering,
+ by not advertising them in the mga driver (#4367, Brian Paul).
+1166. Update man page version strings, and convert some server/XFree86 man
+ pages to cpp-processed files to make the references to pages in
+ system-dependent sections correct (David Dawes).
+1165. Update the release notes for the i18n and Unicode support (#4366,
+ Bruno Haible).
+1164. Document most of the environment variables that can influence libX11
+ and libXt in the 'X' man page (#4365, Bruno Haible).
+1163. Update the ICCCM spec document to relfect the selection targets currently
+ used in XFree86 (#4364, Bruno Haible).
+1162. Update the CTEXT spec document to reflect part of the current
+ practice in XFree86 (#4363, Bruno Haible).
+1161. Augment SpecsDocDirs to reflect additional docs that have XFree86 changes
+ (#4362, Bruno Haible).
+1160. Fix Xv library references in the xvinfo Imakefile (#4361,
+ Thomas Mueller).
+1159. Fix a signed/unsigned error in the calculation of 16-bit displacements
+ in x86emu (#4359, Tim Roberts).
+1158. Fix "noaccel" option in the tdfx driver when building without DRI
+ (David Dawes).
+1157. Add Darwin documentation (Torrey T. Lyons).
+1156. Add Darwin bindist files and update Xinstall.sh (Matthieu Herrb).
+1155. Update bindist files for NetBSD 1.5 ELF (Matthieu Herrb).
+1154. Add DGA support to I128 driver (Robin Cutshaw).
+
+XFree86 4.0.1Z (8 December 2000)
+1153. Flesh out the wacom man page (#4358, Frederic Lepied).
+1152. Fix incorrect documentation for xf86UnMapVidMem() in README.OS-lib
+ (#4357, Guido Guenther).
+1151. Update the newport driver to use the map/unmap functions provided by
+ the os-support layer (#4356, Guido Guenther).
+1150. Bugfix to xf86UDelay() (Egbert Eich).
+1149. Added a sanity check to pciConvertRange2Host() (Egbert Eich).
+1148. Added more log messages to Linux APM code (Egbert Eich).
+1147. Added a sanity check to xf86ConfigPciEntity() (Egbert Eich).
+1146. Resync with DRI CVS trunk (tdfx driver updates) (Daryll Strauss).
+1145. Add -textmode mode option for xf86cfg, to run a ncurses interface, and
+ add the "expert" interface, to provide more control over the config file.
+ Updates to vesa driver, removed debug messages and fixed problem with
+ console restoration in some S3 cards.
+1144. Merge tdfx 3D driver code (VA Linux).
+1143. Add support PPC support on Rage 128 and disable Int10 for PPC on
+ Rage 128 (until the bug in PPC Int10 support is fixed) (Kevin Martin).
+1142. Install an alternative fonts.alias file that references the UCS-encoded
+ fonts on systems without Perl (David Dawes).
+1141. Add CyberShadow Option back into Trident driver (Alan Hourihane).
+1140. Resync with DRI CVS trunk, including:
+ - SSE support updates
+ - DRI-specific full screen mode
+ - Reduce the minimum space required for 3D on the Rage 128
+ (VA Linux).
+1139. Fix a memory leak in the UTF-8 <--> CompoundText converter (#4354,
+ Bruno Haible).
+1138. Add support for the selection target UTF8_STRING to libXaw (#4353,
+ Bruno Haible).
+1137. Make Xlib's CompoundText converter ISO-2022 compliant (#4352,
+ Bruno Haible).
+1136. Fix 2 wacom driver bugs (core dump on VT switching, and USB support)
+ (#4350, Frederic Lepied).
+1135. Update the ClearlyU fonts to 1.8b. Changes include:
+ - Cleaned up the Arabic glyphs so they don't look quite so juvenile.
+ - Squared up the Hebrew glyphs so they match the style of the other
+ scripts better.
+ - Added many of the basic Hangul glyphs.
+ - Brought the Cyrillic block in line with Unicode 3.0 and moved the
+ extra glyphs into the PUA font in the 0xE4XX range.
+ (#4349, Mark Leisher).
+1134. Update the savage driver to all I/O via MMIO, and add DPMS support
+ (4347, Ani Joshi).
+1133. Change xfs to drop privs after daemonising so that the pid file can
+ be written (#4346, Frederic Lepied).
+1132. Miscellaneous fixups to the trident driver (Alan Hourihane).
+1131. Add Xv support to the trident driver. Works for Blade and Image series
+ chips, but zooming currently doesn't work on Image series.
+ (Alan Hourihane).
+1130. Don't perform a software reset on the Graphics Engine for Trident
+ Blade3D's and CyberBlade's (Alan Hourihane).
+1129. Fix typo in int10 for IA-64's (Marc La France).
+1128. Make PCI bridge information in the log more accurate (Marc La France).
+1127. Update ATI docs (Marc La France).
+1126. Another getValidBIOSBase() fix (Marc La France).
+1125. If the loader server dies from a signal during initialisation, print a
+ list of undefined symbols (Marc La France).
+1124. Move Alpha MMIO definitions from xf86_OSproc.h to compiler.h
+ (Marc La France).
+1123. Change update.docs rule for shadow tree friendliness (Marc La France).
+1122. Don't reference libc wrapper names directly in the newport driver
+ (David Dawes).
+1121. Fix the fr_CH xkb Macintosh symbols file (#4345, Olaf Hering).
+1120. Revert the Estonian_Estonia.1257 change in patch #4297 because
+ windows-1257 is a closer match to iso8859-13 than iso8859-15.
+ Also add entries for the et_EE.ISO8859-1 locale (while not perfect for
+ Estonian, it is commonly used) (#4344, Ville Hallik).
+1119. Change name of long Unicode keysyms from 6 to 8 hex digits, which
+ matches conventional usage better (#4343, Ivan Pascal).
+1118. Make XF86VidModeSetViewPort() actually set the viewport to the
+ X and Y coordinates specified as opposed to always setting it to (0,0)
+ (#4342, Joe Moss).
+1117. Work around some build problems on SVR4.0 (#4341, Satoshi Kimura).
+1116. Compose characters for the Macedonian UTF-8 locale (#4338,
+ Damjan Georgievski).
+1115. Fix build problems with the wacom driver on Linux 2.4 when building
+ a static server (Frederic Lepied, David Dawes).
+1114. Changed name of server binary to call by xf86cfg back to "XFree86
+ (Egbert Eich).
+1113. Modified handling of memory alloctaion in TDFX driver (Egbert Eich).
+1112. Attempt to fix the 'UseModes' directive in the Monitor section
+ (Egbert Eich).
+1111. Added debugging output for BIOS base address search (Egbert Eich).
+1110. Changed neomagic driver to treat disable stretching for each mode
+ individually (Egbert Eich).
+1109. Removed '-traditional' from cpp rule for makedpend. Required for
+ new glibc header files (Ruediger Oertel).
+1107. Fix to make SuperProbe build again on ia64 (Andreas Schwab).
+1107. Attempt to fix int10 (Egbert Eich).
+1106. Modified blitter busy test to use the MMIO mapped registers on chips
+ > CT69000 (Egbert Eich).
+1105. Attempt to improve dga support in C&T driver (Egbert Eich).
+1104. Moved ppc_flush_icache to compiler.h - hope this fixes build problems
+ (Egert Eich).
+1103. changed cirrus driver to us fb instead of cfb (Egbert Eich).
+1102. Modularized HALlib for mga driver (Egbert Eich).
+1101. Added DGA support to tseng driver (Rainer Keller).
+1100. Added "framebuffer" bus type allowing resource control to take place
+ outside of the server (Egbert Eich).
+1099. Added turkish keyboard layout (Togan Muftuoglu).
+1098. Fix Cyber9397/DVD acceleration problem (Alan Hourihane).
+1097. Resync with the DRI CVS trunk.
+1096. Fix alot of Rage 128 Xv bugs (Mark Vojkovich).
+1095. Fix XKB symbols for Swedish Macintosh keyboards (#4337, Olaf Hering).
+1094. Disable DRI on PPC (#4337, Olaf Hering).
+1093. Suppress xf86ReadBIOS debugging messages for BSD (#4336, Takaaki Nomura).
+1092. Silicon Motion driver update, includes bug fixes (#4335,
+ Frido Garritsen, Silicon Motion, Inc.).
+1091. Updates to the dumpkeymap utility and its documentation (#4323,
+ Eric Sunshine).
+1090. Enable 3D support for Rage 128 Mobility chips (Kevin Martin).
+1089. Add clip rectangles support to Render extension, Xrender and Xft.
+ Make Xrender and Xft usable from c++.
+ Fix a bunch of compiler warnings in Render extension code
+ (Keith Packard)
+
+XFree86 4.0.1h (4 December 2000)
+1088. Fix key mapping for the '\' key on GB keyboards in Solaris 8.
+1087. Status doc updates for Neomagic an NVIDIA (#4334, Andrew C. Aitchison,
+ Mark Vojkovich).
+1086. Updated Rage 128 DRI support from the DRI CVS (Gareth Hughes, VA Linux).
+1085. -
+1084. Bump the minor revisions of libXmu (UTF8_STRING) and libX11
+ (Xutf8LookupString).
+1083. Fixes for all known bugs in the CompoundText parser and generator,
+ including:
+ * While adding a charset:
+ - Adding a charset with two different escape sequences (e.g.
+ ISO-8859-14) led to broken behaviour of the converter. Moreover
+ the second added would have priority over the first added.
+ - If an invalid escape sequence was detected by _XlcParseCharSet, it
+ was still used when generating compound text.
+ - Extended segment charsets with varying number of bytes per character
+ were treated like those with 1 byte per character.
+ - _XlcAddCT failed to copy its ct_sequence argument, thus leading to
+ bugs when this argument was a dynamically allocated string.
+ - Missing detection of different charsets having the same escape
+ sequence.
+ * Parsing Compound Text:
+ - The functions _XlcParseCT and _XlcGetCTInfo did not perform range
+ checks on the strings being parsed. Danger of core dump through
+ out-of-bounds string access if a malicious client provides malformed
+ text.
+ - Builtin extended segment charsets were not recognized because the
+ strncmp in _XlcGetCTInfo was returning false most of the time, due
+ to the embedded length bytes.
+ - Extended segment charsets in general would not be deactivated after
+ the specified number of bytes.
+ - In _XlcCheckCTSequence, extended segments with invalid embedded
+ length bytes would lead to out-of-bounds string accesses as well.
+ - Unrecognized escape sequences did not lead to a return value > 0.
+ - Left-to-right and right-to-left indicators (starting with 0x9b) were
+ just ignored, without leading to a return value > 0.
+ - If the source string was larger than the intermediate buffer,
+ multibyte characters could be split into pieces, leading to
+ conversion errors.
+ * Generating Compound Text:
+ - The length embedded in an extended segment prefix was always wrong.
+ - Long strings could give rise to extended segments with a length that
+ doesn't fit in the allowed 14 bits.
+ - After an extended segment, GL or GR designators would unnecessarily
+ be repeated.
+ - Bytes in the range 0x81..0x88, 0x8b..0x9a, 0x9c..0x9f in multibyte
+ encodings could not be output, would be thrown away.
+ - Byte 0x9b could not be output in the UTF-8 charset.
+ * udcInf.c was generating invalid Compound Text (invalid length in
+ extended segment).
+ * lcConv.c: If in the indirect converter, the first step led to no
+ output, the second step would still be called, possibly leading to
+ out-of-bounds accesses.
+ * lcUTF8.c: had knowledge about JISX0208.1983-0 but not about
+ JISX0208.1990-0.
+ (#4333, Bruno Haible).
+1082. Fix documentation for XSetOMValues() (#4332, Bruno Haible).
+1081. Fix namespace polution in <X11/Xlib.h> introduced with patch #4293
+ (#4331, Bruno Haible).
+1080. Fix a bug in the newly introduced Xutf8LookupString() function that
+ loses input not representable in the locale encoding (#4330,
+ Bruno Haible).
+1079. Avoid four new gcc warnings about const in lcUTF8.c introduced by
+ patch #4293 (#4329, Bruno Haible).
+1078. Fix some additional cases of confusing local typedef for wchar_t
+ (#4328, Bruno Haible).
+1077. Fix some round-trip conversion errors in COMPOUND_TEXT -> UTF8_STRING ->
+ COMPOUND_TEXT due to wrong tables introduced by patches #4214, 4215
+ (#4327, Pablo Saratxaga).
+1076. Cygwin update for building Xrender DLL (#4326, Suhaib M. Siddiqi).
+1075. Fix an undefined SUBDIRS in xc/lib/GL/mesa/src/drv/Imakefile when
+ compiling on something other than x86, alpha or sparc (#4325,
+ Brian Paul).
+1074. Don't have the neomagic driver disable stretching when a mode that
+ fills the panel is selected (#4324, Andrew C. Aitchison).
+1073. Fix a bug in Xlib's _XimLocalMbLookupString() that causes a crash when
+ a zero keycode keypress event is received (#4322, HIBINO Kei).
+1072. NetBSD doesn't have perl in its default install (Matthieu Herrb).
+1071. Add Xft support to xditview with #ifdefs (Keith Packard)
+1070. Add a MIT-MAGIC-COOKIE-1 generator to startx for NetBSD 1.5 and OpenBSD
+ and FreeBSD and make mkcookie support more generic (Matthieu Herrb).
+1069. Update OpenBSD and NetBSD docs (Matthieu Herrb).
+1068. Clean up r128_video.c again (Marc La France).
+1067. Fix ATI clock generator recognition when an adapter BIOS cannot be
+ retrieved (Linus Torvalds).
+1066. Fix int10 and ATI driver for video BIOSes larger than 64kB
+ (Marc La France).
+1065. Change xf86MatchDevice() to initialise its return pointer and clean up
+ drivers accordingly (Marc La France).
+1064. Fix for bug in new imConv.c (#4318, Ivan Pascal).
+1063. Fix for FreeBSD sysmouse support (#4317, from FreeBSD ports collection).
+1062. Enable the ru_SU local entries for FreeBSD (based on patch from FreeBSD
+ ports collection).
+1061. Driver for the S3 Savage family of chips (#4315, 4316, 4319-4321,
+ Tim Roberts).
+1060. Add xkb definitions for the Logitech cordless keyboard (#4314,
+ Michel Goraczko).
+1059. Add support for "unicode keysym" to XKeysymToString() and
+ XStringToKeysym() (#4313, Ivan Pascal).
+1058. SiS driver updates, including:
+ - Performance tuning for sis630
+ - Support XV extension for sis630
+ - Support Chrontel TV for sis630
+ (#4312, Can-Ru Yeou).
+1057. Fix Xrender library to handle strings > 254 chars long.
+ Change Xrender and Xft interfaces to use 'unsigned int'
+ instead of 'unsigned long' for 32-bit glyph values.
+ (Keith Packard)
+1056. Fix neomagic driver mangled acceleration test (#4309, 4310,
+ Chip Salzenberg).
+1055. Add a rudimentary driver for the SGI Indy's newport cards (only
+ 8-bit and non-accelerated so far) (#4308, Guido Guenther).
+1054. Fix a bug in rman that is provoked by the new dumpkeymap man page
+ (David Dawes).
+1053. Updates to the dumpkeymap utility, and add documentation (including
+ a man page) (#4307, Eric Sunshine).
+1052. Add -version and -showconfig options to the Darwin Xserver, and print
+ the usual "XFree86" banner message (#4306, Torrey T. Lyons).
+1051. Fix i810 crash when running XFree86 -configure (#4305, Ryan Drake).
+1050. Linux APM fix, which fixes a problem that shows up with the neomagic
+ driver after an APM suspend (#4304, 4311, Chip Salzenberg).
+1049. Correct maximum ranges for Wacom IV devices (#4303, Frederic Lepied).
+1048. Add preliminary support for USB input devices under Linux (wacom
+ driver (#4303, MATSUMURA Namihiko).
+1047. Locale fixes/cleanups, including:
+ - Cleanup garbage in XLC_LOCALES.
+ - Add "use_stdc_env' to locales where it was absent.
+ - Move non-standard charset descriptions from the lcCT.c table to
+ the XLC_LOCALE files.
+ (#4302, Ivan Pascal).
+1046. Make sure the correct "driverName" string is used in xf86Configure.c.
+1045. Fix some i810 driver problems when too little videoRam is specified
+ (David Dawes).
+1044. Fix an i810 driver bug that prevents the DRI from being enabled
+ after a server reset (Jeff Hartmann).
+1043. Add a "dri" config file option to the i810 driver that can be used
+ to enable/disable the DRI (no other method works for statically
+ linked servers) (David Dawes, from VA's 7.0.1).
+1042. Update the i810 driver to check the max available GART memory
+ (Jeff Hartmann, David Dawes, from VA's 7.0.1).
+1041. Resync DRI code/drivers with the DRI CVS (VA Linux). Includes
+ 3dfx driver updates (Daryll Strauss).
+1040. Fix a couple of clipping problems on the Trident CyberBlade/Blade3d
+ chipsets (Alan Hourihane).
+1039. Fix a couple of Alpha related issues (Jay Estabrook).
+1038. Change Xft interface (again) to use new XftColor datatype for
+ colors instead of XRenderColor. xterm and x11perf updated to
+ match. (Keith Packard)
+1037. Fix an i810 init problem that resulted in the fallback to 2D failing
+ for one case where there's insufficient memory to enable the DRI
+ (David Dawes, from VA's 7.0.1).
+1036. Add support for printing a vendor-specific version string in the
+ X server startup messages (David Dawes, from VA's 7.0.1).
+1035. Xwd workaround for a gcc bug (Red Hat's XFree86-4.0.1-xwd-gcc-workaround
+ patch).
+1034. Fixes for sparc drivers, mostly to prevent accessing the hardware
+ when the server doesn't have control of the VT (Red Hat's
+ XFree86-4.0.1-ffb patch).
+1033. Use OS-provided interface for accessing PCI config space on Linux/ia64
+ (based on Red Hat's XFree86-4.0.1-ia64-pci patch).
+1032. Use AsmDefines when processing the Sparc assembler code for cfb
+ (based on Red Hat's XFree86-4.0-sparc-asmflags patch).
+1031. Add PAM authentication to the X server (based on Red Hat's
+ XFree86-4.0-Xwrapper patch).
+1030. Add Slovenian and Romanian entries to XKB's keymap/xfree86 file
+ (Red Hat's XFree86-4.0-si_xkb patch and XFree86-4.0-ro_xkb.patch).
+1029. Fix for PAM support in xdm SessionExit() (Red Hat's
+ XFree86-4.0-pamsession patch).
+1028. XlibInt.c patch to avoid buffer overflow (Red Hat's
+ XFree86-3.3.6-fixemacs patch).
+1027. Updates to xfs from Red Hat and Debian, including:
+ - command line options to make xfs drop it's root privs (-droppriv
+ and -user) - command line options to make xfs start as a daemon,
+ and a build option to make this the default.
+ - don't let a port option in the config file override the -port
+ command line option
+ - cleanup/fix syslogging
+ (based on #4253, Topi Miettinen, Debian, and Red Hat's
+ XFree86-4.0-xfsredhat patch).
+1026. Support for startx to set up the Xauth when starting an X server
+ (based on Red Hat's XFree86-4.0-startx_xauth patch).
+1025. Fix an unaligned access on Alpha with the tdfx driver (Jay Estabrook).
+1024. Add detection for CyberBlade/Ai1 Socket A chipsets (Alan Hourihane).
+
+XFree86 4.0.1g (29 November 2000)
+1023. Fix small bug in lcGeneric.c (#4301, Ivan Pascal).
+1022. Rewrite Xft library for Render extension/core text and font management
+ Change xterm to use new interface (Keith Packard).
+1021. s3virge driver updates, including Xv fixes for the ViRGE DX, disable
+ GX2 color expansion until it's stable, GX2 Xv code (not enabled or
+ working yet) (#4299, Kevin Brosius).
+1020. Siliconmotion driver (#4298, Frido Garritsen, Silicon Motion, Inc.).
+1019. Fix Estonian_Estonia.1257 entry in locale.alias (#4297, 4300,
+ Nerijus Baliunas).
+1018. New Lithuanian XKB map (#4296, Nerijus Baliunas).
+1017. Fix a problem with the "xtt" font module introduced with recent
+ changes to the "freetype" module (#4295, ISHIKAWA Mutsumi).
+1016. Fix the return value for the "indirect" converter in Xlib (#4294,
+ Bruno Haible).
+1015. ANSI C cleanup of Xlib locale core code (#4293, Bruno Haible).
+1014. Optimize the i18n support for parsing resource files for the unibyte
+ locales, and clean up pre-ANSI-C-isms and warnings (#4292, Bruno Haible).
+1013. Enhance the CompoundText <-> UTF-8 converter so that it understands
+ the BIG5 encoding scheme used by Emacs (#4291, Bruno Haible).
+1012. Fix documentation and implementation of _XlcCompareISOLatin1 and
+ _XlcNCompareISOLatin1 (#4290, Bruno Haible).
+1011. Add new Unicode-based APIs for internationalized text for Xlib (#4289,
+ Bruno Haible).
+1010. Fix a minor Mesa lighting bug (#4288, Brian Paul).
+1009. Fix the glide driver's resolution of symbols from the glide library
+ (#4281, Pontus Lidman).
+1008. Fix X server stalling forever with local font servers on Linux 2.4
+ kernels (#4280, Branden Robinson).
+1007. Improve temp file handling in the Xaw library (#4279, Branden Robinson).
+1006. Add support for Rage 128 RG (#4277, Michael Mattice).
+1005. Modify XimGetCharCode() to use conversion from keysym to UCS and then
+ from UCS to the appropriate charset specified in the locale description
+ (#4276, Ivan Pascal).
+1004. Allow Unicode fonts to be used as UTF-8 locale native fonts (#4275,
+ Ivan Pascal).
+1003. Fix abnt2/br XKB config (#4274, Paulo Cesar Pereira de Andrade).
+1002. Let the Darwin X server build on pure Darwin as well as Mac OS X systems
+ (#4273, Torrey T. Lyons).
+1001. Patch to allow xdm to build on Darwin (#4273, Torrey T. Lyons).
+1000. Fix parser not dup'ing a string (#4272, Paulo Cesar Pereira de Andrade).
+ 999. Improve direct fifo writes for the glint/permedia3 pixmapwrite hook
+ when using FIFO disconnect (#4271, Sven Luther).
+ 998. Fix a sprite problem with the "xwin" server (#4269, Suhaib M. Siddiqi).
+ 997. Fix a confusing local typedef for "wchar_t' in xc/lib/X11/lcUTF8.c
+ (#4268, Bruno Haible).
+ 996. Allow ProjectVar to override "/var" when set (based on #4266,
+ Bruno Haible).
+ 995. Rework Trident Blade/CyberBlade acceleration (Alan Hourihane).
+ 994. Make the CyberBlade/e4 (aka 9540) work (Alan Hourihane).
+ 993. Updates to Big5 encodings for the TrueType font backends (#4265,
+ Jacky Bryant).
+ 992. Fixes for Thai (th_TH) locale support in Xlib (#4264,
+ Theppitak Karoonboonyanan)
+ 991. Fix a segv in Xnest caused by overflowing the pixmap formats array
+ (based on #4262, Matthieu Herrb).
+ 990. Fix an xdm problem that prevents the chooser from working (#4261,
+ Matthieu Herrb).
+ 989. Update the Cards file (#4260, Paulo Cesar Pereira de Andrade).
+ 988. Update Macedonian xkb symbols, and add mk_MK.utf8 to locale.alias
+ (#4258, 4259, Damjan Georgievski).
+ 987. Safe tempfile handline for imake's probing of glibc version (based on
+ #4257, Colin Phipps).
+ 986. Fix typo in dvorak xkb symbols file, plus white space cleanup (#4256,
+ Branden Robinson).
+ 985. Fix typo in server startup message (#4255, Branden Robinson).
+ 984. Make XOpenDisplay() bail out if the server claims that its vendor
+ string is > 256 in length (#4254).
+ 983. Add some useful default key bindings for the xdm login widget (#4252,
+ Branden Robinson).
+ 982. Change the default xdm Xaccess file to not allow any connections
+ (#4252, Branden Robinson).
+ 981. Set the default glyph caching mode to "CACHE_16_BIT_GLYPHS"
+ (#4251, Branden Robinson).
+ 980. Make the X server use the XAUTHORITY environment variable (if set)
+ when the -authfile command line flag isn't given (#4250,
+ Branden Robinson).
+ 979. Add Debian-specific settings to linux.cf (#4249, Branden Robinson).
+ 978. Rename Trident Cyber9540 to CyberBlade/e4 and make appropriate
+ changes in driver (Alan Hourihane).
+ 977. Fix Trident Cyber series to only detect SDRAM (Alan Hourihane).
+ 976. Make xf86SoundKbdBell() available to modules (for citron driver)
+ (Marc La France, #4270, Frederic Lepied).
+ 975. Fix glide driver's check for glide library presence (Marc La France).
+ 974. Add missing symbol references in r128 and s3virge drivers
+ (Marc La France).
+ 973. Fix int10 debugging and reading in all segments between 0x0C0000 and
+ 0x0F0000 (Marc La France).
+ 972. Fix typo in imake.c (Marc La France).
+ 971. Turn off SGRAM optimization for Trident Blade chips, causes some
+ problems. (Alan Hourihane).
+ 970. Ignore various ".stab.*" sections for Solaris (Marc La France).
+ 969. Fix ENXIO errors on Linux BIOS retrievals by removing restriction on
+ several OSes that xf86ReadBIOS()'s Base be page-aligned (Marc La France).
+ 968. Disable change 873. It causes device/monitor mismatches
+ (Marc La France).
+ 967. Change linux/int10 to intercept signals generated by the vm86() syscall
+ rather than killing the server (Marc La France).
+ 966. Reinstate DG/UX mmap() bug work-around in int10 (Marc La France).
+ 965. Rage128 and Radeon fix for -configure (Marc La France).
+ 964. Fix int10 woes with retrieving PCI BIOSes (Marc La France).
+ 963. Allow modules to intercept signals that would otherwise kill the server
+ (Marc La France).
+ 962. Fix static Xvfb server build (Marc La France).
+ 961. Some warning fixes (Marc La France).
+ 960. Rage128 and Radeon #include changes to reduce recompilations
+ (Marc La France).
+ 959. Modify item no. 949 - only reset clipping for Cyber9382, Cyber9385 and
+ ProVidia9682 (Alan Hourihane).
+ 958. Added messages about modes rejected on lookup (Egbert Eich).
+ 957. Attempt to fix DDC1 support on Neomagic (Egbert Eich).
+ 956. Added Block/UnblockSIGIO() to DDC1 readout code (Egbert Eich).
+ 955. Enabled virtual depth for a second head on a G400 multihead
+ (this needs to be looked at) (Egbert Eich).
+ 954. Added code to check if the PictureScreen structure was initialized
+ before referencing it (Egbert Eich).
+ 953. Modified xf86UDelay() to use Block/UnblockSIGIO and usleep()
+ instead of gettimeofday() (Egbert Eich).
+ 952. Modified xf86MatchPciInstances() to allow for chipset overrides
+ even when called with no separate vendorID (Egbert Eich).
+ 951. Changed Xvfb to use fb instead of cfb (Egbert Eich).
+ 950. Moved a misplaced xfree() in the generic driver. Now more than
+ one chipset can use this driver in a multihead setup (Egbert Eich).
+ 949. Did some fixes for the Trident driver ie. fixed a LCD modeline,
+ reset clipping register on all non 3D chips (Egbert Eich).
+ 948. Added missing parts for AXP support to lnx_video.c (Egbert Eich).
+ 947. Added bsr/bsf to x86emu (Jeff Wiedemeier).
+
+XFree86 4.0.1f (16 November 2000)
+ 946. Add a dumpkeymap utility for Darwin (#4248, Eric Sunshine).
+ 945. Fix a Darwin build problem with mkcfm, and get xdm closer to building
+ (#4247, Torrey T. Lyons).
+ 944. DDX for the Xdarwin server (#4246, Torrey T. Lyons).
+ 943. Enable xdm/PAM support by default for FreeBSD versions with PAM.
+ 942. Fix a problem where the X server thinks it has acquired a VT at startup
+ before it has really been released. This is due to the ioctl()
+ returning prematurely because of a pending signal (Jeff Hartmann).
+ 941. Fix a problem with the PAM support in xdm that prevents
+ pam_start_session() from ever being called (Takanori Saneto).
+ 940. Enable PAM support for xdm on FreeBSD (#A.202, Jean-Marc Zucconi, and
+ Takanori Saneto).
+ 939. Fix xf86cfg build problem when BuildXinerama is set to NO (#A.200,
+ Jean-Marc Zucconi).
+ 938. gccmakedep has a typo which affects handling the -o and -O options
+ (A.192, Ivan Zakharyaschev).
+ 937. Specify the units for the dpms and rate commands in the xset man
+ page (#A.191, John Heidemann).
+ 936. Let makedepend ignore "//" style comments on all platforms, not
+ just Win32, and fix a bug in that code that was causing the line
+ after such comments to also be ignored (#A.189, Guenther Grau).
+ 935. Update GNU/Hurd support (#A.188, Marcus Brinkmann).
+ 934. Initial port of the ark driver to 4.x (#4242, Ani Joshi).
+ 933. Wacom input driver update, including support for 38400 link speed
+ and fix wrong advertisement of min/max values (#4241, Frederic Lepied).
+ 932. Fix some parser problems, including:
+ - parser does not write Modes section and UseModes keyword
+ - the vscan value wasn't being used
+ - make the XF86ConfModesPtr structure accessible from the
+ XF86ConfMonitorPtr structure
+ - allow xf86Parser.h to be included from in a C++ program
+ (#4238, 4243-4245, Paulo Cesar Pereira de Andrade).
+ 931. Fix the name of the Serbian xkb symbols file (rename from yu to sr)
+ (#4237, Ivan Pascal).
+ 930. Fix mkcfm bug (#4236, Juliusz Chroboczek).
+ 929. Glint/permedia3 updates (#4235, 4238, Sven Luther).
+ 928. Fix an SVR4 loader build problem introduced in 4.0.1d (#4234,
+ Takaaki Nomura).
+ 927. Fix a bug in fontenc that would cause a memory leak whenever an
+ encoding would be declared in encodings.dir but not in the encoding
+ file itself (#4233, Juliusz Chroboczek).
+ 926. Make the freetype backend use the fontenc matrix encoding support,
+ remove support for the defunct XAnti extension, and bump the version
+ of the freetype backend to 1.1.8 (#4233, Juliusz Chroboczek).
+ 925. Add proper support for matrix encodings in fontenc (including the
+ new FIRSTINDEX keyword in encoding files), and bump the version of
+ the font module ABI to 0.2 (#4233, Juliusz Chroboczek).
+ 924. Fix a problem the vesa driver (#4232, Paulo Cesar Pereira de Andrade).
+ 923. Fix problems building the C&T driver with DEBUG defined (#4231,
+ Taketoshi Sano).
+ 922. Remove lt_LT.ISO8859-1 entry from compose.dir (#4230, Nerijus Baliunas).
+ 921. s3virge driver updates, including:
+ - Stabilize GX2 support, reenable silken mouse
+ - Enable MX fixes
+ - Add support for the render extension
+ - Enable BLT_BUG for ViRGE and VX chipsets
+ (#4229, Kevin Brosius).
+ 920. Don't initialize DRI when noaccel is specified in the tdfx driver
+ (Alan Hourihane).
+ 919. Make module ABI compatibility mismatches fatal by default, and
+ add a command line option for making them non-fatal (David Dawes).
+ 918. Changed SiS driver to use fb instead of cfb (Alan Hourihane).
+ 917. Fix r128 and radeon driver source code formatting that was munged
+ during ATI merge (Kevin Martin).
+ 916. Update Markus Kuhn's UCS fonts, and add his scripts for extracting
+ subsets of them to the build process (David Dawes).
+ 915. Fix visual setting in ATI r128/radeon driver (Jeff Wiedemeier).
+ 914. Alpha fix for xf86cfg (Alan Hourihane).
+ 913. Resync DRI code/drivers with the DRI CVS (VA Linux).
+ 912. Fix tdfx driver to register resources and remove some redundant code
+ (Alan Hourihane).
+
+XFree86 4.0.1e (6 November 2000)
+ 911. Fix the ksc5601.1987-0 encoding file (#4226, 4228, Pablo Saratxaga).
+ 910. Update xdm/sessreg to write ":0" type entried in utmp on OpenBSD
+ (#4225, Matthieu Herrb).
+ 909. Fix for Xmu under NetBSD, which doesn't #define "unix" anymore (#4225,
+ Matthieu Herrb).
+ 908. Preliminary support for OpenBSD/powerpc (#4225, Tsubai Masanari,
+ Matthieu Herrb).
+ 907. Support for native WSCONS driver on NetBSD and OpenBSD (#4225,
+ Tsubai Masanari).
+ 906. Support for new OpenBSD 2.8 shared libs scheme (#4225, Matthieu Herrb).
+ 905. Support for the OpenBSD ports tree (#4225, Marc Espie).
+ 904. Update the list of layouts in the xfree86.lst file (#4224, Ivan Pascal).
+ 903. Add an XKB map for Serbian (#4224, Milos Rancic).
+ 903. New revision of the Bulgarian XKB map (#4224, Anton Zinoviev).
+ 902. Change the Alt key definitions in the "group switcher" descriptions
+ to not override the base Alt key mappings (#4223, Ivan Pascal).
+ 901. Change XKB Mode_switch behavior description to not clear "locked
+ group" (#4223, Ivan Pascal).
+ 900. Create a root window property "XFree86_DDC_EDID2_RAWDATA" when
+ suitable data is available (#4222, Andrew C. Aitchison).
+ 899. Fix some typos/errors in the Latvian and Lithuanian entries in
+ the locale.alias and locale.dir files (#4221, Nerijus Baliunas).
+ 898. Fix two more bugs in xkbcomp: handling of 'keycode aliases', and
+ copying of strings when copying structures (#4208, Ivan Pascal).
+ 897. Added render extension support to tseng driver (Egbert Eich).
+ 896. Fixed clock code in neomagic driver (Egbert Eich).
+ 899. xf86Configure now uses the imake variable xf86ConfigFile (Egbert Eich).
+ 898. xf86cfg has a new option for a server path (Egbert Eich).
+ 897. xf86cfg can now handle more than one command line argument (Egbert Eich).
+ 895. Added a delay to dac code in neomagic driver (Egbert Eich).
+ 894. Changed shadowfb to use delayed updates in neomagic
+ driver (Egbert Eich).
+ 893. Rewrote ddc code in nv driver (Egbert Eich).
+ 892. Rewrote ddc code in neomagic driver (Egbert Eich).
+ 891. Fixed problems with enter/leave/closeScreen in nv
+ driver (Egbert Eich).
+ 890. Fixed a bug in the fixed modelines in trident driver (Egbert Eich).
+ 889. Added reinitialization of blitter on enterVT in trident
+ driver (Egbert Eich).
+ 888. Fixed a typo which caused wrong register to be set in trident
+ driver (Egbert Eich).
+ 887. Added loader symbol handling to tseng driver (Egbert Eich).
+ 886. Changed tseng driver to use fb instead of cfb (Egbert Eich).
+ 885. Changed chips driver to use fb instead of cfb (Egbert Eich).
+ 884. Added render extension support to chips driver (Egbert Eich).
+ 883. Added render extension support to neomagic driver (Egbert Eich).
+ 882. Added render extension support to nv driver (Egbert Eich).
+ 881. Modified helper_mem.c to map everything between video bios and
+ system bios on PC-like platforms (Egbert Eich).
+ 880. Modified Linux mapVidMem() to map memory on page boundaries
+ (Egbert Eich).
+ 879. Changed BIOS_SIZE (Sys BIOS) from 0x10000 to 0xffff to make
+ int10 work un DGUX (Takis Psarogiannakopoulos).
+ 878. Fixed a bug in the argument list of the call to xf86ReadPciBIOS()
+ from int10/pci.c (Egbert Eich).
+ 877. Added simple sanity check to catch situation where DDC reads
+ all 0 and therefore trivially has the correct checksum (Egbert Eich).
+ 876. Changed i2c code to allow for longer rise/fall times on longer
+ cables (Egbert Eich).
+ 875. Removed limit on default visual for 4bpp (Egbert Eich).
+ 874. Added macros to build nv driver on AXP (Jay Estabrook).
+ 873. Changed -configure to use primary card as first card (Egbert Eich).
+ 872. Changed generic vga driver to not unmap memory when switched away.
+ 871. Fixed problem that caused APM support to be disabled on server
+ reset (Egbert Eich).
+ 870. Added support for newer sparse AXP systems (Egbert Eich).
+ 869. Added support for MGA G100 PCI (Egbert Eich).
+ 868. Add missing exported libXext Shm functions to loader (Alan Hourihane).
+ 867. Change Rage 128 DRM driver name to what the r128 kernel module
+ expects (Kevin Martin).
+ 866. Fix newly merged "ati" driver probe to allow "r128" and "radeon"
+ driver names in the XF86Config file for backwards compatibility
+ (Kevin Martin).
+ 865. Use vgaHW module to fix font save/restore in i128 driver (Robin Cutshaw).
+ 864. Fixed (hopefully) a Xinerama problem with BE clients (Mark Vojkovich).
+ 863. Modifications to GLw to allow it to build without Motif, and
+ integrate it into the regular build process (#4142,
+ Carlos A. M. dos Santos, David Dawes).
+ 862. Import the GLw parts of SGI's ogl-sample (snapshot from 20001102)
+ under xc/extras/ogl-sample.
+ 861. Add support for SubSection in the Vendor Section of the config file
+ (Stuart Anderson)
+ 860. Fix a typo introduced in a recent update to the 'no' xkb symbols
+ file (#4218, Pablo Saratxaga, 4219, Harald Nordgård-Hansen).
+ 859. Parser symbol update (#4217, Paulo Cesar Pereira de Andrade).
+ 858. Updates to iso8859-9e, microsoft_cp1251 charset handling, and
+ add real support for microsoft_cp1255 and microsoft_cp1256 (#4214, 4215,
+ Pablo Saratxaga).
+ 857. Fix Sparc build problems linking xf86cfb with libloader that were
+ related to various interdependencies (#4212, David S. Miller).
+ 856. Allow generic XVideo adaptors (like v4l) to be initialised for
+ the G400 crtc2 (#4211, Antti Tapaninen).
+ 855. Update mga driver to check the chipset much earlier to prevent
+ server hang when using g400 dual head + millennium 2, and some
+ G200 PCI/warp cleanups (#4211, Antti Tapaninen).
+ 854. Updates to the Macedonian xkb symbols (#4210, 4220, Damjan Georgievski).
+ 853. Combine the ATI, Rage128 and Radeon drivers into one with multiple
+ sub-modules (Marc La France).
+ 852. Make BIOS accesses in the Rage128 and Radeon drivers independent of
+ endianess and alignment (Marc La France).
+ 851. Fix the claiming of XF86Config device sections by drivers, and change
+ xf86MatchDevices() to only return unclaimed sections (Marc La France).
+ 850. Fixed build problem in s3virge when XvExtension is not set (Stuart
+ Anderson)
+ 849. Add a message at the top of the server/log output for pre-release
+ versions stating that they are unsupported (David Dawes).
+ 848. Fix two problems in Imake.rules: have LinkBuildBinary create the
+ used directory if it doesn't exist, and fix a missing ')' in
+ the LinkConfFileLong (#A.187, Ivan Zakharyaschev).
+ 847. Fix a libXt bug that affects multidisplay applications when Xt is
+ built to use select(2) rather than poll(2) (#A.181, Antony Uspensky).
+ 846. Add a -utime option to xclock that allows the digital clock to
+ display the number of seconds since the Epoch (based on A.173,
+ Kelsey Hudson).
+ 845. Add symbols mappings for extra keys on the BTC 9000 keyboard (#A.167,
+ Stefano Cavallari).
+ 844. Fix twm's icon manager so that it is functional before an EnterNotify
+ event is received in twm's event loop (#A.156, Jason Zwolak).
+ 843. Update comments about standards for Estonian support, and add an
+ entry for the Estonian keyboard layout to the xfree86.lst file
+ (#A.155).
+ 842. Fix for G400 crtc2 blank screen color (#4205, Antti Tapaninen).
+ 841. Modify the mga/HALlib support to allow it to be selected at
+ run-time. This allows a driver built with HALlib to be used with
+ older hardware (like the Millennium, Millennium 2) (#4204,
+ Antii Tapaninen).
+ 840. Add config/imake support for Darwin (#4200, Torrey T. Lyons).
+ 839. Add a driver for the citron touch screen (#4199, Peter Kunzmann).
+ 838. Fix Html man page install problem (Robin Cutshaw).
+ 837. Fix transparency problem with blits, add DDC2 for i128-II chipset
+ in i128 driver (Robin Cutshaw).
+ 836. Allow loader to be build if HasShm == NO (Marcus Brinkmann).
+ 835. Allow the log file to be set in the config files (Stuart Anderson).
+ 834. Fix Rage128/Radeon drivers to free correct scratch buffer on LeaveVT
+ (Alan Hourihane).
+ 833. Xterm patch #148 (#4213, Thomas Dickey).
+ 832. Split ATI driver into two modules in preparation for merging in the
+ r128 and radeon drivers (Marc La France).
+ 831. Update the XFree86 -configure code to put the default font path
+ in the Files section of the config file it generates (#4202,
+ Paulo Cesar Pereira de Andrade).
+ 830. Add write-combine support for IA-64 (Mark Vojkovich).
+
+XFree86 4.0.1d (27 October 2000)
+ 829. Add code to the xf86config utility to get the list of XKB selections
+ from the appropriate XKB files rather than having them hard-coded.
+ Also allow XkbOptions to be set (#4209, Ivan Pascal).
+ 828. -
+ 827. Xterm patch #147 (#4207, Thomas Dickey).
+ 826. Move the initialisation of pScrn->EnableDisableFBAccess into
+ InitOutput(), which fixes an infinite loop problem that can show up
+ on server resets (#4206, Joe Moss).
+ 825. Make xf86cfg use the same config file search path as the X server
+ (#4203, Paulo Cesar Pereira de Andrade).
+ 824. -
+ 823. Fix a bug in the vesa driver when finding the linear address for the
+ card, some compile time warnings, faster code for handling colormap
+ changes, and add DGA support (#4201, Paulo Cesar Pereira de Andrade).
+ 822. Fix a typo in the mga driver that causes planemask problems with
+ the PCI version of the G100 (#4198, Antti Tapaninen).
+ 821. Add an option to the C&T driver to disable "TMED" (DSTN dithering
+ scheme) (#A.172, Damir Anicic, #4196, 4197, David Bateman).
+ 820. Pablo Saratxaga's i18n updates for XFree86 that are used in Mandrake 7.2.
+ Includes various new and fixed xkb files, locale name additions and
+ updates, and new support for various charset encodings (#4195,
+ Pablo Saratxaga).
+ 819. Improve Xaw 7 compatibility with version 6 in the form widget geometry
+ management code. This should fix some problems seen with ghostview
+ (#4194, Paulo Cesar Pereira de Andrade).
+ 818. Build fixes for XFree86 on Cygwin (#4193, Suhaib Siddiqi).
+ 817. Fix for missing symbol messages in int10 and cirrus driver
+ (Marc La France).
+ 816. Detect null windows of PCI-to-PCI bridges (Marc La France).
+ 815. Update pciConfigRec's and pciVideoRec's when relocating PCI resources
+ (Marc La France).
+ 814. Fix handling of 64-bit PCI bases (Marc La France).
+ 813. Fix cursor hide on i128 in multi-head mode (Robin Cutshaw).
+ 812. Fix accel on i128 non-primary cards (Robin Cutshaw).
+ 811. locale.alias fix for ko_KR.utf8 (#4190, Won-kyu Park).
+ 810. Fix incorrect vtSema usage in neomagic driver DPMS code (#4184,
+ Andrew C Aitchison).
+ 809. Fix a 1-byte overflow in Xtrans.c (#4182, Aaron Campbell).
+ 808. Enable building the loadable server for BSD/OS.
+ 807. Fix the following xkbcomp bugs:
+ - 'base group' keyword added to 'whichGroup' possible values list
+ - 'groupsWrap' keyword removed from 'controls' possible values list
+ - fix crash in processing files with unnamed sections
+ - now keep 'per key group adjustment mode' in XKM file
+ - now allow an empty 'key' description to be specified in an
+ xkb_symbols file.
+ (#4170, Ivan Pascal).
+ 806. Add a "bcast" flag for mode lines, which is needed to display
+ broadcast resolutions (#4169, Michel Danzer).
+ 805. Fix compiler warnings when building the mga driver with or without
+ the Matrox HALlib, add the digital/tv-out/tvstandard/cabletype
+ options, missing files, and some cleanups (#4166, Antti Tapaninen).
+ 804. Fix spelling from xvinfo (#4166, Antti Tapaninen).
+ 803. Add support to twm for displaying multibyte strings on window titles,
+ and make the twm config file reader 8-bit clean (#4165, 4168, 4180,
+ Tomohiro Kubota).
+ 802. Fix a tseng driver problem related to the usable amount of video memory
+ (#4164, A.182, Randy McCaskill).
+ 801. Add support for the new Render extension to the nv driver, and
+ turn on fb support by default in the nv driver (#4161, Jarno Paananen).
+ 800. Fix a typo that prevents DPS from being built statically (#4160,
+ Juliusz Chroboczek).
+ 799. Fix some xkbfile bugs in the .xkb files that it writes
+ (two adjacent commas, no xkb_types section in xkb_layout) (#4159,
+ Ivan Pascal).
+ 798. Fix an xkbcomp bug that causes an infinite loop for some error
+ message output (#4158, Ivan Pascal).
+ 797. Fix XlcNONE usage in charset description (#4153, Ivan Pascal).
+ 796. Fix a bug in XKB group adjustment (#4152, Ivan Pascal).
+ 795. Fix some build problems that show up with the SVR4 C compiler
+ (based on #4139, Takaaki Nomura).
+ 794. Add two new XKB group switches (Alt+Shift and Menu key) (#4151,
+ Ivan Pascal).
+ 793. Fix HTML man page links when the man page suffix has more than one
+ character (#4150, Bruno Haible, A.149, Serguei Ostrovskii).
+ 792. Remove the old UTF-1 locale (it's not filesystems safe, deprecated
+ for years, withdrawn from ISO standards, and nobody uses it) (#4147,
+ 4149, Bruno Haible).
+ 791. Replace multiple stub functions in libXThrStub by only one (#4141,
+ Carlos A. M. dos Santos).
+ 790. Fix some build problems that show up with glibc 2.1.3 where ctype.h
+ sometimes (always?) depends on stdlib.h being included (#4134,
+ Kevin Brosius).
+ 789. Updates for building on BSD/OS 4.2 on UltraSparc (#4132, Kurt J. Lidl).
+ 788. Default to linking the Xfont library into the X server statically
+ (based on #4127, Kurt J. Lidl).
+ 787. Update apNetBSD.shar for a kernel mmap interface change (#4124,
+ Bernd Ernesti).
+ 786. When the "auto" mouse protocol is specified, do the auto-detection
+ whenever regaining control of the VT (based on #4120, Kazutaka Yokota).
+ 785. Change the usage of the "Xinerama" config file option to be consistent
+ with all the other ServerLayout/ServerFlags options, and document it
+ in the XF86Config man page (#4118, Itai Nahshon).
+ 784. Add I2C/DDC support to i128 driver (Robin Cutshaw).
+ 783. Add non-GXcopy raster op support to cirrus driver (#4178, David Monniaux).
+ 782. Use DlLibrary instead of referencing -ldl explicitly in xf86cfg
+ (#4189, Matthieu Herrb).
+ 781. Add S3 Virge XVideo support (preliminary) (#4186, Kevin Brosius).
+ 780. Fix non-DRI build problem in r128 driver (#4188, Matthieu Herrb).
+ 779. Add XLIB for OpenBSD/i386 dependency problem to xvinfo
+ (#4187, Matthieu Herrb).
+ 778. Update C&T driver, remove obsolete acceleration and use fb instead
+ of cfb with USE_FB option (#4185, David Bateman).
+ 777. Experimental XAA Render support in the MGA driver (Mark Vojkovich).
+ 776. Preliminary XAA support for the Render extension (Mark Vojkovich).
+ 775. Pass depth/bpp correctly, scan all fbdev devices, misc fbdev fixes.
+ (#4179, Michel Danzer).
+ 774. Add generic Vesa driver, fixes for xf86cfg plus changes to parser to
+ reflect xf86cfg changes (#4174,#4175, Paulo Cesar Pereira de Andrade).
+ 773. Loader fixes for Alpha. (Jay Estabrook).
+ 772. Accelerated TGA2 32bpp for tga driver (Jay Estabrook).
+ 771. Allow use of Compaq's Math Library on Alpha (currently for Mesa)
+ (Alan Hourihane).
+ 770. Update Tiny-X Xvesa server for standard VGA BIOS modes. (Keith Packard)
+ 769. Added ATI Radeon driver, accelerated 2D only (for now) (VA Linux).
+ 768. Fix depth24/32 issue in i128 driver (#4176, Andrew C Aitchison).
+ 767. On IA-64's, build DRI and drm's if they would be built on IA-32's
+ (David Mosberger).
+ 766. Fix xf8_32wid build on Sparc's (Marc La France).
+ 765. Fix MMIO macros for Sparc's (David S. Miller, Jakub Jelinek,
+ Marc La France).
+ 764. Sparc warning fixes (Marc La France).
+ 763. Fix for decoded I/O and memory ranges of certain Sun PCI-to-PCI bridges
+ (David S. Miller, Jakub Jelinek).
+ 762. Force ATIAvoidCPIO to YES on Sparc's (Marc La France).
+ 761. Minor fix for the ATI driver's printing of MMIO registers
+ (Marc La France).
+ 760. Minor fix for sunffb DGA support (Marc La France).
+ 759. Remove unnecessary pointer<->long casts in tseng driver (Marc La France).
+ 758. Re-align Sparc PCI support with that of other architectures
+ (Marc La France).
+ 757. mmap() /dev/fb instead of /dev/mem on Linux/Sparc (Marc La France).
+ 756. Fix OS-reported PCI ranges on Linux/Sparc (David S. Miller,
+ Jakub Jelinek).
+ 755. Remove a dependency on word size in the determination of PCI resource
+ sizes on Linux (Marc La France).
+ 754. Permedia3 updates (#4177, 4183, 4192, Sven Luther).
+ 753. Add Xv support to the r128 driver (Stuart Anderson/Vladmir Dergacheb)
+ 752. Make VBE module log a message when the BIOS doesn't support any VESA
+ extensions (Marc La France).
+ 751. Fix int10 so that it rejects BIOS's that are not aligned on a 512-byte
+ boundary (Marc La France).
+ 750. Fix int10 for ISA adapters on Alpha's (Egbert Eich).
+ 749. Fix for ATI ISA adapters on Alpha's or with -configure (Marc La France).
+ 748. Fix stupid clock probe bug in ATI driver (Marc La France).
+ 747. Reorganise ATI driver in preparation for futuure changes
+ (Marc La France).
+ 746. Formatting changes to hsync/vrefresh messages (Marc La France).
+ 745. Fix spurious free() when using an ISA adapter (Marc La France).
+ 744. Preliminary acceleration of the Render extension for Matrox G200/G400
+ (Mark Vojkovich).
+ 743. Fix ordering of drawable destruction in client-side DRI (Brian Paul).
+ 742. Update Trident's text acceleration routines (Alan Hourihane).
+ 741. Destroy unbound window info when a client destroys a context in
+ the client-side DRI driver (Kevin Martin).
+ 740. Make ATI driver's detection of Rage 128's more precise (Marc La France).
+ 739. Reinstate BIOS checksum verification but make it non-fatal
+ (Marc La France).
+ 738. Don't set protection register on older trident chips
+ Fixes Vertical line problem. (Alan Hourihane).
+ 737. Add missing symbols for Solaris (incomplete) (Marc La France).
+ 736. Add primitive support in xterm for Xft based fonts (Keith Packard)
+ 735. Add new Xft library to hook FreeType 2 to Render (Keith Packard)
+ 734. Added support for Number Nine I128 chipsets (Robin Cutshaw).
+ 733. Added support for softbooting BIOSes on ia64 (Egbert Eich).
+ 732. Fixed handling of XtMakeGeometryRequest() to test for parent
+ belonging to subclass of composite class only if the widget
+ itself is managed. This follows the specs more closely.
+ (Keith Packard).
+ 731. Changed handling of DDC read in r128 driver. Driver does not
+ fail any more if vbe DDC reads don't succeed (Egbert Eich).
+ 730. Fixed infinite loop when referencing the same mnitor section
+ twice when using a Mode Section (Egbert Eich).
+ 729. Fixed problem that caused SIGV in xf86GetValidBiosBase() (Egbert Eich).
+ 728. Fixed macintosh us keyboard (Olaf Hering).
+ 727. Added missing symbols to mga driver (Stefan Dirsch).
+ 726. Fixed a ia64 loader problem that caused SIGV when PLT was present
+ (Andreas Schwab).
+ 725. Fixed ia64 build rules (Andreas Schwab).
+ 724. Fix DGA library to only swap events for DGA 2.0 X servers
+ 723. Fix locale parsing code in Xlib and Xt (Matthieu Herrb)
+ 722. Fix X Test Suite to work on 800x600 screens (Keith Packard)
+ 721. PCI chip ID updates to ATI driver (Marc La France).
+ 720. Fix i810 driver for -probe and -configure (Marc La France).
+ 719. Change message when default modes are deleted (Marc La France).
+ 718. Fix Xinerama byte swapping bug (Marc La France).
+ 717. IA-64 and Alpha fixes for pswrap, Mesa, DRI, Xpm, libX11, Xt, Xaw, Xmu,
+ dps, Type1 fonts, cfb24, most output drivers, ELF loader, ramdac module,
+ xf4bpp and xf86cfg (Marc La France).
+ 716. Improve IA-64 support by removing a plethora of 32-bit'isms
+ (Marc La France).
+ 715. Default HasLinuxDoc to NO (Marc La France).
+ 714. Lots of Neomagic driver fixes/enhancements (Mark Vojkovich).
+ - Fix logic bug that kept HW cursor from being used.
+ - Added support for gamma correction and DirectColor visuals.
+ - Fixed some depth/bpp confusion (depth 15 works now).
+ - Convert from cfb to fb.
+ - Fix typo that kept the pixmap cache from being used.
+ - Fixed DGA support.
+ - Disable 8x8 pattern fills because they don't work.
+ - Set correct virtual desktop size limits for 2160 and older chips.
+ - Preliminary man page.
+ - Enable burst modes by default.
+ - Accelerate ImageWrite support for 2097/2160.
+ 713. Fix some depth 32 problems in XAA (Mark Vojkovich).
+ 712. Add Silken Mouse to Rage 128 driver (Alan Hourihane).
+ 711. Resync DRI code/drivers with the DRI CVS (VA Linux).
+ 710. Add glxinfo to programs list (#4138, Mark Paton).
+ 709. Add LVDS support for SiS and fix copyright messages (#4136, Can-Ru Yeou).
+ 708. Fix support for C&T 69030 (#4137, David Bateman).
+ 707. Support Cirrus Logic 7548 chip (#4146, David Monniaux).
+ 706. Fix typos in Xt man pages (#4156, Carlos Santos).
+ 705. Fix libdps bug (#4154, Juliusz Chroboczek).
+ 704. Xterm patch #146 (#4144, Thomas Dickey).
+ 703. Xterm patch #145 (#4140, Thomas Dickey).
+ 702. Fix 32bpp on the Permedia3 (Sven Luther).
+ 701. Fix to xterm InsertChar() to handle cases where cur_col + n
+ ends up past the end of the line (Andreas Schwab).
+ 700. Added keyboard layouts for PowerMac (Olaf Hering).
+ 609. Fixed Macintosh keyboard layouts (Olaf Hering).
+ 608. Fixed build when BuildServer defined NO (Egbert Eich).
+ 607. Fixes for C&T 69030 (David Bateman).
+ 606. Fix for locale setting in Xlib and Xt using getlocale()
+ from glibc5 (Egbert Eich).
+ 605. Added handling of i5/686 and k6 compiler defines to Imake.cf
+ (Philipp Thomas).
+ 604. Added support for non-English locales in xload (Egbert Eich).
+ 603. Fixed memory initialization in Xlib (Vladimir Nadvornik).
+ 602. Fixed memory initialization in xdm (Egbert Eich).
+ 601. Rudimentary S390 support (Ruediger Oertel, Bernhard Kaindl).
+ 600. Enabled support for compressed xpm-files (Stefan Dirsch).
+ 599. Added support for Czech querty keyboard (Jan Holesovsky).
+ Some fixes for ia64 ().
+ 598. Added CPU to Screen Color expansion to Neomagic driver (Egbert Eich).
+ 597. Added support for hotkey display output switch for Neomagic
+ driver (Egbert Eich).
+ 596. Add "xvinfo" client for querying Xv adaptors (Mark Vojkovich).
+ 595. Fix DGA support in the i810 driver (Mark Vojkovich).
+ 594. Enlarge the i810 pixmap cache and have the YUV overlay use that memory
+ rather than allocate dedicated memory for overlay data (Mark Vojkovich).
+ 593. Add/fix support for the Rage 128 Mobility chips (M3/M4) (Kevin Martin).
+ 592. Fix RegisterResources for multiple heads in glint driver
+ (#4143, Berend Ozceri).
+ 591. Update Permedia3's hw cursor to match the Permedia2v's they are
+ the same (Alan Hourihane).
+ 590. Fix glint driver to use colorKey rather than fixed value (Alan Hourihane).
+ 589. Add ScreenToScreenCopies for Permedia3 (Alan Hourihane).
+ 588. Add SilkenMouse support to the i810 driver (Mark Vojkovich).
+ 587. Disable DRI acceleration in depth 15 on the i810 because it doesn't
+ work (Mark Vojkovich).
+ 586. Fix some ordering problems in the I810ScreenInit that broke the
+ software cursor and backing store (Mark Vojkovich).
+ 585. Convert the i810 driver from cfb to fb (Mark Vojkovich).
+ 584. Fix some depth/bpp confusion in the i810 driver. Depth 15 works now
+ (Mark Vojkovich).
+ 583. Turn off visual ID matching in Xv (Mark Vojkovich).
+ 582. Add the IA-64 ELF loader (Jakub Jelinek).
+ 581. Add I420 and UYVY image formats to the i810 driver (#4135, Jonathan Bian).
+ 580. Fix an Xaw problem with illegal aliases (#4133, Jakub Jelinek).
+ 579. Set $(SHELL) to '/bin/sh -e' on Linux to allow builds/installs stop
+ immediately on errors as on other platforms (Brandon Robinson).
+ 578. Update i810 driver for -configure to work (Alan Hourihane).
+ 577. Have Xv silently ignore client requests with zero sized primitives
+ (Mark Vojkovich).
+ 576. Disable gamma correction and DirectColor visuals on the i810 because
+ they don't work (Mark Vojkovich).
+ 575. Fix a bug in XAA's MSBFIRST color expansion support (Mark Vojkovich).
+ 574. Allow the default i810 video overlay key to be changed from the
+ XF86Config file (Mark Vojkovich).
+ 573. Don't build DRM modules with a non-module Linux kernel (Marc La France).
+ 572. Reinstate non-MMIO-only version of ATI driver for Alpha architecture
+ (Marc La France).
+ 571. Fix input event queueuing for 64-bit platforms (Marc La France).
+ 570. IA-64 changes resulting from a source cross-check with Alpha support
+ for 64-bit dependencies (Marc La France).
+ 569. Fix in ATI drivber for DPMS support on panels (Marc La France).
+ 568. I810 bugs fixes and enhancements relating to Xv (#4121, 4117, 4123,
+ 4128, Jonathan Bian).
+
+XFree86 4.0.1c (28 August 2000)
+ 567. Add support to xset for setting the keyboard repeat rate using XKB
+ (A.119, A.126, Stephen Montgomery-Smith).
+ 566. Various DRI-related 64-bit/IA-64 fixes (#A.134, David Mosberger).
+ 565. Support for multithreaded libraries on NetBSD when used in conjunction
+ with the GNU pth library (#4113, Chris Sekiya).
+ 564. Add /usr/pkg/bin to NetBSD's DefaultUserPath (#4112, Bernd Ernesti).
+ 563. Add a (Linux-specific) VESA driver for Keith's small X server (#4111,
+ Juliusz Chroboczek).
+ 562. Update Hungarian xkb maps (#A.145, Peter Soos).
+ 561. Fix ATI driver bug that prevented the disabling of int10, ddc and vbe
+ through options (Marc La France).
+ 560. Improve libX11 behaviour when a server doesn't have XKB, allowing
+ XKB-aware XLookupString features with servers without XKB (#4108,
+ Ivan Pascal).
+ 559. Fix a bug in xkbcomp'shandling of 'group compat' data (#4107,
+ Ivan Pascal).
+ 558. Fix an i810 driver problem doing XvImage with clipping (#4106, 4110,
+ Jonathan Bian).
+ 557. Add PCI info for devices found on the G4 Mac (#4105, Matthieu Herrb).
+ 556. New XkbOptions for LED selection (#4101, Ivan Pascal).
+ 555. Changes to XkbGetControls regarding ax_options (#4100, Ivan Pascal,
+ based on A.125, Stephen Montgomery-Smith).
+ 554. Changes to XkbSetControls regarding per_key_repeat (#4099, Ivan Pascal,
+ based on A.124, Stephen Montgomery-Smith).
+ 553. Fix MouseKeys acceleration (#4098, Ivan Pascal, based on A.112,
+ Stephen Montgomery-Smith).
+ 552. -
+ 551. Man page for Xmark (#4097, Richard Braakman).
+ 550. Fixes for Macintosh XKB data files (#4094, Ani Joshi).
+ 549. Change VarDbDirectory to /var/lib on Linux to comply with FHS 2.1
+ (#4093, Branden Robinson).
+ 548. Include <sys/types.h> in agpgart.h (#4091, Branden Robinson).
+ 547. Re-add installation of the micro font (#4090, Branden Robinson).
+ 546. Fix the rstart/server script generation (#4088, 4089, Branden Robinson).
+ 545. Allow mkhtmlindex.sh to work when the shell's -e flag is used (#4087,
+ Branden Robinson).
+ 544. Xterm patch #144 (#4109, Thomas Dickey).
+ 543. Xterm patch #143 (#4104, Thomas Dickey).
+ 542. Xterm patch #142 (#4102, Thomas Dickey).
+ 541. Xterm patch #141 (#4085, Thomas Dickey).
+ 540. Xterm patch #140 (Thomas Dickey).
+ 539. Xaw bug fix (#4084, Paulo Cesar Pereira de Andrade).
+ 538. Add support for the NeoMagic NM2230 MagicMedia 256AV+ to the neomagic
+ driver (#4083, Andrew C Aitchison).
+ 537. Fix generic Xom to select the same font for measuring text escapement
+ as is used for drawing (#4082, Owen Taylor).
+ 536. Resync DRI code/drivers with the DRI CVS (VA Linux).
+ 535. Engine polling changes in r128 driver (David Mosberger).
+ 534. Fix linear memory mapping in ATI driver (Marc La France).
+ 533. Fix endianness problems in the ATI driver when accessing BIOS images
+ (Marc La France).
+ 532. Allow building Xptr, Xnest and Xvfb with MakeDllModules
+ (Bill Nottingham).
+ 531. Build DRI drivers on IA-64 (David Mosberger, Marc La France).
+ 530. Use $(CC) instead of $(LD) when building modules (Bill Nottingham).
+ 529. When building with MakeDllModules, generate both dynamic and static
+ libraries (Bill Nottingham, Marc La France).
+ 528. Fix detection problem with ramdac for Glint Permedia1's
+ (Alan Hourihane).
+ 527. Fix minor symbol resoltion problem in dlopen() loader (Marc La France).
+ 526. Alpha changes that fell out of RadHat's IA-64 changes (Marc La France).
+ 525. A merge of most of RedHat's IA-64 changes (Keith Fish, Stephane Eranian,
+ Bill Nottingham, Marc La France):
+ - Don't force static server build.
+ - Fix NULL #define'ition for loader server.
+ - Various #if-testing changes.
+ 524. Fix the few problems that showed up with the integration of the cygwin
+ support (Suhaib M. Siddiqi).
+ 523. ATI driver changes (Marc La France):
+ - Make ATIProbe() and ATIPreInit() optionally more verbose.
+ - Fix compile problem on Alpha's.
+ - Fix Mach64 hardware clipping bug.
+ - Support transparency during Mach64 screen-to-screen copies.
+ - Disable int10 interface in MMIO-only driver version.
+ - Fix determination of MMIO base address for Mach64 GX, CX, CT, ET,
+ VT and GT.
+ - "Wake" up ATI VGA's before probing for them.
+ - Other cosmetic changes.
+ 522. Workaround for problems with static during palette changes on the
+ MGA G400 (Mark Vojkovich).
+ 521. Share common drm files between Linux and FreeBSD. This fixes
+ DRI-related build problems on FreeBSD (David Dawes).
+ 520. Add Romanian xkb symbols definitions (Cristian Gafton).
+ 519. First cut at pushing the AGP GART interface into the os-support
+ layer, with support for Linux and FreeBSD (David Dawes).
+ 518. Fix SHM support in Xv that was broken in 4.0.1b (David Dawes)
+ 517. Change the Solaris8/x86 keyboard handling to map the raw keycodes to
+ the same keycodes that we use on other platforms, and remove the
+ Solaris8/x86-specific XKB definitions (David Dawes).
+ 516. Fix a problem in the fbdev driver where xf86DrvMsg() is called before
+ the necessary pScrn fields have been initialised (Martin Dalecki).
+ 515. Fix mga dri bug that caused some rendering corruption when the dri module
+ was loaded (Mark Vojkovich).
+
+XFree86 4.0.1b (11 August 2000)
+ 514. Fix the freetype font renderer's handling of True Type Collections
+ (.ttc files) (based on #A.123, timecop at japan.co.jp).
+ 513. Add PCI IDs for Silicon Motion, Inc (#A.122, Martin Dalecki).
+ 512. Fix a problem with the sequence number not being byte-swapped
+ for the reply to the DPMSCapable request (#A.120, Stephen Tse).
+ 511. Fix input driver PreInit funtions to behave as expected by InitInput()
+ (David Dawes).
+ 510. Port the spaceorb input driver to 4.x (Guido Heumer).
+ 509. Port the Summa input driver to 4.x (#A.116, Peter Schlaile).
+ 508. Add a DigitalEdge input driver (#A.116, Peter Schlaile).
+ 507. Remove obsolete PC98 code (#4081, Takaaki Nomura).
+ 506. Fix PC98 keyboard problems (#4081, Osamu Tomita).
+ 505. Imake support for building on Linux/arm32 (#4080, Andrew E. Mileski).
+ 504. Fix a problem with restoring the PIXCONF register in the i810 driver
+ (#4078, Jonathan Bian).
+ 503. Fix a build problem with the sis dri driver Imakefile (#4076,
+ Takaaki Nomura).
+ 502. Add DPMS support to the fbdev driver (#4075, Ani Joshi).
+ 501. Add DPMS support to the fbdevhw module (#4074, Ani Joshi).
+ 500. Fix VGA detection bug with Mach64 integrated controllers
+ (Marc La France).
+ 499. Accelerated line support for the NV driver (Chas Inman, Mark Vojkovich).
+ 498. Add GeForce2 support to the NV driver (Chas Inman).
+ 497. Integrate Cygwin support. To compile, this requires Cygwin 1.0 or
+ later with gcc 2.95.2 and Windows NT (#4073, Suhaib M. Siddiqi).
+ 496. Add en_GB.ISO8859-15 to locale.dir (David Dawes)
+ 495. Build int10 on all platforms and move ATI driver after r128 driver in
+ compiled-in probe lists (Marc La France, Michael Madore).
+ 494. Fix bug in parser code: addNewOption2() trunkates option list
+ when an option is added that already exists (Egbert Eich).
+ 493. Fix tmp file problem with makedepend scripts (based on report from
+ Alan Cox).
+ 492. ATI driver changes (Marc La France):
+ - Fix resource relocation bug.
+ - An attempt at fixing problems reported with Chrontel 8398's.
+ - Workaround for Mobility BIOS bug that affected the driver's ability to
+ restore the mode on server entry.
+ - Fix SEGV that occurs with ATI adapter BIOS'es that do not support some
+ flavour of VBE.
+ - Allow the driver to tolerate the absence of an initialised adapter BIOS
+ image and introduce XF86Config options for the information the driver
+ would otherwise require from it.
+ - Recognise more cases where a DFP panel might be in use.
+ - Fix minor bug that occurred on xf86SetDepthBpp() failures.
+ - Implement a compilation option that produces an MMIO-only version of
+ the driver. Intended for non-Intel architectures. See the driver's
+ Imakefile for details.
+ 491. fixed handling of backwards compatibility in xvmode (Egbert Eich).
+ 490. fixed changing mouse protocol with xf86misc extensions (Egbert Eich).
+ 489. added code to sanitize uninitialized PCI config space
+ base addresses (Egbert Eich).
+ 488. Changed xf86xv.c to call StopVideo(exit=TRUE) even
+ if StopVideo(exit=FALSE) has already been sent (Egbert Eich).
+ 487. fixed core dump in C&T video driver when vt switching
+ Changed C&T video driver to only register a block handler
+ when StopVideo() is called with exit = TRUE (Egbert Eich).
+ 486. Fixed Cirrus driver not segfault when termineated while
+ switched away (Egbert Eich).
+ 485. Neomagic driver: select sw cursor when screen stretching is
+ enabled (Egbert Eich).
+ 484. Neomagic driver: fixed problem with screen to screen copy
+ on 2200 chipsets (Egbert Eich).
+ 483. Neomagic driver: fixed 'white screen problem' by implementing
+ a signal save delay routine (Egbert Eich).
+ 482. r128 driver: Fixed colormap set problem when server is switched
+ away (Egbert Eich).
+ 481. r128 driver Added reinitialization of accel engine after vt switch.
+ 480. fixed a fg/bg color problem in SiS driver (Egbert Eich).
+ 479. attempt to address some problems with Cyber LCD chipsets in
+ Trident driver (Egbert Eich).
+ 478. tseng driver: Implemented correct MMIO handling (Egbert Eich).
+ 477. tseng driver: made accel driver multi screen capable (Egbert Eich).
+ 476. fixed vgaHW driver to use forground color for readability
+ test of pallette registers. This prevents annoying flashing
+ screen on server start (Egbert Eich).
+ 475. added module/font/rgb path parameters to xf86cfg (Egbert Eich).
+
+XFree86 4.0.1a (2 August 2000)
+ 474. i810 DRI updates (Jeff Hartmann).
+ 473. i810 driver updates (H. J. Lu).
+ 472. Save/restore the text mode colourmap for Solaris, to fix a blank
+ screen problem on Solaris 8 after exiting the X server (#A.104,
+ Richard Coley).
+ 471. Patch for SuperProbe on Linux with devfs (#A.103, Adam J. Richter).
+ 470. Enable BSD/gcc-2.95.2 workaround for BSD/OS 4.2 (#4072, Kurt Lidl).
+ 469. Fix a problem with the header symlinks in Xserver/GL/mesa/include/GL
+ (#4071, Matthieu Herrb).
+ 468. Finish integrating the SiS DRI driver support (Can-Ru Yeou, SiS).
+ 467. Change references to the Mesa source directory in Imakefiles to
+ $(MESASRCDIR) (David Dawes).
+ 467. Fix a typo an error in the example code in the XtAppAddInput man page
+ (#4070, Carlos A. M. dos Santos).
+ 466. Imstt driver updates, including moving from cfb to fb, fixing fbdev
+ bugs and an accel blit bug, and a general cleanup (#4068, Ani Joshi).
+ 465. Fix the installation path of the xditview bitmap (#4067,
+ Carlos A. M. dos Santos).
+ 464. Some xf86cfg fixes (#4065, 4068, Paulo Cesar Pereira de Andrade).
+ 463. Fix some syntax errors in xkb config files and a size mismatch between
+ two xkbcomp structures that were being masked one to another (#4063,
+ Paulo Cesar Pereira de Andrade).
+ 462. Fix a problem where the xkbcomp would read junk data from the server
+ if SmartScheduleTimer() is called while writing to it (#4063,
+ Paulo Cesar Pereira de Andrade).
+ 461. Increase MAXVISUALSPERDEPTH further for Xnest so that it will work
+ with GLX (#4062, Harald Koenig).
+ 460. Xv overlay support for the Intel i810 chipset (#4061, Jonathan Bian,
+ Matthew J Sottek, Intel).
+ 459. Penmount touch panel input driver (#4060, Mayk Langer).
+ 458. Fix the r128 SaveScreen function so that it doesn't touch the hardware
+ when switched away (#4056, Benjamin Herrenschmidt).
+ 457. Add support to xman for FreeBSD's /etc/manpath.config (#4055,
+ Carlos A M dos Santos).
+ 456. Update Xinstall.sh to handle the different behaviour of ldconfig
+ 2.1.3 (used on SuSE 6.4) (#4058, Michael Rohleder).
+ 455. Fix incorrect use of xf86{En,Dis}ableInterrupts() for ppc
+ (Marc La France).
+ 454. Add man pages for pcitweak and scanpci (David Dawes).
+ 453. Fix problems with xkb "Internet" keyboard mapping support (David Dawes).
+ 452. A few corrections to PIO and MMIO definitions affecting mips, arm32,
+ powerpc architectures and QNX4 (Marc La France).
+ 451. Minor int10 and VBE fixups (Marc La France).
+ 450. For frequency options, don't clobber the old value before verifying the
+ new one is valid (Marc La France).
+ 449. Ensure xf86_ansic.h is always #include'd before compiler.h in code
+ that can be compiled as a module (even for the static server). Generate
+ an error if not (Marc La France).
+ 448. Make linux/int10 module complain when SystemV IPC isn't configured
+ into the kernel (Marc La France).
+ 447. Add new offscreen frame bufffer manager functions for managing linear
+ offscreen areas (Mark Vojkovich).
+ 446. int10 fixes and remove checksum verification (Marc La France).
+ 445. More message formatting changes for DDC (Marc La France).
+ 444. Add missing xf86write symbol (Marc La France).
+ 443. Fix open(, O_CREAT) emulation (Marc La France).
+ 442. Fix Trident Cyber9320 > 8bpp modes (Alan Hourihane).
+ 441. Allow memory mapping during probe phase (Marc La France).
+ 440. Clean up os-support/dgux/dgux_video.c (Marc La France).
+ 439. Fix int10 bug that prevented recognition of video BIOS'es that are part
+ of the system BIOS (Marc La France).
+ 438. MGA driver warning fix (Marc La France).
+ 437. An update to change 425 (Marc La France).
+ 436. More EDID formatting changes (Marc La France).
+ 435. Fix bug that caused the relocation of PCI I/O bases assigned to multiples
+ of 0x0100 (but not 0x0400) by the system BIOS (Marc La France).
+ 434. Add ATI driver to Alpha, and experimentally, to ppc architectures. ppc
+ support is still known to be incomplete (Marc La France).
+ 433. For IA64, compile everything, except PEX, that is also compiled for IA32
+ (Marc La France).
+ 432. Fix Cyrix driver for -configure (Alan Hourihane).
+ 431. Fix Glint PM3 memory detect when only 1MB of videoram (Alan Hourihane).
+ 430. Fix DAC colour problem and blank out issue in glint driver
+ (Alan Hourihane).
+ 429. Add missing clock values to the trident driver (Alan Hourihane).
+ 428. Fix Glint driver's SaveScreen function (#4057, Michel Danzer).
+ 427. Convert MGA driver to use fb instead of cfb (Mark Vojkovich).
+ 426. Rewrite MGA color expansion routines so that pci retries never occur
+ (Mark Vojkovich).
+ 425. Make ATI driver tolerate relocation of conflicting resources
+ (Marc La France).
+ 424. Make Mach64 FIFO handling available to GATOS (Marc La France).
+ 423. Fix bug in Mach64 scissor handling (Marc La France).
+ 422. Implement Mark Vojkovich's suggestions in the ATI driver
+ (LSB ordering of monochrome data and host transfer burst modes)
+ (Marc La France).
+ 421. More fixes to ATI DSP register calculation (Marc La France).
+ 420. ATI DGA support fixes for VGA Wonder capable adapters and the
+ setting of the DGA_CONCURRENT_ACCESS flag (Marc La France).
+ 419. Change imake to generate symbols for the GCC version used to
+ compile it (Marc La France).
+ 418. Fix xf1bpp/xf4bpp in trident driver and some planemask problems
+ (Alan Hourihane).
+
+XFree86 4.0.1 (1 July 2000)
+ 417. Update OpenBSD and NetBSD docs (#4053, Matthieu Herrb).
+ 416. Fix segfault when destroying a GLX context (Kevin Martin).
+ 415. Doc updates (Georgina Economou).
+ 414. Fix some palette and fbdev problems, and add a missing break to the
+ video memory type detection code for the r128 (#4043, Benjamin
+ Herrenschmidt).
+
+XFree86 4.0Z (30 June 2000)
+ 413. README updates (Georgina Economou).
+ 412. Add some SiS DRI code, but currently disabled because the X server
+ driver level support hasn't been integrated yet (Can-Ru Yeou, SiS).
+ 411. Remove the PPC-specific assembly for load/stores from the r128 driver,
+ and use the versions now provided in compiler.h, which are faster (#4051,
+ Ani Joshi).
+ 410. Fix the UTF-8 converters so that cut&paste works better in UTF-8 locales
+ (#4049, Bruno Haible).
+ 409. Complete the move of glx.h to xc/include/GL, and don't include
+ Xmd.h in glx.h (#4048, Brian Paul).
+ 408. Apm driver updates, including fixing 24/32 access, fixing an
+ initialization bug, and some code cleanups (#4047, Loic Grenie).
+ 407. Sparc/sbus updates: put sparcProm* in the correct header file, add
+ xf86SbusSetOsHwCursorCmap sbus layer interface, and export symbols for
+ this new interface and the sparcProm* interfaces in the loader (#4046,
+ Jakub Jelinek).
+ 406. Add cg3/cg14/tcx/bw2 drivers (sparc), and fix a few bugs in leo and
+ cg6 drivers. Build these driver, plus the ati and glint drivers
+ on Linux/sparc (#4046, Jakub Jelinek).
+ 405. Fix Elite3D detection (#4045, David S. Miller).
+ 404. Treat SBUS like ISA when assigning access control records, so now
+ multi-head, Xinerama, etc works with SBUS drivers (#4045,
+ David S. Miller).
+ 403. SDK install updates (#4044, David Bateman).
+ 402. Work around an odd problem with waitpid() in the code for auto-loading
+ DRM kernel modules on Linux (#4042, Brian Paul).
+ 401. Change the imake parameter for BSD/OS from BSD386Architecture to
+ BSDOSArchitecture (#4041, Kurt Lidl).
+ 400. Make the neomagic driver recognise the NM2380 chip, and treat it
+ exactly like a NM2360 (#4041, Kurt Lidl).
+ 399. Updates for compiling cleanly on BSD/OS 4.0.1, and to make the
+ BSD/OS support less i386-centric (#4041, Kurt Lidl).
+ 398. Disable SilkenMouse for the s3virge GX2 to avoid some lockup problems
+ (#4039, Kevin Brosius).
+ 397. Some mga DRI updates to improve stability (Jeff Hartmann).
+ 396. Fix some DRI offscreen memory calculations in the Matrox driver
+ (Mark Vojkovich).
+ 395. IA64 workarounds - should compile and run right out of the box now
+ (Mark Vojkovich).
+ 394. LBX, X-TrueType and Xnest warning fixes (Marc La France).
+ 393. Remove unused xf86MapDisplay() and xf86UnMapDisplay() os-support entry
+ points (Marc La France).
+
+XFree86 4.0g (26 June 2000)
+ 392. Fix a missing -I in sunffb/Imakefile (#4038, David S. Miller).
+ 391. Some -misc-fixed-* BDF font updates, primarily expanding the 7x13
+ set to include the same 8-bit variants as the 6x13 set, including
+ a new oblique/italic version (#4037, Markus Kuhn).
+ 390. Fix an endless loop in the UTF-8 converters (#4036, Bruno Haible).
+ 389. Straighten out xfindproxy exit codes to match success/failer status;
+ also change one instance where error message was printed to stdout
+ (#4035, Huver).
+ 388. With LBX enabled, the X server wasn't checking the proxy connection,
+ and so fails the connection request without calling InvalidHost()
+ (#4033, Huver).
+ 387. xfwp doProcessWritables() closes connection, but then proceeds
+ to reset client fd via FD_SET() (#4031, Huver).
+ 386. Don't build a non-DRI libOSMesa (#4029, Takaaki Nomura).
+ 385. Add generic DGA support to SiS driver (Alan Hourihane).
+ 384. Add more support structure for Alpha/DRI (not enabled yet though)
+ (Alan Hourihane).
+ 383. Fix glXDestroyContext bug that caused Q3A to use old clip rect info
+ when opening a new window (Kevin Martin).
+ 382. Fix R128 3D driver clear problem which caused R128Pro cards to lock
+ up, and fix dword count on ring-based vertex buffer code for PCI
+ R128 cards (Gareth Hughes).
+ 381. Possible fix for a problem introduced with item 332 that resulted
+ in the first screen's config file data being used for all screens
+ (Mark Vojkovich, David Dawes).
+ 380. Add an imake parameter NothingOutsideProjectRoot that turns off
+ installing links and config files, etc, outside of ProjectRoot
+ (David Dawes).
+ 379. Possible fix a problem with 'make install' on Linux when there is
+ already a /usr/include/GL directory (David Dawes).
+ 378. Fix a DGA-related crash when using multiple input devices with the
+ DGA extension disabled (Matthieu Herrb).
+
+XFree86 4.0f (23 June 2000)
+ 377. Suppress the use of a temporary directory to build man pages on
+ OpenBSD, which fixes problems with some external programs (#4028,
+ Matthieu Herrb).
+ 376. Allow some linux/mips settings in linux.cf to be overriden (#4026,
+ Guido Guenther).
+ 375. Synchronize the pointer state before checking it in xf86CheckButton()
+ (Paulo Cesar Pereira de Andrade).
+ 374. s3virge driver fixes for noise and console corruptionn on the GX2 and
+ MX (but they're commented out for the MX because it hasn't been tested
+ yet) (#4027, Kevin Brosius).
+ 373. Fixes for lib/GL Imakefiles (Marc La France).
+ 372. Update DRI drivers sunffb,mga,i810,glint,r128,tdfx to check for
+ DRIQueryVersion, overcomes an older libdri issue (Alan Hourihane).
+ 371. Change tdfx driver to use fb instead of cfb (Alan Hourihane).
+ 370. Make using libpthread optional for OpenBSD 2.7.
+ 369. Fix a problem when calling XF86VidModeSwitchMode() when the switched
+ screen is different from the one that has the pointer (#4024,
+ Paulo Cesar Pereira de Andrade).
+ 368. Bindist files for Linux/mips (#4023, Guido Guenther).
+ 367. Allow XFree86 to compile on NetBSD-current and 1.5_ALPHA, which
+ no longer use the pcvt console, but have a compatibility mode for it
+ in wscons (#4021, Bernd Ernesti).
+ 366. Add support for the iso8859-13 charset to Xlib (#4020, Bruno Haible).
+ 365. Add ISO-8859-13 support to the UTF-8 converters, which is needed for
+ Lithuanian UTF-8 locales (#4019, Bruno Haible).
+ 364. Fix three bugs in the UTF-8 converters:
+ - In an UTF-8 locale, keyboard input coming in as UTF-8 would not be
+ accepted.
+ - Incorrect handling of the "end of string" and "invalid byte sequence"
+ situations.
+ - A bug on platforms with sizeof(wchar_t) != sizeof(int).
+ (#4018, Bruno Haible).
+ 363. Enable building DRI support for FreeBSD 4.1 and higher.
+ 362. Don't try to use kldload() on FreeBSD versions prior to 3.0 (#4016,
+ Takaaki Nomura).
+ 361. Some sunffb cleanups (#4015, David S. Miller).
+ 360. Add DRI drawable index callback (#4015, David S. Miller).
+ 359. Fix -configure option to print out fatal message and abort gracefully
+ when pci data isn't entered into xf86PciInfo.h (Alan Hourihane).
+ 358. Add generic DGA support to NeoMagic (not tested) (Alan Hourihane).
+ 357. Add generic DGA support to i810 (not tested) (Alan Hourihane).
+ 356. Fix GCC 2.96 complaints in big font extension and imstt driver
+ (Steven King).
+ 355. Fix remaining DRI III compile glitches (Marc La France).
+ 354. Fix long standing bug with 3Dfx driver when DRI module isn't loaded.
+ It complained about unresolved symbol called after 'Textures memory'
+ output (Alan Hourihane).
+
+XFree86 4.0e (20 June 2000)
+ 353. Fix a couple of acceleration problems in glint driver (Alan Hourihane).
+ 352. Don't attempt to build the Sparc DRI drivers on ix86, and vice versa
+ (David Dawes).
+ 351. Fix a lib/GL build problem when the DRI isn't enabled (#4014,
+ Nicholas J Brealey).
+ 350. Fix location of dri module links in the xc/exports directory of the
+ build tree.
+ 349. Replace LoaderSymbol() with xf86LoaderCheckSymbol() in drivers.
+ 348. Disable SmartScheduler on LynxOS 3.1 (#4013, Thomas Mueller).
+ 347. Update Japanese PC98 docs (#4012, Isao Ohishi, Takaaki Nomura).
+ 346. Add some S3/Diamond PCI IDs (#4011, Werner Leeb).
+ 345. Update sbus support for recent bus infrastructure changes
+ (David S. Miller)
+ 344. Check for NULL pointers from item 332 (Alan Hourihane).
+ 343. Xf86cfg updates (#4010, Paulo Cesar Pereira de Andrade).
+ 342. Fix threads support in OpenBSD 2.7 and above (#4006, 4009,
+ Carlos A M dos Santos).
+ 341. UCS misc BDF fonts updates, including new oblique/italic versions
+ (6x13O, 8x13O), Korean font covering all Hangul symbols (18x18ko)
+ and many additional autogenerated ISO 8859 fonts to cover with
+ 6x13 and 8x13 all the locale encodings suggested by the Li18nux
+ specification (#4007, Markus Kuhn).
+ 340. Add Linux/Sparc support for the DRI, and a DRI driver for Sun
+ Creator3D hardware (#4004).
+ 339. Fix DRI BusIDString length usage (#4003, David S. Miller).
+ 338. Xterm patch #139 (#4002, Thomas Dickey).
+ 337. Make the use of GlxDefines for libGL independent of BuildXF86DRI (#4001,
+ David S. Miller).
+ 336. Fix i810 build warnings (#4000, Jarno Paananen).
+ 335. Fix an i810 build problem (Keith Whitwell, #4000, Jarno Paananen).
+ 334. Fix a multihead problem with the mga driver (Mark Vojkovich).
+ 333. Add support to the i810 driver for the i815 (Keith Whitwell).
+ 332. Add infrastructure support for cards with multiple CRTCs (screens)
+ per accelerator (PCI entity) (Jeff Hartmann and David Dawes).
+ 331. Fix some Mesa problems (Brian Paul).
+ 330. Rework patch for mapping drmAddMap on Alpha platforms
+ (Bruce Stockwell/Compaq, Alan Hourihane).
+ 329. Don't build Debuggable Library on Linux for the release (Alan Hourihane).
+ 328. Don't build lib/GL/mesa/src/X86 on Alpha systems (Alan Hourihane).
+ 327. xdm warning fix (Marc La France).
+ 326. Make x11perf die gracefully when display cannot be opened
+ (Marc La France).
+ 325. Fix rendition driver compile glitch (Marc La France).
+ 324. #ifdef out glitch in glint driver (Marc La France).
+ 323. Preliminary DGA support in ATI driver (Marc La France).
+ 322. Minor update to DESIGN and Status documents (Marc La France).
+ 321. Fix DGA's reporting of vertical refresh rates to clients
+ (Marc La France).
+ 320. Make driver-provided Sync(), SetViewport() and GetViewport() DGA
+ callbacks optional (Marc La France).
+ 319. Fix XKB compile glitch (Marc La France).
+ 318. Make imstt driver compile (Marc La France).
+
+XFree86 4.0d (16 June 2000)
+ 317. Fix a typo in the xfree86 xkb keycodes file (#3999, Matthieu Herrb).
+ 316. Fix some build problems when the DRI is not enabled (#3998,
+ Matthieu Herrb).
+ 315. Add missing Linux/mips config changes (#3997, Guido Guenther).
+ 314. Fix for libICE DOS (Keith Packard).
+ 313. FontInfo.c (lib/X11) needs to be built with the bigfont defines (#3996,
+ Paulo Cesar Pereira de Andrade).
+ 312. Disable the smart scheduler for SVR4.0 (based on #3916, Takaaki Nomura).
+ 311. Add a check for PS/2 mice on Linux for the X server's -configure
+ option (#3991, Paulo Cesar Pereira de Andrade).
+ 310. Fix a problem mouse driver button flush was causing with Xaw menus
+ (#3991, Paulo Cesar Pereira de Andrade, David Dawes).
+ 309. Modify scanpci to print out card/subsys information, and add a few
+ more entries to the pci data (David Dawes).
+ 308. Fix r128_cursor.c build problem for big-endian machines (#3989,
+ Thomas Mueller, #3994, Ani Joshi).
+ 307. Update LynxOS docs (#3989, Thomas Mueller).
+ 306. Add a few PPC compiler internal symbols to the loader's export list
+ (#3989, Thomas Mueller).
+ 305. Add crypt support to xdm for LynxOS (#3989, Thomas Mueller).
+ 304. Add preliminary build support for LynxOS 3.1.0 (#3989, Thomas Mueller).
+ 303. Add keysyms to complete the set for the Compaq SK2850 keyboard and
+ the Microsoft Natural Keyboard Pro (David Dawes).
+ 302. Add new keysyms for PDAs (#3985, 3987, 3988, Jim Gettys).
+ 301. Xterm patch #138 (#3986, Thomas Dickey).
+ 300. DRI megapatch III. This includes DRI enhancements, 3dfx fixes and
+ updates, updates Mesa to the latest version, adds Intel i810, Matrox
+ G200/G400, ATI Rage 128 and 3dfx Voodoo5 3D support, adds ATI Rage
+ Mobility 2D support (disabled by default). (Precision Insight and
+ VA Linux Systems).
+ 299. Add a function to the X server that performs the same checks on
+ command line arguments and environment variables as the Xwrapper
+ from 3.3.x. This function is called very early from main()
+ (David Dawes).
+ 298. Fix for some Xlib problems that can show up when connecting to
+ a rogue server (Keith Packard, with analysis by Chris Evans).
+ 297. Increase MAXVISUALSPERDEPTH to 64 for Xnest so that it can handle
+ GLX's visuals.
+ 296. Add a Macedonian xkb symbols file (#A.96, Zlatko Trajceski).
+ 295. Fix a buffer overflow with the -xkbmap X server flag (#A.91,
+ Trevor Johnson).
+ 294. Fix a rectangle fill problem that shows up with an AGP SiS 6326
+ (A.81, A.83, Milivoj Savin).
+ 293. Fix a problem in xcalc when the current locale uses a character
+ other than "." for the decimal point (#A.63, Stanislav Brabec).
+ 292. Allow some more parameters in linux.cf and lnxLib.rules to be
+ redefined (#A.60, Stanislav Brabec).
+ 291. Fix a typo in lib/Xss/Imakefile (#A.59, Stanislav Brabec).
+ 290. Fix an xfs crash that shows up when many clients connect (#A.48,
+ Remy Card).
+ 289. Fix some man page build problems (#A.43, Ian Collier).
+ 288. Fix xedit core dump (in Xaw) on Solaris, related to the bsearch()
+ usage (#A.42, Ian Collier).
+ 287. Add xkb mappings for the keycodes generated by the SysRq and Break
+ keys, which are different from the keycodes generated when used as
+ PrtScn and Pause (#A.29, Eric W. Biederman).
+ 286. Fix problems when building on Solaris 2.6/sparc and Irix 6.5.5
+ (#A.21, A.28, Sullivan N. Beck).
+ 285. Fix a core dump in fstobdf when using 16 bit fonts (#A.25,
+ Morten Storgaard Nielsen).
+ 284. Clean up some of the messages printed by the neomagic driver
+ (David Dawes).
+ 283. Add support for the 2360 (256ZX) to the neomagic driver, and enable
+ acceleration at depth 24 for this chip (#A.23, Gregory M Pomerantz).
+ 282. Adjust the bigfont extension to not use SHM segments for fonts with
+ a small glyph metric size, and fix a build problem on systems without
+ shared memory (#3984, Bruno Haible).
+ 281. Status doc updates (#A.9, Chris Smith, A.80, Ferenc Acs).
+ 280. Fix memleak warning when doing realloc(NULL, size) (#A.7,
+ Charles G Waldman).
+ 279. xf86cfg fixes (#3983, Paulo Cesar Pereira de Andrade).
+ 278. Add SilkenMouse support to the s3virge driver (#3982, Kevin Brosius).
+ 277. Update Xv support in the glint driver and add the XvPutImage function
+ for the Permedia 2 (#3926, Michael Schimek).
+
+XFree86 4.0c (13 June 2000)
+ 276. Xterm patch #137 (#3976, Thomas Dickey).
+ 275. Doc update for the chips driver (#3981, David Bateman).
+ 274. Fix some problems building with the SDK (#3981, David Bateman).
+ 273. Fix comments for the address matching algorithm in
+ XauGetAuthByAddr() and XauGetBestAuthByAddr() (Keith Packard, based on
+ #3939, Peter Runestig).
+ 272. Handle setting SharedLibXdmGreet in the OS imake config files rather
+ than having a complicated expression in the xdm Imakefile (#3980,
+ Matthieu Herrb).
+ 271. xdm updates from the OpenBSD team, including:
+ - support for Kerberos IV authentication [enabled only in OpenBSD.cf,
+ but could be enabled for other systems by setting HasdKrbIV]
+ - use the arc4random(4) random number generator on OpenBSD
+ - add a new resource "allowRootLogin", which can be used to disable
+ root logins through xdm
+ - log failed logins to syslogd [OpenBSD only, but could be enabled on
+ other systems]
+ - verify that the shell is valid using /etc/shells [OpenBSD only]
+ - verify that the account hasn't expired [OpenBSD only, but could be
+ enabled on other system that use the same passwd aging structure]
+ (#3948, 3980, OpenBSD team, Matthieu Herrb).
+ 270. Big/little endian MMIO_XX macros for ppc, and also PIO macros check
+ that IOBase is mmapped before doing any accesses (#3979,
+ Kostas Gewrgiou).
+ 269. Preliminary driver for Integrated Micro Solutions TwinTurbo128
+ (imstt) (#3978, Ani Joshi).
+ 268. Fix broken czsk keymaps, and let the user directly select either
+ Czech or Slovak keyboard in xf86config (#3975, Kamil Toman).
+ 267. Implement DGA2 support with depth switching for ATI Rage 128 cards
+ (#3974, Ove Kaaven).
+ 266. Recent versions of FreeBSD have the xpg4 library folded into libc.
+ 265. xf86cfg updates (#3973, Paulo Cesar Pereira de Andrade).
+ 264. Xaw bug fixes (#3973, Paulo Cesar Pereira de Andrade).
+ 263. Fix M-d and M-h key bindings in the Xaw Text widget (#A.87,
+ Jonathan Kamens).
+ 262. Fix some Xaw memory errors (#A.79, Jonathan Kamens).
+ 261. Xman fixes/updates, including:
+ - Fix a core dump in fclose()
+ - Append the default search path when MANPATH ends in a ':'
+ - Understand man pages that have a single line with a .so directive
+ (#3969, 3973, Paulo Cesar Pereira de Andrade).
+ 260. Resync nls Compose file with 3.3.6 (#3964, 3973,
+ Paulo Cesar Pereira de Andrade).
+ 259. Fix moving the pointer between screens when using MouseKeys, and fix
+ some bugs in the xkbfile code (#3963, 3973,
+ Paulo Cesar Pereira de Andrade).
+ 258. Fix XC-SECURITY security bug (#3954, 3973,
+ Paulo Cesar Pereira de Andrade).
+ 257. Bigfont bug fix, which stops cvsup crashing (#3954, 3973,
+ Paulo Cesar Pereira de Andrade).
+ 256. Replace some bitswapping assembler code in XAA with faster C code
+ (Mark Vojkovich).
+ 255. Rendition driver updates, including:
+ - add DirectColor support
+ - add SilkenMouse support
+ - documentation updates
+ - some code cleanups
+ (#3972, Dejan Ilic).
+ 254. For v4l: don't advertise the XV_VOLUME attr if we're only going to
+ return BadMatch on use (#3968, David Woodhouse).
+ 253. Modify the I2C delay routine to use xf86getsecs (gettimeofday) instead
+ of an uncalibrated loop (#3967, Andrew Aitchison).
+ 252. Add some PCI ids to xf86PciInfo.h, and include some instructions
+ about how to add new PCI data (#3966, Kevin Brosius).
+ 251. Update documentation for Japanese PC98 (#3965, Satoshi Kimura,
+ Akio Morita, Takaaki Nomura).
+ 250. XIM patch (imInt.c) (#3962, Fuminori Hirayama).
+ 249. Xterm patch #136 (#3960, Thomas Dickey).
+ 248. Fix Imake.rules for building on Solaris 7 with gcc-2.95.2 (#3958,
+ Nicholas Brealey).
+ 247. Add basic support for the Linux/mips and mipsel architecture (#3957,
+ 3970, Guido Guenther).
+ 246. Disable reading the BIOS in the int10 code for Japanese PC98 (#3959,
+ Isao Ohishi).
+ 245. Add a "NoPciBurst" option to the Trident drive for Japanese PC98
+ cards with the TGUi968x chip (#3955, Akio Morita).
+ 244. Xterm patch #135 (#3951, Thomas Dickey).
+ 243. Fbdev driver fix (#3953, Ani Joshi).
+ 242. Xterm patch #134 (#3949, Thomas Dickey).
+ 241. Import the mktemp() usage fixes for imake from the 3.3.x branch
+ (#3947, Matthieu Herrb).
+ 240. Rman updates, including:
+ - minor reformating (make { and } match)
+ - fix logic for parsing comments in man pages, which allows the
+ copyrights to appear in the output html
+ - a few changes based on weblint and tidy
+ (#3946, Thomas Dickey).
+ 239. Fix incorrect type for vgaIOBase in the neomagic driver (#3944,
+ Ani Joshi).
+ 238. Fix an Xlib build problem when the big-font extension is disabled
+ (#3945, Mutsumi Ishikawa).
+ 237. Xv v4l attribute handling bug fix (#3928, Gerd Knorr).
+ 236. Fix some problems with the locale-dependent input processing in Xlib
+ by:
+ - removing unneeded to/from CTEXT conversion for characters coming
+ from keyboard input
+ - move "locale_code" and "keyboard charset" searching to the
+ initialization step (XIM creation)
+ - Fix some inconsistencies between memory allocation and freeing
+ in XIM objects (imLcIm.c imThaiIm.c)
+ (#3927, Ivan Pascal).
+ 235. Update support for Appian J2000 board with dual PM3 chips, and
+ add partial acceleration (#3977, Sven Luther).
+ 234. Only claim other devices on the same card when gamma chip is used
+ in the glint driver (Alan Hourihane).
+ 233. Separate offscreen memory manager API from implementation to facilitate
+ driver replacement of the default manager (Mark Vojkovich).
+ 232. Add Option "TexturedVideo" to have the Matrox driver optionally use
+ YUV textures instead of the video overlay for XvImage support
+ (Mark Vojkovich).
+ 232. Add Xv functions for allocating/freeing XvVideoAdaptorRecs to shield
+ drivers from structure size changes (Mark Vojkovich).
+ 231. Have XDGAQueryModes return no modes as being available instead of an
+ error when DGA is not supported on the particular screen (Mark Vojkovich).
+ 230. Fix xdm when PAM is not available (Marc La France).
+ 229. Fix int10 bug on non-PC platforms (Marc La France).
+ 228. Finish prototyping of DPS libraries. Fix argument promotions in
+ pswrap. Fix yytext portability problem. Fix non-standard format
+ in pswrap (#3941, #3942, Nomura Takaaki, Thomas Dickey).
+ 227. Fixed FP chipset handling in Trident driver. LCD-CRT switching
+ should work now (Egbert Eich).
+ 226. Modified device detection on PCI bus to handle Host-to-PCI bridges
+ better (Egbert Eich).
+ 225. Fix i810 driver so it advertises 32bpp pixmaps in depth 24 like the
+ rest of the drivers do (Mark Vojkovich).
+ 224. Added a call ioperm() to to allow vm86 to execute in/out calls
+ directly to avoid problems with certain notebook bioses (Egbert Eich).
+ 223. Fixed mouse driver to flush pending button press events on
+ protocol change (Egbert Eich).
+ 222. Fixed DDC support and sync flags handling in trident driver
+ (Egbert Eich).
+ 221. Added PAM support to xdm, ANSIfied prototypes (Werner Fink).
+ 220. Added ServerFlag to force the use of OS PCI config space
+ support (Egbert Eich).
+ 219. Fix Xv DDX stop overlaid stills/images when XvStopVideo() is called
+ (Mark Vojkovich).
+ 218. Have the Xv DDX send clients exposure events when windows containing
+ overlaid data, which isn't actually in the framebuffer, are moved
+ (Mark Vojkovich).
+ 217. Fix ordering of calling DDC probe in VBE to respect NoDDC options
+ (Alan Hourihane).
+ 216. Fix VBE initialization in trident driver for DDC (Alan Hourihane).
+ 215. Fix a typo in the glint driver (#3943, Michael Schimek).
+ 214. Fix multithread bug in Xlib big font support (Mark Vojkovich).
+ 213. Fix a window class initialization problem in Xinerama (Mark Vojkovich).
+ 212. Fix some multithreading related problems in the Xv client library
+ (Mark Vojkovich).
+
+XFree86 4.0b (23 May 2000)
+ 211. Add support to the sunffb driver for multiple visuals on the same screen,
+ overlays, double buffering and some other niceties (#3938,
+ David S. Miller, Jakub Jelinek).
+ 210. Make the modifier setting on Sun keyboards match what XFree86 expects
+ (#3937, Jakub Jelinek).
+ 209. Add unaccelerated support for the Sun CG6 (#3935, Jakub Jelinek).
+ 208. Make the -configure option work with SBUS/UPA drivers, fix some
+ bugs in the sbus layer, add support for ioctl based colormap setting,
+ and fix leds on Sun keyboards (#3934, Jakub Jelinek).
+ 207. Fix a parallel build problem in lib/dps (#3932, H. J. Lu).
+ 206. Fix some build problems that show up with LynxOS x86 and PowerPC (#3929,
+ Thomas Mueller).
+ 205. Fix documentation files for the mutouch and elographics drivers,
+ and build these drivers by default (#3935, Patrick Lecoanet).
+ 204. Make the dga2 library use the device name provide by the driver rather
+ than always using the default (3924, David S. Miller).
+ 203. Fix a problem with the internal xalloc that shows up on Sparc (#3923,
+ David S. Miller).
+ 202. Fix a GLX visual problem that causes a crash at server shutdown
+ (#3922, David S. Miller).
+ 201. 8+32 framebuffer for hardware that uses window IDs (David S. Miller).
+ 200. Fix a memory allocation in lbxproxy that can cause it to crash at
+ startup (#3921, Peter Runestig, #A.46, Rob Clark).
+ 199. Fix a problem with imake's handling of DefaultGccIncludeDir (#3920,
+ Peter Runestig, #A.64, Stanislav Brabec).
+ 198. lib/X11/imInt.c fix from the OpenMotif release notes (#3919).
+ 197. Prototype and fix almost all compiler warnings fot he dps library
+ and the related pswrap program (#3912, Thomas Dickey).
+ 196. Fix for x-tt font cache corruption (#3911, H. J. Lu).
+ 195. Ansi prototypes for the lbxusilt library and Xserver/lbx directory
+ (#3908, Matthieu Herrb).
+ 194. Fix some bugs in the cirrus lg driver (#3900, Itai Nahshon).
+ 193. Accelerated driver for Sun Leo/ZX cards (#3899, 3936, Jakub Jelinek).
+ 192. Fully accelerated driver for Sun FFB and AFB chips (#3898,
+ Jakub Jelinek).
+ 191. Generic SBUS and UPA support for XFree86 (#3897, Jakub Jelinek).
+ 190. Fix building xf86cfg on systems where libxpm isn't linked in
+ implicitly (#3903, Matthieu Herrb).
+ 189. Update the fbdevhw stubs for an interface change (#3902, Matthieu Herrb,
+ #3910, Bernd Ernesti).
+ 188. Simplify the platform defines in servermd.h to make them more hardware
+ dependent than OS dependent (#3913, Kurt Lidl).
+ 187. Fix a bug in the search/replace dialog in the Xaw text widget (#3896,
+ Paulo Cesar Pereira de Andrade).
+ 186. Xterm patch #133 (#3894, Thomas Dickey).
+ 185. Fixes for the Xaw TipWidget (#3893, Paulo Cesar Pereira de Andrade).
+ 184. Change CTEXT from/to converters to allow processing of "C1" codes
+ (0x80-0x9f) as ordinary characters for "non-standard" encodings
+ (such as UTF-8) (#3891, Ivan Pascal).
+ 183. Add "software" per-key auto-repeat disabling (#3889, Ivan Pascal).
+ 182. Refix fog.c build problem on Alpha (#3888, Dave Gilbert).
+ 181. Add some new things for the VidMode interface in xf86cfg (#3877,
+ Paulo Cesar Pereira de Andrade).
+ 180. Rework most of the look and feel of xf86cfg, and fix some bugs (#3877,
+ 3886, 3892, Paulo Cesar Pereira de Andrade).
+ 179. Add a ProjectRoot to Xaw rather than hard-coding it, so that the
+ pixmap code can find pixmaps and bitmaps on non-standard installations
+ (#3877, Paulo Cesar Pereira de Andrade).
+ 178. Fix a bug in the DRI section parsing (David Dawes).
+ 177. Add support for building shared libraries on BSD/OS (#3876, Kurt Lidl).
+ 176. Add imake support for automatically determining the version for BSD/OS,
+ and update bsdi.cf for the features relevant to the different versions
+ (#3876, 3940, Kurt Lidl).
+ 175. Xterm patch #132 (#3874, Thomas Dickey).
+ 174. Fix rman-related build problems when building external applications
+ (#3869, Matthieu Herrb, #3890, H. J. Lu).
+ 173. Fix a typo in OpenBSD.cf (#3867, Matthieu Herrb).
+ 172. Fix some build warnings (#3864, Ani Joshi).
+ 171. Fix some BSDI typos in hw/sun (#3862, Kurt Lidl).
+ 170. Fix r128 palette save/restore when VT switching (#3861, Ani Joshi).
+ 169. Disable the X server's internal malloc by default (#3860, Keith Packard).
+ 168. Make xdpyinfo and xf86dga fail gracefully when DGA is not enabled
+ in the driver, but the extension is enabled (#3870, Andrew Aitchison).
+ 167. Fix too many xfree calls in lbxproxy (#3907, Matthieu Herrb).
+ 166. Fix uninitialized fd_set mask in lbxproxy (#3906, Matthieu Herrb).
+ 165. Fix typo when printing HSync frequency when not a range
+ (#3895, Andrew Aitchison).
+ 164. Fix a window unmapping bug in the mioverlay code (Mark Vojkovich).
+ 163. Attempt to improve memory detection reliability in the Matrox driver
+ (Mark Vojkovich).
+ 162. Fix possible SEGV in generic int10 module (Marc La France).
+ 161. Fix *BSD aperture driver to allow for int10 (Bernd Ernesti,
+ Marc La France).
+ 160. Fix vesafb restore problem in ATI driver (Marc La France).
+ 159. Fix a few more compilation glitches (Marc La France).
+ 158. Fix DRM for gamma for single and dual MX chips (Alan Hourihane).
+ 157. Fix Mesa for single and dual MX chips (Alan Hourihane).
+ 156. Fix Mesa for multiple screen widths (Alan Hourihane).
+ 155. Add DGA support to the glint driver.
+ - Fix initialization of DRI when using single or dual MX's.
+ - Fix register resources.
+ - Turn on more acceleration for DualMX boards.
+ - Fix DualMX boards displaywidth problems at >640 widths.
+ - Fix depth15/16 for PM2v and PM3 chipsets (Alan Hourihane).
+ 154. Use MMIO_xx macros in glint driver (#3904, Michel Danzer).
+ 153. Fix lib/GL/mesa/src/X86/Imakefile for m4 (Alan Hourihane).
+ 152. Fix m4 rules in Imake.tmpl (Alan Hourihane).
+ 151. ATI documentation update (Marc La France).
+ 150. Disable debugging messages from XF86-Misc extension (Marc La France).
+ 149. Ensure XAA always respects user options that disable subsets of its
+ primitives (Marc La France).
+ 148. Bug fix in XAA's CPU-to-screen colour expansion (Marc La France).
+ 147. Finish off XAA's CPU-to-screen colour expansion for 24bpp
+ (Marc La France).
+ 146. When matching adapters to XF86Config sections, the ATI driver will now
+ look at the primary adapter before any other non-primary PCI adapters
+ (Marc La France).
+ 145. Ensure Mach64 acceleration is disabled when using the VGA CRTC
+ (Marc La France).
+ 144. Set a Mach64's scaler/overlay clock divider in preparation for a GATOS
+ merge (Marc La France).
+ 143. Make VBE use its own option instead of DDC's (a consequence of
+ re-entrancy) (Marc La France).
+ 142. Make option processing re-entrant in DDC, int10, VBE and XAA modules, and
+ in the common layer (Marc La France).
+ 141. Add Permedia3 support to the glint driver (Sven Luther).
+ 140. Fix XvPutImage in the client libs so that it can use the BIG-REQUESTS
+ extension (Mark Vojkovich).
+ 139. Fixed xf4bpp for devPrivates in PixmapRec. (Egbert Eich).
+ 138. Fixed laguna driver to map FB after the video RAM size is known
+ (Egbert Eich).
+ 137. Fixed xdm to give up to respawn Xservers if the server crashes
+ more than once within 60 seconds (Egbert Eich).
+ 136. Added VGA default clock option to generic driver (Egbert Eich).
+ 135. Fixed CyberShadow option in Trident driver (Egbert Eich).
+ 134. Fix bug where the cursor is not put back after a failed DGA mode
+ initialization attempt (Mark Vojkovich).
+ 133. Add a missing symbol "AllocateColormapPrivateIndex" (Mark Vojkovich).
+ 132. Remove Intel 440BX-specific resources from os-support layer
+ (Marc La France).
+ 131. Change ATI driver to mark VGA resources as unused in operating state when
+ appropriate (Marc La France).
+ 130. Fix bug in the generation of default screen layout (Marc La France).
+ 129. Include all resource attributes when printing them (Marc La France).
+ 128. Fix compiled-in input driver list (Marc La France).
+ 127. Allow driver access to resource manipulation functions (Marc La France).
+ 126. Fix a DGA 2.0 crash that happened when bogus mode numbers were sent
+ by the client (Lionel Ulmer).
+ 125. Make a recent shm pixmap fix Xinerama aware (Mark Vojkovich).
+ 124. Fix mode setting bug in ATI driver (Marc La France).
+ 123. Add int10, DDC & VBE support to ATI driver
+ (Andrew C Aitchison, Marc La France).
+ 122. Allow driver to supply DDC module to VBE (Marc La France).
+ 121. Attempt to fix cyrix driver (untested). (Egbert Eich)
+ 120. Added support for 'inactive' devices. (Egbert Eich)
+ 119. Fixed xf86misc extensions. (Egbert Eich)
+ 118. Fixed design of xf86SetAccessFuncs(). Now all old access funcs
+ are returned if the driver asks for them not only the one
+ that is used in OPERATING state. (Egbert Eich)
+ 117. Added a function LoadDrvSubModule() to allow drivers to load
+ sub modules before a screen is allocated. (Egbert Eich)
+ 116. Fixed lndir to handle trailing '/' on path correctly. (Egbert Eich)
+ 115. Undefined i486/i586/i686 in Imake.cf. cpp might predefine
+ them which might cause undesirable results. (Egbert Eich)
+ 114. Updated x86emu. (Egbert Eich)
+ 113. Fixed problems with xf86RegisterResources() if preregistered
+ resources are not marked ResBios. Identical ranges are not considered
+ to conflict with each other. (Egbert Eich)
+ 112. Improved DDC information printout. (Egbert Eich)
+ 111. Added NODDC options to vbe. (Egbert Eich)
+ 110. Added fixes for Lynx OS. (Egbert Eich)
+ Changed int10 code to always map/allocate entire 1Meg. (Egbert Eich)
+ 109. Let int10 code try harder to locate a video bios to work
+ around some system bios bugs. (Holger Veit, Egbert Eich)
+ 108. Modified fbdevProbe() to return the name string representing
+ the chipset. (Egbert Eich)
+ 107. Minor fixes to i810 driver (Egbert Eich)
+ 106. Fixed format of float numbers in C&T driver. (Jens Taprogge)
+ 105. Added support for the NeoMagic 2360. (Gregory Pomerantz)
+ 104. Add an xf86UnloadSubModule() entry (temporarily disabled)
+ (Marc La France).
+ 103. Fix missing symbol "ServerGrabCallback" (Mark Vojkovich).
+ 102. Fix XAA problems with CPU-to-screen colour expansion (Marc La France).
+ 101. For panel support in the ATI driver, add an entry to the monitor
+ section's mode list for the panel's native resolution (Marc La France).
+ 100. Fix depth24 acceleration problems with 300SX (Alan Hourihane).
+ 99. Update glint driver for fb24_32 and ensure memset used in fb is
+ xf86memset when using loader (Alan Hourihane).
+ 98. By default, limit ATI 3DRage LTPro's to 200 MHz, instead of 230 MHz
+ (Marc La France).
+ 97. Remove some leftover INTERNAL_VS_EXTERNAL_PADDING stuff from the
+ extensions (Mark Vojkovich).
+ 96. Fix a NonTE text bug in XAA where zero-height primitives could be passed
+ to the driver (Mark Vojkovich).
+ 95. Add CPU-to-screen colour expansion acceleration for Mach64's
+ (Kevin Martin, Marc La France).
+
+XFree86 4.0a (6 April 2000)
+ 94. Major OS/2 resync (#3859, Holger Veit).
+ 93. Fix some 'XFree86 -configure' problems when multiple cards (#3850,
+ Paulo Cesar Pereira de Andrade).
+ 92. New graphical config tool (xf86cfg) (#3850,
+ Paulo Cesar Pereira de Andrade).
+ 91. Fix a typo in Xinstall.sh that prevents moving config files to
+ /etc/X11 from being optional (#3858, Richard Gooch).
+ 90. Add lt_LT.ISO_8859-4 to locale.alias, and update the lt symbols for
+ xkb (#3857, Ricardas Cepas).
+ 89. Fix the return values of some "xkb action" filters (SetControls and
+ RedirectKey) (#3854, Ivan Pascal).
+ 88. Fix problems with using "radio group" number one in XKB keyboard
+ descriptions (#3853, Ivan Pascal).
+ 87. Fix MIT-SHM crash caused by incorrect reference tracking (#3851,
+ Keith Packard).
+ 86. Updates to allow a build on sparc-linux to succeed (#3849,
+ Jakub Jelinek).
+ 85. Fix GetImage in XY format in fb at 32bpp (#3848, Keith Packard).
+ 84. Add support for 24/32 fb/pixmap format conversion to fb (#3847,
+ Keith Packard).
+ 83. Update the r128 driver to use fb and fb24_32, and disable
+ transparency at 24bpp (#3846, Keith Packard).
+ 82. Let the server continue when a font path element in the default path
+ is found to be invalid (#3843, Keith Packard).
+ 81. Fix parsing of the Group keyword in the DRI section of the config file
+ (#3842, Stefan Dirsch, David Dawes).
+ 80. Add support for YUV422, YV12, RGB15 and RGB16 XvImages to the C&T driver
+ (#3840, David Bateman).
+ 79. Change the config file Xkb* option priority. Now, if XkbKeymap is
+ set it will be tried first. If a component is present it will override
+ components computed from ruls/module/layout/etc (#3839, Ivan Pascal).
+ 78. Fix an infinite loop problem that can show up in makedepend (#3838, A.10,
+ Jeremy Buhler).
+ 77. Fix Overlay support in the TI ramdac module (Alan Hourihane).
+ 76. Fix mixup between TVP3026/3030 ramdacs in the ramdac module
+ (Alan Hourihane).
+ 75. Increase usage of ReadPixmap within XAA (Mark Vojkovich).
+ 74. Allow the v4l driver to use offscreen YUV surfaces exported by the
+ chipset drivers (Gerd Knorr).
+ 73. Change xf86LoadModules() so that it doesn't quit at the first module
+ that fails to load (David Dawes).
+ 72. SIGIO doesn't work on Linux pipes, so diasble it for input devices
+ which are pipes (#3835, Keith Packard).
+ 71. Bring the SDK support up to date (#3834, David Bateman).
+ 70. Fix an Xlib problem that causes an application crash when inputting
+ cyrillic symbols with the koi8-r locale (and other locales with
+ long esc-sequences) (#3833, Ivan Pascal, #A.15, Serguei Poliakov, #A.34,
+ Stanislav Meduna, #A.40, Rimantas Plaipa, #A.74, Sergei Laskavy).
+ 69. Fixes for S3 Trio3D/2X:
+ - flickering for some cards (bad FIFO setting from bios).
+ - workaround for 8MB ram (ramdac can access only 4MB).
+ - adjust clock limits which have been too low.
+ (#3832, Harald Koenig).
+ 68. Fix v4l problem with a function being called after the module is
+ unloaded (#3831, gbritton@light-brigade.mit.edu).
+ 67. Fixes for the PPC icache flushing code (#3830, Kostas Gewrgiou).
+ 66. Fix for /tmp race installing man pages on OpenBSD (#3829,
+ Matthieu Herrb).
+ 65. Fix problems building the Xsun and XsunMono servers on
+ NetBSD-current/sparc (#3828, Matthieu Herrb).
+ 64. Add a comment to site.def about how to move the /etc/X11 contents to
+ a directory under ProjectRoot (#3827, R Horn).
+ 63. Fix an Xaw bug that shows up when usingn c-mode with xedit on Linux
+ (#3824, Paulo Cesar Pereira de Andrade).
+ 62. Enable devfs support for the v4l driver (based on #3823,
+ Christopher Sekiya).
+ 61. Update for README.FreeBSD (#3822, Kazutaka Yokota).
+ 60. Bump the video driver ABI minor version because of interface changes
+ (now 0.2).
+ 59. Disable SilkenMouse when IO/MEM resource sharing means that it cannot
+ be reliably used (#382o, Keith Packard and Egbert Eich).
+ 58. Fix DGA 1.0 compatibility for mouse events and SetViewport behaviour
+ (#3820, Keith Packard).
+ 57. Fix the Linux APM code so that the X server doesn't hang the machine
+ on suspend (#3820, Keith Packard and Egbert Eich).
+ 56. Fix problems that break Overlay support in the glint driver (#3818,
+ Michel Dänzer).
+ 55. Possible fix for AvailableOptions function and submodule loading
+ for the cirrus driver (David Dawes).
+ 54. Add an entry for the GeForce to the Cards file (#A.6, Oliver Lau).
+ 53. Fix pswrap build problem when cross compiling (#3815, Jim Gettys).
+ 52. Fix a typo in itsy.cf (#3814, Jim Gettys).
+ 51. SiS driver fixes:
+ - 630/540/300 display abnormal for all modes.
+ - 630/540/300 cannot enter true color modes.
+ - 530/620 1600x1200x8bpp display abnormal.
+ (#3807, Can-Ru Yeou, SiS).
+ 50. Fix a -configure crash in the nv driver (#3805, Jarno Paananen).
+ 49. Rendition driver updates:
+ - rename most v_ to verite_ to avoid potential namespace clashes.
+ - add support for VBE DDC and "XFree86 -configure".
+ - fix PROBE_DETECT issues.
+ - Replace a number of ErrorF's with xf86DrvMsg to reduce noise
+ when not requested. A number of debugging messages #ifdef'ed also.
+ - Option "MTRR" reenabled. Was disabled when acceleration was debugged.
+ (#3785, 3808, Dejan Ilic).
+ 48. S3virge driver updates:
+ - Revert WAITIDLE to cleanly abort a segfaulting imagewrite.
+ - Start of GX2 fixes.
+ - Add DDC monitor X -configure code.
+ - Update copyrights
+ (#3783, Kevin Brosius).
+ 47. Update XSetWMProperties() to set the WM_LOCALE_NAME property (#3780,
+ Peter Novodvorsky).
+ 46. Xterm patch #131 (#3777, Thomas Dickey).
+ 45. Add some xtest tests to cover some accelerated cases implemented by
+ XAA, and fix some Linux/glibc build problems (#3767, Rik Faith).
+ 44. Xineramification of XvImage support (Mark Vojkovich).
+ 43. By default, cache writes to selected Mach64 MMIO registers and allow this
+ cache to be disabled (Marc La France).
+ 42. Add detection of Rage128 Mobility to ATI driver (Marc La France).
+ 41. Fix a Xinerama GetImage bug that showed up in 24+32 (Mark Vojkovich).
+ 40. Fix XAA transparent blits. They are broken in 4.0 (Mark Vojkovich).
+ 39. Fix typo in mioverlay that broke resize gravity (Mark Vojkovich).
+ 38. Fix PCI/AGP bridge I/O and memory window detection (Marc La France).
+ 37. Add Mach64 solid zero-width line acceleration, except for 24bpp
+ (Kevin Martin, Marc La France).
+ 36. Add Mach64 mono 8x8 pattern fill acceleration (Kevin Martin,
+ Marc La France).
+ 35. Fix DDC bug (John McCorquodale).
+ 34. Fix minClock and maxClock determination in ATI driver (Marc La France).
+ 33. A first step at allowing -configure to deal with more than one device per
+ driver (Marc La France).
+ 32. ATI driver changes: Implement Mach64 engine restriction on virtual
+ resolution; Add DPMS support; More DSP calculation fixes; Fix text
+ mode restoration bug; Fix Mach64 screen blanking; Don't probe for
+ previously claimed VGA compatibles; Fix device section matching for
+ Mach64 controllers made by UMC foundry; Miscellaneous cleanups
+ (Marc La France).
+ 31. Add GLINT 300SX support to the glint driver (Alan Hourihane).
+ 30. Remove the unused GLINT Delta code (for now) to re-implement as
+ a chipset (like the gamma) from the glint driver (Alan Hourihane).
+ 29. Add support for the TVP3026 ramdac to the ramdac module (Alan Hourihane).
+ 28. Add support for building and installing HTML versions of the man
+ pages (David Dawes).
+ 27. Fix some limitation in rman so that it will handle our man pages
+ correctly (David Dawes).
+ 26. Import rman-3.0.8, for generating HTML versions of the man pages
+ (David Dawes).
+ 25. ATI fixes to Cards database (Marc La France).
+ 24. Fix some man page formatting problems that show up on some platforms
+ (David Dawes).
+ 23. Fix an 8+24 bug that occured when shared memory pixmaps were used as
+ tiles (Mark Vojkovich).
+ 22. Support for the Trident CyberBlade/DSTN/i1 (Alan Hourihane).
+ 21. Fix Xinerama problems that occured when screen zero was not at (0,0)
+ (Mark Vojkovich).
+ 20. Add untested support for Matrox SDRAM G400s (Mark Vojkovich).
+ 19. Improve memory probing reliability in the Matrox driver (Mark Vojkovich).
+ 18. Fix DESIGN doc and XF86Config man page information about the Screen
+ entry format in the ServerLayout sections (David Dawes).
+ 17. Add missing file permission flags to xf86shmget (Mark Vojkovich).
+ 16. Workaround in 8+32 for applications that assume changes to window
+ background pixmaps go into effect immediately (Mark Vojkovich).
+ 15. Change loader search order to look in more specific subdirectories first,
+ thereby avoiding loading 3.3.* module versions (Marc La France).
+ 14. Remove the var-* bindist files for platforms that don't use Xvar.tgz
+ (David Dawes).
+ 13. No Xset.tgz, so remove the set-list bindist files (David Dawes).
+ 12. Fix Xinstall's symlink testing for Solaris (/bin/sh's builtin doesn't
+ recognise '-L') (David Dawes).
+ 11. Update Xinstall.sh to handle the xkb/compiled directory properly in all
+ cases, including when there is no Xvar.tgz tarball (David Dawes).
+ 10. Add missing cs_CZ.ISO_8859-2 entries to locale.alias (#A.20,
+ Cejka Rudolf).
+ 9. Updates to Linux-ix86 bindist host.def file.
+ 8. Fix installation of iso8859-{1,2,3} Compose files, and fix the czech
+ entry in locale.alias (Charles Lopes, #A.62, Stanislav Brabec).
+ 7. Fix some problems with layers forgetting that SwitchMode is an
+ optional function (Mark Vojkovich).
+ 6. Parser bug fix for hexadecimal numbers (Marc La France).
+ 5. Fix scanpci (Marc La France).
+ 4. DPMS #include fix (Marc La France).
+ 3. Fix an event ordering problem in Xinerama (Mark Vojkovich).
+ 2. Fix some clipping bugs in the Xv DDX (Mark Vojkovich).
+ 1. Remove 24bpp shadowfb support from the NV driver since the hardware
+ is not capable of 24bpp (Mark Vojkovich).
+
+XFree86 4.0 (8 March 2000)
+3972. Possible fix for a cirrus driver crash when using -configure
+ (David Dawes).
+3971. R128 driver doc update (#3813, Ove Kaaven).
+3970. Update Unicode/ISO 10646 information in the release notes (#3812,
+ Markus Kuhn).
+3969. Fix an apm driver crash when using -configure (#3811, Loic Grenie).
+3968. Release notes updates (David Dawes).
+3967. Major updates to the XF86Config man page (David Dawes).
+3966. Update the Cyrix driver documentation (#3810, Richard Hecker).
+3965. Update the APM driver documentation (#3809, Loic Grenie).
+3964. Fix a name clash in XF86OffscreenImageRec (Mark Vojkovich).
+
+XFree86 3.9.18Za (7 March 2000)
+3963. GCC/egcs bug workaround and other more minor ATI fixes (Marc La France).
+3962. Split HasGlide into HasGlide2 and HasGlide3 (David Dawes).
+3961. Enable known gcc optmisation work arounds by default (David Dawes).
+3960. Fix uninitialized screen function (RestackWindow) (#3806, Keith Packard).
+3959. Added DRI users guide documentation (Brian Paul and Kevin Martin).
+3958. Update the -misc-fixed-* BDF fonts. New glyphs have been added and
+ some old ones fixed. 10x20.bdf and 9x15.bdf now also cover the
+ ISO 8859-6 characters (Arabic), and 18x18ja.bdf covers now all
+ characters necessary to display the full ISO-2022-JP-2 repertoire
+ (#3799, Markus Kuhn).
+3957. Make sure the fbdevhw module is loaded by the glint driver when it
+ is needed, and add some memory barriers to some register access macros
+ (#3804, Michel Dänzer).
+3956. Update the glint driver man page and release notes (#3804,
+ Michel Dänzer).
+3955. Remove some noisy messages from the mga driver (#3803, Mark Vojkovich).
+3954. The last segment in any zero-width polysegment drawing request to
+ a window with more than one clipping rectangle gets dropped in the
+ fb code (#3802, Keith Packard).
+3953. Fix the versions for which HasMTRRSupport is enabled for OpenBSD
+ (#3800, Matthieu Herrb).
+3952. Fix some "ambiguous" else statements in some of the driver Probe()
+ functions (David Dawes).
+3951. Don't make the VBEInit call in the chips driver dependent on the loader
+ server (David Dawes).
+3950. Register vbe symbols as "referenced" with the loader in drivers that
+ use them (David Dawes).
+3949. Fixed the unresolved VBE symbols in the r128 driver and a crash
+ related to referencing vgahw symbols before the module is loaded
+ (Kevin Martin).
+3948. Fix a -configure crash in the tdfx driver (David Dawes).
+3947. Fix a mouse driver bug that prevented the X server from seeing the
+ mouse button 4 and above when three button emulation is enabled
+ (#3773, Yoshihiko Sarumau, Kazutaka Yokota).
+3946. Add NO_GXCOPY to the s3virge driver's imagewrite flags, which fixes
+ a crash (#3783, Kevin Brosius).
+3945. Fix a parser build problem for Interactive Unix, and update the
+ docs (#3796, Michael Rohleder).
+3944. Fix the r128 hw cursor for big endian machines, and enable building
+ the r128 driver for PPC (#3975, Kostas Gewrgiou).
+3943. Update lnxResource.c to allow builds to succeed on PPC platforms
+ (#3795, Kostas Gewrgiou).
+3942. B&H Lucidux fonts (#3794, donated by Charles Bigelow, Kris Holmes
+ from Bigelow and Holmes Inc, with hinting donated by Berthold Horn and
+ Blenda Horn from Y&Y, Inc).
+3941. Doc update for the sis driver (#3793, R Horn).
+3940. Fix an xman build problem on LynxOS (#3792, Thomas Mueller).
+3939. Fix some 24-plane problems with the tga driver, and update the docs
+ (#3789, Martin Lucina).
+3938. Rage 128 documentation update (Kevin Martin).
+3937. Fix an unresolved reference to VErrorF from the int10 module
+ (David Dawes).
+3936. Reduce some of the noise in the server startup messages (David Dawes).
+3935. Static library objects don't use THREADS_CFLAGS (#3790, Matthieu Herrb).
+3934. Fix a fatal error related to shared memory pixmaps in Xinerama (#3788,
+ Mark Vojkovich).
+3933. Fix IA64 build fixes (#3787, Mark Vojkovich).
+3932. Fill out the rendition man page (#3785, Dejan Ilic).
+3931. Update the s3virge man page (#3784, Kevin Brosius).
+3930. Fix the FreeBSD/alpha code to track changes made to the Linux memory
+ mapping code (#3782, Doug Rabson).
+3929. Update email addresses for C&T driver authors (#3781, Nozomi Ytow).
+
+XFree86 3.9.18Z (3 March 2000)
+3928. Restrict the X server -configure option to root, and fix a crash
+ when the server fails to read the first stage config file that it
+ writes when run with this option (David Dawes).
+3927. Modify the parser's xf86WriteConfigFile() function to write the
+ file using the real user id when the real and effective ids are
+ different (David Dawes).
+3926. Fix a problem with VT switching disabling direct rendering 3D apps
+ (Kevin Martin).
+3925. Add an imake parameter called XFree86Devel that can be set in host.def
+ to enable devel-specific settings (like more verbose compiler warnings),
+ and adjust GccWarningOptions to use this (David Dawes).
+3924. Various doc updates, and don't install out of date docs (David Dawes).
+3923. Fix a thread related problem in the Xv client library (Mark Vojkovich).
+3922. Fix a Xinerama problem with XShapeMask (Mark Vojkovich).
+3921. LynxOS documentation and bindist updates, and an os-support fix (#3779,
+ Thomas Mueller).
+3920. Update the wacom input driver to suppor the PL400 model and the
+ stroking pen on the Intuos model (#3778, Frederic Lepied).
+3919. -
+3918. -
+3917. Add prototypes for xman, and eliminate most of the compiler warnings
+ (#3772, Thomas Dickey).
+3916. Xterm patch #130 (#3771, Thomas Dickey).
+3915. Fix a segfault in XAA caused by reading beyond shared memory bitmaps
+ when hardware clipping is not available (Mark Vojkovich).
+3914. Update the mga man page (Mark Vojkovich).
+3913. A Q&D fix for GLX segment violation in loader server (Marc La France).
+3912. Add Mach64 screen-to-screen copy acceleration (Kevin Martin,
+ Marc La France).
+3911. IA-64 fixes (Mark Vojkovich).
+3910. Add skeleton man pages for the video and input drivers that don't
+ already have one (David Dawes).
+3909. Add man pages for the mouse, keyboard and void input drivers
+ (David Dawes).
+3908. Enable building the "void" input driver by default (David Dawes).
+3907. Keep xf86RegisterRootWindowProperty from freeing data it didn't
+ allocate (Mark Vojkovich).
+3906. Add an extra file name to the server config file search path --
+ XF86Config-M, where M is the major version number (David Dawes).
+3905. DRI megapatch II. This includes DRI enhancements, 3dfx fixes and
+ updates, updates Mesa to version 3.3 beta, adds new GLX dispatch
+ code and adds i810 2D support (Precision Insight).
+3904. Add SERVER_OVERLAY_VISUALS root window property (Mark Vojkovich).
+3903. Remove unnecessary VGA CRTC unlock/relock in cyrix driver
+ (Marc La France).
+3902. Fix ATI driver's 8514/A probe delay when one isn't present
+ (Marc La France).
+3901. Changes to -configure: ATI driver interface; Move default monitor
+ tolerances to xf86ValidateModes(); Let drivers decide on default depth
+ and mode; Don't "special-case" VGA driver. (Marc La France)
+3900. Fix xc/lib/Imakefile for BuildServersOnly (Marc La France).
+
+XFree86 3.9.18b (29 February 2000)
+3899. Fix a bug in lnx_apm.c that causes fd 0 to be closed instead
+ of the just opened /proc/apm (#3766, Kars de Jong).
+3898. Fix a SuperProbe build problem on UnixWare 7 (#3765, Thanh Ma).
+3897. Mouse doc updates (#3764, Kazutaka Yokota).
+3896. Speed up dashed lines and conic sections in fb, including changing
+ mi to use PolyPoint instead of FillSpans for dashed arcs (#3763,
+ Keith Packard).
+3895. Add shadowfb support to the rendition driver (#3762, Dejan Ilic).
+3894. Allow Rage128 driver to Probe DDC too (Alan Hourihane).
+3893. Allow i740 driver to Probe DDC (using vbe) for -configure, and remove
+ one liner from tdfx driver to enable it too (Alan Hourihane).
+3892. Make GNU make -j workaround separately configurable (Marc La France).
+3891. Replace remaining occurrences of BuildXTT imake symbol with
+ BuildXTrueType (Marc La France).
+3890. Fix some problems using the UTF-8 -locale:
+ - Add proper side (GL/GR) handling to the UTF-8 locale
+ - No more need to define ISO10646-1 in en_US.UTF-8. It is already
+ defined in lcCT.c
+ - The fontset loading routines would access invalid memory when
+ not all fonts for a fontset were found
+ (#3761, Bruno Haible).
+3889. Avoid spurious warnings from the XFree86-Bigfont extension (#3760,
+ Bruno Haible).
+3888. Fix an error in the XtAppMainLoop() man page related to its return
+ behaviour (#3759, Bruno Haible).
+3887. Make it possible for gcc to compile the Linux int10 module with -fPIC
+ (#3758, Bruno Haible).
+3886. Fix typos in fontcacheP.h and RELNOTES (#3757, Bruno Haible).
+3885. Disable stripping programs when they are installed to make it
+ easier to debug problems that may show up within libraries (#3756,
+ Bruno Haible).
+3884. Add support for reading power management events for NetBSD and
+ OpenBSD (#3755, Matthieu Herrb).
+3883. Update Xinstall.sh for NetBSD-current-ELF (#3754, Matthieu Herrb).
+3882. Update NetBSD and OpenBSD bindist files (#3753, Matthieu Herrb).
+3881. Apm driver update, including extending the Rush extension to allow
+ initialisation of the Rush chip in a legal way (#3752, Loic Grenie).
+3880. Xterm patch #129 (#3751, Thomas Dickey).
+3879. Add DDC support to the tdfx driver via the vbe interface (#3750,
+ Jarno Paananen).
+3878. Enable double scan and interlaced modes for the tdfx and nv drivers
+ (#3750, Jarno Paananen).
+3877. Fix 8bpp initialisation problem with the rendition driver (#3749,
+ Dejan Ilic).
+3876. Update the XThrStub library version with that in the 3.3.x branch,
+ and enable thread-safe libraries for OpenBSD 2.6 and later (#3748,
+ Matthieu Herrb).
+3875. Fix some REGION_BROKEN related stuff with the overlays (Mark Vojkovich).
+3874. Fix a bug with unaccelerated pixmap cache uploads when virtualX
+ was larger than the displayWidth (Mark Vojkovich).
+3873. Xinerama changes (Mark Vojkovich).
+ - extend the Xinerama protocol and change the version number to 1.1.
+ - add a new client API in the "Xinerama" namespace with more
+ functionality than the previous "PanoramiX" functions.
+ - move Xinerama functions out of libXext and into libXinerama.a.
+ - some Xinerama bug fixes.
+3872. Add a flags field to the XF86OffscreenImageRec (Mark Vojkovich).
+3871. Fix a malloc/free problem in Xnest on 64-bit platforms (David Dawes).
+3870. Update bindist definition files (David Dawes).
+3869. More installer updates (David Dawes).
+3868. Make -configure generate multihead configs (Alan Hourihane).
+
+XFree86 3.9.18a (25 February 2000)
+3867. Add a preliminary Install document (David Dawes).
+3866. Remove obsolete XF98 and XF68 definitions from xfree86.cf (David Dawes).
+3865. Fix some rendition driver problems (#3746, Dejan Ilic).
+3864. Add build-time support for using fb instead of cfb with the nv
+ driver (#3744, Jarno Paananen).
+3863. Add missing xf86_ansic.h include for the nv driver, and avoid a
+ gcc 2.96-generated memcpy call in Mesa (#3743, Jarno Paananen).
+3862. Glint driver updates:
+ - removed obsolete NoWriteBitmap option
+ - reworked pm2_accel.c (cleaned up swapping/mirroring, removed
+ obsolete hacks)
+ - fixed setting of mode sync flags
+ - fixed PolySegmentThinSolidWrapper functions
+ (#3742, Michel Dänzer).
+3861. Change the positioning of $(XF86INT10LIB) to fix some static server
+ linking problems (#3741, Kevin Brosius).
+3860. Make xclock's -brief option off by default, and document it in the
+ man page (#3740, Nozomi Ytow).
+3859. Improve the default converters set in libX11, and use it for all
+ "one byte" locales (#3737, Ivan Pascal).
+3858. Some improvements to the generic converters set in libX11, including:
+ - some converter optimization
+ - actions that can be done once at initialization step moved to
+ lcGeneric.c
+ - converters from CharSet to MultiByte/WideChar added
+ (#3731, Ivan Pascal).
+3857. Add a "showCurrent" resource for Xaw, which makes the list widget
+ always show the selected item (#3728, Paulo Cesar Pereira de Andrade).
+3856. Use fb for the fbdev driver, and check if the fbdev modes are suitable
+ for the monitor (#3709, Michel Dänzer).
+3855. Add support for finding VT devices for Linux kernels compiled with
+ devfs (#3692, Christopher Sekiya).
+3854. Implmenent the Font Type font properties for the Speedo, Type 1 and
+ TrueType backends (#3688, Juliusz Chroboczek).
+3853. Add an installation script (Xinstall.sh) for installing binary
+ distributions (David Dawes).
+3852. Fix bitmap installation location for xditview (#3724, Harald Koenig).
+3851. Make -probe and -configure deal with vendor-supplied modules again
+ (Marc La France).
+3850. Fix an exposure problem that occured in 8+32 mode when the root
+ window was in depth 24 (Mark Vojkovich).
+3849. The MGA driver now recognizes a "VideoKey" option that sets the
+ default video key for YUV overlays (Mark Vojkovich).
+3848. Add some missing cfbDrawableEnabled checks to the 8+32 and 24+32
+ framebuffers (Mark Vojkovich).
+3847. Fix a segfault introduced by the workaround in 3546 below.
+3846. Fix big endian problems in XAA stipple code (Michel Dänzer).
+3845. Fix xf86MatchPciInstances() to not cause r128 to report detection of
+ other ATI adapters to -probe (Marc La France).
+3844. Fix bug in xf86MatchDevices() with -probe or -configure (Marc La France).
+3843. More compilation fixups (Marc La France).
+3842. Make -probe and -configure use compiled-in driver lists. Make -configure
+ work in the static server (Marc La France).
+3841. A second attempt at fixing DPS compilation (Marc La France).
+3840. Add DDC probing to the -configure option and enable it in the trident
+ driver (Alan Hourihane).
+3839. Bring xditview over from the contrib dist.
+3838. Fix drm free list bug (Jeff Hartmann and Rik Faith, Precision Insight).
+3837. Remove deprecated keywords (Kevin Martin).
+3836. Support for YUV offscreen surfaces in Xv and have the MGA driver
+ offer them (Mark Vojkovich).
+3835. Reorder generic Xv adaptor registration to allow V4L to use
+ driver-managed YUV offscreen surfaces (Gerd Knorr).
+3834. Preliminary IA-64 support (Mark Vojkovich, Johannes Erdfelt).
+
+XFree86 3.9.18 (21 February 2000)
+3833. Bump the minor version number for libXaw since it has some symbols
+ that are not present in 6.0.
+3832. Add a "xf86LoaderCheckSymbol" function and use this in drivers to
+ check if the vgahw module is loaded before calling vgaHWFreeHWRec()
+ (David Dawes).
+3831. Fix some build problems on Interactive Unix (#3739, Michael Rohleder).
+3830. Disable NetBSD aperture driver support by default (#3736,
+ Matthieu Herrb).
+3829. Update OpenBSD and NetBSD docs (#3735, Matthieu Herrb).
+3828. Update the VideoBoard98 file (#3734, Isao Ohishi).
+3827. Fix 'X -scanpci' crash (David Dawes).
+3826. Fix the "ev56" gcc option (#3730, Keith Packard).
+3825. Fix some problems with the MMIO macro use of function pointers on
+ Alpha (#3729, Keith Packard).
+3824. Fix a Mesa bug involving paletted textures and software rendering
+ (#3727, Brian Paul).
+3823. Fix a glx bug involving glFlush() inside glXWaitGL() (#3727, Brian Paul).
+3822. Disable the 3DNow assembler code for now, to avoid problems with
+ assemblers that don't recognise the instructions (Brian Paul).
+3821. Fix some problems with the Cards file (#3726,
+ Paulo Cesar Pereira de Andrade).
+3820. Eliminate the double mappings added to the r128 driver work around
+ earlier limitations, and add the fix necessary to make the R128
+ work on an Alpha UP1000 box without hanging the AGP bus during fb
+ rendering (#3720, Keith Packard).
+3819. Fix an int10 crash when the BIOS accessed memory beyond the first
+ 8kbytes (#3722, Keith Packard).
+3818. Fix PCI memory regions on dense alpha (#3720, Keith Packard).
+3817. Fix an int10 module build problem on big endian machines (#3719,
+ Kostas Gewrgiou).
+3816. Remove "lib" from the GLcore module name (David Dawes).
+3815. Set HasPoll to NO for Linux to work around a problem that Netscape
+ has when libXt uses poll() instead of select() (#3718, Keith Packard).
+3814. Disable 24bpp fb rendering on big endian machines because it doesn't
+ work yet (#3717, Keith Packard).
+3813. Fix an Xlib bug that causes freed memory to be accessed. This is
+ exposed by Netscape (#3716, Keith Packard).
+3812. Fix a problem in glxUseXFont() when direct rendering (#3715, Brian Paul).
+3811. A rework of Kevin Martin's Mach64 acceleration. Only solid fills for
+ now (Marc La France).
+3810. ATI Mobility fixes (Marc La France).
+3809. A new clock ordering has been reported for Mach32's. Treated as a
+ different clock chip for now (Marc La France).
+3808. Build fixups (Marc La France).
+3807. Fix a bug in the code that checks for the presence of a core keyboard
+ and pointer (David Dawes).
+3806. Remove unnecessary system headers from Xext/fontcache.c, which were
+ causing unresolved symbols for the extmod module on Solaris
+ (David Dawes).
+
+XFree86 3.9.17Z (17 February 2000)
+3805. Fix VT switch problem when using shadowfb with the ati driver
+ (Marc La France).
+3804. Fix some typos in the mouse driver that affect some of the extended
+ PS/2 protocols (Kazutaka Yokota).
+3803. Xterm patch #128 (#3713, Thomas Dickey).
+3802. Fix a crash in the XKB library code (#3712,
+ Paulo Cesar Pereira de Andrade).
+3801. Set the right max clock for the Voodoo3 3000 (#3707,
+ Yoann Vandoorselaere).
+3800. Fix various build problems (David Dawes).
+3799. Fix all other SaveScreen() functions, and add a helper xf86IsUnblank()
+ that drivers can use to interpret the SaveScreen mode values
+ (David Dawes).
+3798. Fix GLINTSaveScreen's use of the second argument (#3706, Michel Danzer).
+3797. Glint driver updates: register int10 module's symbols, and add a
+ workaround to set the sync flags in supplied modes to make the HW
+ cursor work with FBDev (#3650, Michel Danzer).
+3796. Indented xfree86 for better readability. (Egbert Eich)
+3795. Fixed int10 build rules (hope they are right now) (Egbert Eich)
+3794. Changed lnxResources.c to know about differences between ev4/5 and ev6.
+ (Egbert Eich).
+3793. xf86pciBus.c restores old registration if attempt fo fix PCI
+ registration fails. (Egbert Eich)
+3792. Removed sparse mapping from vidmem.c. (Egbert Eich)
+3791. Changed memory mapping for linux on Alpha:
+ - removed separate mapping functions for sparse and dense.
+ - allow for 32bit read/write to access memory directly without
+ going thru a function call if Jensen support is not enabled
+ (Egbert Eich)
+3790. Fix for dead keys in XKB Norwegian keyboards (#3702, 3703,
+ Preston Brown).
+3789. Synced with latest Mesa 3.3 sources (Brian Paul, Precision Insight).
+3788. Bug fixes for DRI (Kevin Martin, Precision Insight).
+3787. Bug fixes for tdfx DRI driver (Daryll Strauss, Precision Insight).
+3786. Cleanups for the contrib programs recently moved into the main xc/
+ tree (#3701, Bruno Haible).
+3785. Small lynx.cf fix (#3700, Thomas Mueller).
+3784. Initialise MMIO32 for r128 when using fbdev (#3699, Kostas Gewrgiou).
+3783. Avoid most lockups for Trio3D startup (s3virge driver) (#3698,
+ Harald Koenig).
+3782. Fix unresolved and conflicting symbols in X-TT, and fix the broken
+ BIG5 converter (#3697, Takuya Shiozaki).
+3781. Update README.fonts (#3696, Juliusz Chroboczek).
+3780. Add dot, line, arc accelerations for 24bpp in fb, and cleanup most
+ warnings (#3695, 3711, Keith Packard).
+3779. Make it possible to build the r128 driver with support for fb
+ (disabled by default) (#3693, Keith Packard).
+3778. Fix a problem with lnx_ev56 (#3693, Keith Packard).
+3777. Fix references to noPanoramiXExtension when Xinerama is not built
+ (#3691, Christopher Sekiya).
+3776. Fix possible races in xauth and libXau (#3690, 3694, Colin Phipps).
+3775. Fix some Xv and PC-98 init bugs in the apm driver (#3689, Loic Grenie).
+3774. Fix SVR4.0 build problem in the cyrix driver (David Dawes).
+3773. Fix SVR4.0 build problems in the sis driver (#3687, Takaaki Nomura).
+3772. Change CppProgram to /usr/bin/cpp for FreeBSD.
+3771. DPS build fixes (#3686, Juliusz Chroboczek, David Dawes).
+3770. Back out the pMga->PointerMoved change.
+3769. Fix DRI/DRM code to build tdfx driver and turn off building MGA DRI
+ support until the next code merge (Kevin Martin).
+3768. Attempt to first read the PLL parameters in the BIOS from PCI space,
+ then fallback to 0xc0000, and then fallback to default PLL parameters
+ in r128 driver (Kevin Martin).
+3767. Fix compiler warnings in r128 driver (Kevin Martin).
+
+XFree86 3.9.17f (12 February 2000)
+3766. Moved Alpha ev5/56 read dense functions to a separate file.
+ (Egbert Eich)
+3765. Improved RAC support for asynchronous events (not yet enabled).
+ (Egbert Eich)
+3764. Fixed a bug that prevented restoration of PCI registers after
+ a VT switch. (Egbert Eich)
+3763. Fixed support for BIOS reading on multiple chipset cards. (Egbert Eich)
+3762. Separated stub functions from pcitweak. (Egbert Eich)
+3761. Rewrote scanpci to use libxf86_os.a. (Egbert Eich)
+3760. Improved server state notification callback handler to meet the
+ needs of multi-head dri. (Egbert Eich)
+3759. Mga fix for pMga->PointerMoved init (#3684, Isao Ohishi).
+3758. Import FreeType 1.3.1 and X-TrueType 1.3, and incorporate the
+ font cache extension (#3653, Akio Morita, X-TrueType team, Nozomi Ytow).
+3757. Add a stub for xf86OSPMOpen() for OS's that don't have their own
+ (David Dawes).
+3756. Move the other XFree86-supported contrib programs to the main xc/
+ tree (except for xditview) (David Dawes).
+3755. Add a dummylib that provides functions required by libxf86_os. This
+ makes it easier for utilities (like scanpci and pcitweak) to use
+ libxf86_os (Egbert Eich, David Dawes).
+3754. Some bug fixes and PC-98 enhancements for the apm driver (#3685,
+ Loic Grenie).
+3753. GL build fix (#3683, Christopher Sekiya).
+3752. Xterm patch #127 (#3682, Thomas Dickey).
+3751. Cyrix MediaGX driver. Not very usable yet (#3681, Richard Hecker).
+3750. Add DPS libraries. Building these is disabled right now because
+ some more work is needed on the Imakefiles and portability issues
+ (#3645, 3680, Juliusz Chroboczek).
+3749. Fix the mga driver to work with the MGA 2064W on Alpha architectures
+ (#3679, Doug Rabson).
+3748. Support for building XFree86 on FreeBSD/alpha (#3678, Doug Rabson).
+3747. Restore viewport correctly on VT switch for the s3virge, and clean
+ up the logging messages (#3676, Kevin Brosius).
+3746. Don't try to program the keyboard repeat rate directly for Linux/98
+ (#3675, Takaaki Nomura).
+3745. Update information about mouse support in 3.9.18 (#3673, 3674,
+ Kazutaka Yokota).
+3744. Remove the "Extended PS/2 mouse protocol" class from the supported
+ interfaces in FreeBSD, since they are already handled at the
+ device driver level (#3672, Kazutaka Yokota).
+3743. Merge Kevin Hendricks fbdev/ppc patches in r128, fix wrong order
+ in cursor init (#3671, Kostas Gewrgiou, Kevin Hendricks).
+3742. Fix a problem building xedit/realpath.c that shows up on Linux
+ (#3670, Andrew Aitcheson).
+3741. Fix a build problem for lcUTF.c on Linux/libc5 (#3668,
+ Andrew Aitcheson).
+3740. Make sure the cursor is positioned correctly after mode changes
+ (#3667, Harald Koenig).
+3739. Add support for the SiS 630/540/300/530/620 to the SiS driver with
+ hw acceleration. Support for the tvout function is included for
+ the 630/540/300 (#3666, Can-Ru Yeou, SiS).
+3738. Fix some build problems with the apm driver on SVR4.0 (David Dawes).
+
+XFree86 3.9.17e (11 February 2000)
+3727. Move xman into the main xc/ tree.
+3726. The leak-tracing allocator now works on 64-bit machines, and update
+ the server to allow the use of the leak-tracing allocator (#3665,
+ Keith Packard).
+3725. Fix fb so that it works with 64-bit pointers and works on big-endian
+ machines (#3665, Keith Packard).
+3724. r128 driver updates to work on Alpha UP1000 (ev6). The changes follow
+ recommendations from Kevin Martin and Egbert to try to make them
+ reasonable (#3665, Keith Packard).
+3723. Modify mfb, cfb and mi so that they now do all accesses 32-bits at
+ a time instead of 64 (on 64-bit platforms). This eliminates image
+ repadding in DIX (#3665, Keith Packard).
+3722. Bug fixes, comments and cosmetics for the input method code:
+ - Add prefix "_Xim" to two input specific functions.
+ - Remove buggy function ConvertUCS4toUTF8 (bug: UCS-4 never contains
+ surrogates), and replace with simpler code. Based on a patch by
+ Ivan Pascal.
+ - Fix for _XimLookupMBText and _XimLookupWCText in multibyte locales
+ Patch by Ivan Pascal.
+ (#3664, Bruno Haible, Ivan Pascal).
+3721. Fix ugly code in _XlcCreateDefaultCharSet and add comments (#3663,
+ Bruno Haible).
+3720. Introduce a UTF-8 locale, including conversion from/to compound text.
+ This is not fully functional yet (#3662, Bruno Haible).
+3719. Resturcutre lib/X11/lcCt.c so that it is more understandable. Update
+ the default_ct_data array. Fix bugs in _XlcCheckCTSequence and cstoct,
+ and fix the UTF-8 introducing sequence (#3661, Bruno Haible).
+3718. Fix parsing of resource files so that it works better in multi-byte
+ locales (#3660, Bruno Haible).
+3717. Add commens to the libX11 locale files, declare _XlcInitLoader and
+ XlcConverter and a portability fix for dlopen() (#3659, Bruno Haible).
+3716. Fix an indentation problem in Xlib that was the origin of a malloc/free
+ bug (#3658, Bruno Haible).
+3715. Fix a bug in the locale file parsing routines (#3657, Bruno Haible).
+3714. Create a locale en_US.UTF-8. This isn't fully functional yet, but
+ parts of Xlib work with it (#3657, Bruno Haible).
+3713. Modify xman to search for man pages in a locale-specific directory
+ first (#3652, Paulo Cesar Pereira de Andrade).
+3712. Have xedit use the BSD realpath() provided instead of the standard
+ Linux one because the Linux one behaves differently (#3652,
+ Paulo Cesar Pereira de Andrade).
+3711. Fix some typos in the Monitors and Cards files (#3652,
+ Paulo Cesar Pereira de Andrade).
+3710. Disable SilkenMouse in the C&T driver until the memory transfer
+ sync problem is solved (#3654, Nozomi Ytow).
+3709. -
+3708. Don't "normalise" module names in xf86LoadModules (David Dawes).
+3707. Apm driver updates, including updates to the xf86Rush extension (#3649,
+ 3655, Loic Grenie).
+3706. Small cosmetic patch to glide driver (#3648, Loic Grenie).
+3705. Fix a bug in the way the BIOS mapping size is calculated in
+ in the ReadBIOS functions (#3647, Loic Grenie).
+3704. Add ReputImage function to the Xv DDX to prevent flickering during
+ window moves on some hardware (Loic Grenie).
+3703. Fix a bigfont extension build problem on Interactive UNIX (#3646,
+ Michael Rohleder).
+3702. Fix a bigfont extension build problem on NetBSD and OpenBSD (#3644,
+ Matthieu Herrb).
+3701. USB mouse support for *BSD (enabled for OpenBSD) (#3644, 3656,
+ Matthieu Herrb).
+3700. Update README.fonts (#3643, Juliusz Chroboczek).
+3699. i810 driver and preliminary DRI support for i810 and mga (#3638,
+ Keith Whitwell, Precision Insight).
+3698. 8+24 support upgraded to a non-destructive overlay (Mark Vojkovich).
+3697. Modify XAA to allow image rendering into DMA buffers (Mark Vojkovich).
+3696. Fix some SVR4.0 build problems (#3642, 3653, Satoshi Kimura).
+3695. Add XErrorDB entries for the DPS extension (#3639, Juliusz Chroboczek).
+3694. Fix a bigfont extension build problem on Linux/libc5 (#3637,
+ Takaaki Nomura).
+3693. Extend the Mouse "ZAxisMapping" option so that it can accept
+ (optionally) four arguments. The additional two are for mice that
+ have two wheels or whose scroll device has two axes) (#3636, 3641,
+ Kazutaka Yokota).
+3692. Add support for some new mice (Microsoft IntelliMouse Explorer,
+ Genius NetScroll Mouse Optical, IBM ScrollPoint) and serial PnP
+ IDs (A4 Tech 4D/4D+, MouseSystems SmartScroll, Logitech Cordless
+ MouseMan Wheel, 8D Scroll mouse) to the mouse driver, and update
+ the mouse documentation (#3636, 3640, 3641, Kazutaka Yokota).
+3691. Xterm patch #126 (#3635, Thomas Dickey).
+3690. Fix for the Japanese PC-98 with GA-RUSH/6PCI in the apm driver (#3634,
+ Isao Ohishi).
+3689. Update man pages and server messages for -xf86config usage, and
+ FatalError when an unsafe path is given by a non-root user (#3633,
+ Mark Montague).
+3688. Add support for the Melco WHP-PS8 Permedia2-based card for Japanese
+ PC-98 machines to the glint driver (#3354, Isao Ohishi).
+3687. Avoid segv in new Linux apm support (David Dawes, Michel Danzer).
+3686. Fix unresolved symbols in the linux int10 module and the GLcore module
+ (David Dawes).
+3685. Add xkb support plus new (XFree86-specific) keysym names for the
+ HP and Logitech iTouch "Internet" keyboards (David Dawes).
+3684. Fix a vbe-related build problem on Solaris (David Dawes).
+
+XFree86 3.9.17d (9 February 2000)
+3684. XKB could crash with keycodes larger than the range given in the
+ keycodes file (David Dawes).
+3683. Allow the passing of all extended keycodes, which makes it possible
+ to access keys on "Internet" keyboards (David Dawes).
+3682. Added support for saving/restoring access state during
+ asynchronous events. Added code to make xf86EnableAccess()
+ atomic for asynchronous events. (Egbert Eich)
+3681. Modified xf86EnterServerState() to avoid any unnecessary
+ disabling of resources during state transition. (Egbert Eich)
+3680. Added function callback registration. Drivers can register
+ callback functions to be notified of the start/end of a
+ resource transition. (Egbert Eich)
+3679. Added support for OS specific Pci address windows. (Egbert Eich)
+3678. Added more debug traps to xalloc.c. Added support to peek/poke
+ MMIO registers and fb addresses from a debugger. (Egbert Eich)
+3677. Changed resource registration to use CPU space addresses
+ instead of BUS space addresses. Added flag to resource type
+ to mark addresses in bus address space. (Egbert Eich)
+3676. Extended host2bus and bus2host address conversion for PCI
+ addresses to PIO. (Egbert Eich)
+3675. Improved subset and intersect handling for resources ranges.
+ (Egbert Eich)
+3674. Modified mapping of V_RAM in int10/generic.c. (Egbert Eich)
+3673. Updated INT10.HOWTO. (Egbert Eich)
+3672. Added support for VBE DDC read out to s3v driver. (Egbert Eich)
+3671. Added xf86SetDDCProperties() to glint, chips, neomagic, s3v
+ and r128 driver. (Egbert Eich)
+3670. Fixed problems with virtual screen size != real screen size
+ when using shadow fb in mga driver. (Egbert Eich)
+3669. Fixed handling of virtual != real screen in shadowfb. (Egbert Eich)
+3668. Prevent reinitialization of pMga->PointerMoved in mga_driver.c
+ on server reset. (Egbert Eich).
+3667. Added int10 support to r128 driver. (Egbert Eich)
+3666. Attempt to make apm driver 64bit clean. (Egbert Eich)
+3665. Added options to swap x/y coordinates on mice. Useful when
+ using rotate on notebooks. (Egbert Eich)
+3664. Modified memory mapping on AXP to map entire MMIO space
+ at once. (Egbert Eich)
+3663. Fixed handling of sparsely mapped MMIO on AXP increasing
+ performance considerably. (Egbert Eich).
+3662. Added non-barrier versions of MMIO_OUTxx. (Egbert Eich).
+3661. Added support for new AXPs that don't have sparse mapping.
+ (Egbert Eich)
+3660. Separated high and low level handling in ModeInit() and
+ Restore() in cirrus driver. (Egbert Eich)
+3659. Made chipset specific record subrecord of vendor record
+ in cirrus driver. (Egbert Eich).
+3658. Made some improvements to acceleration code of Cirrus Alpine driver.
+ (Egbert Eich)
+3657. Added support for 64-bit cursor for Cirrus Alpine. (Egbert Eich)
+3656. Fixed cirrus driver to handle MMIO access using MMIO_IN/OUTxx
+ (Egbert Eich)
+3655. Fixed xf86HWCurs.c to handle 32-bit cursors on 64-bit machines
+ correctly. (Egbert Eich)
+3654. Added rotate support to neomagic, s3v, chips and cirrus
+ driver (Egbert Eich)
+3653. Added shadow fb support to s3v and cirrus driver (Egbert Eich)
+3652. Fixed sig11 problem after server reset caused by the new
+ extension loading code. (Egbert Eich)
+3651. Attempted to fix build problems with int10 (Egbert Eich)
+3650. Added a baseclass/subclass override to xf86PciInfo.h.
+ This override is evaluated in xf86pciBus.c (Egbert Eich)
+3649. Changed memory mapping in int10 support for Linux to use SYSV
+ IPC shm instead of mapping /proc/self/mem (Egbert Eich)
+3648. Added APM support for portable systems. (Egbert Eich)
+3647. XFree86-Bigfont extension that provides efficient client access to
+ the complete glyph metrics, using shared memory where possible/available
+ or transmitting the data in a compressed format otherwise (#3626,
+ Bruno Haible).
+3646. Update locale support for Celtic languages (Welsh, Irish, Scots, Manx
+ and Cornish), and include a compose file for ISO-8859-14 (#3612,
+ Alastair McKinstry).
+3645. Add a Slovenian xkb symbols file (#3629, Marko Samastur,
+ Primoz Peterlin).
+3644. The new extension init code didn't handle server resets (#3628,
+ Ebgert Eich).
+3643. xf86GetPciSizeFromOS() didn't close the file it opened (#3627,
+ Loic Grenie).
+3642. Export frexp() and ldexp() to modules (#3624, 3631, Juliusz Chroboczek).
+3641. Fixes for CTEXT handling in Xlib:
+ - rewrite CTEXT from/to converters for standard compliance
+ - CTEXT parser now understands UTF-8 (and other DOC) sequences and
+ performs only CTEXT sequence recognition
+ - detailed charset information parsing moved to the procedure that
+ adds 'charset object'
+ - Some actions for preparing 'charset object' moved to lcCharSet.c
+ (where it can be done easily)
+ - XlcAddCT call added to XLC_LOCALE file parser to allow recognition
+ of charsets that are described only in those files (ie, not
+ in internal Xlib tables)
+ (#3624, Ivan Pascal).
+3640. Convert the nv driver to use MMIO to access the VGA registers
+ instead of normal I/O ports. Also riva_hw is updated to the
+ same version as is in 3.3.6 (#3620, Jarno Paananen).
+3639. DRI and Mesa update (#3619, Brian Paul, Precision Insight).
+3638. Fix a problem with the tdfx driver that can result in a lockup
+ (#3618, Nicholas Brealey).
+3627. Fix some PPC inline assembler in compiler.h (#3617, Kostas Gewrgiou).
+3626. Add support for the S3 Trio3D/2x and Trio3D chips to the s3virge
+ driver (#3616, 3623, Harald Koenig).
+3625. Fix some build problems on Solaris 8 with gcc (#3615, Richard Coley).
+3624. Fix an Xserver core dump that can happen when xdmcp-related command
+ line options have missing arguments (#3614, Harald Koenig).
+3623. Xterm patch #125 (#3611, Thomas Dickey).
+3622. Add a Type1 version of the cursor font (#3610, Juliusz Chroboczek).
+3621. Add Trident Cyber9540 detection (not tested) (Alan Hourihane).
+3620. Fix horizontal/vertical line drawing for r128 driver (Kevin Martin).
+3619. Update -probe option for all bus types (Alan Hourihane).
+3618. Fix primary card detection for -configure (Alan Hourihane).
+3617. Modularize the mouse driver (Alan Hourihane).
+3616. Fix Cyber9388 detection in trident driver (Alan Hourihane).
+3615. Implement some of the (installed) path restructuring that was
+ discussed back in April 1999 (David Dawes).
+3614. Remove duplicated code in XKB and InputMethod processing (#3396,
+ Ivan Pascal).
+
+XFree86 3.9.17c (30 January 2000)
+3613. Add DDC1 and DDC2 support to the NVIDIA driver (#3608, Jarno Paananen).
+3612. Make -configure multihead aware, add loading of all extension modules,
+ setup Layout sections (Alan Hourihane).
+3611. XTextPropertyToTextList doesn't work if incoming XTextProperty has
+ encoding field other than STRING or COMPOUND_TEXT (#3606, Ivan Pascal).
+3610. Fix a bug in the X11 generic converters that prevents them from
+ converting the last character in a string (#3605, Ivan Pascal).
+3609. Fix a bug in _XOpenLC() that was causing unallocated memory to be
+ freed (#3604, Ivan Pascal).
+3608. Xterm patch #124 (#3603, Thomas Dickey).
+3607. Fixes to the character set conversion tables (#3602, Bruno Haible).
+3606. Reduce the data section of libX11 by 30% by proper use of
+ 'const' for tables (#3601, Bruno Haible).
+3605. Fix a bug in ConvertUCS4toUTF8() in libX11 (#3600, Bruno Haible).
+3604. Fix some fb macros that gcc accepted but which weren't legal ANSI C
+ (#3599, Keith Packard).
+3603. Update micmap to allow the drivers to specify the r/g/b mask values
+ (3598, Keith Packard).
+3602. Disable the cfbCopyPlane functions on big endian machines, and fix
+ a cfb24 bug (#3597, David Bateman).
+3601. Add a CheckExtension() function that can be called to check if an
+ extension has been initialised (David Dawes).
+3600. Allow extensions to specify which other extensions must be
+ initialised first, and sort the initialisation order according to
+ this information (David Dawes).
+3599. Force BIOS to be read from 0xc0000 for r128 driver (Kevin Martin).
+3598. Add a XXXAvailableOptions to DriverRec which allows passing available
+ options back to the -configure option (Alan Hourihane).
+3597. Avoid PCI-PCI bridges with an unexpected header type, which avoids
+ an infinite loop that can show up in the PCI bus enumeration code
+ (Egbert Eich).
+3596. More compilation fixups (Marc La France).
+3595. Add '###' (Comment) line capability to the parser (Alan Hourihane).
+3594. Fix the laguna driver to return MOD_CLASS_NONE (Alan Hourihane).
+3593. Add the 'extmod' module to the -configure option (Alan Hourihane).
+3592. Modify the extension loading code so that he core server no longer
+ needs to be aware of all extensions that can be loaded (David Dawes).
+3591. Remove XExtensionVersion from XPrint headers (Dirk Hohndel, from 3.3.5).
+3590. Fix a build problem with the static server related to the -configure
+ option code (#3596, Takaaki Nomura).
+
+XFree86 3.9.17b (24 January 2000)
+3589. Add a rule to lnxdoc.rules for maintainers to use to update the
+ formatted docs (David Dawes).
+3588. Add new -configure option to generate a clean XF86Config without the
+ need for a config tool. But hopefully could be used with XF86Setup.
+ (Needs some OS based updates - tested only on linux so far)
+ (Alan Hourihane).
+3587. Fix 64 bit problem in the Xv client header files (Mark Vojkovich).
+3586. Change the default charset for et_EE from ISO8859-4 to ISO8859-15,
+ which conforms with the upcoming standard EVS8:1999
+ (http://www.eki.ee/itstandard/) (#3595, Ville Hallik).
+3585. Fix a bug in XKB's CapsLock handling for some non-Latin1 locales,
+ and add support for ISO8859-15. Without this, CapsLock only affects
+ Latin1 keysyms and has no effect on scaron and zcaron, for example
+ (#3595, Ville Hallik).
+3584. Add Estonian keyboard support to XKB (#3595, Ville Hallik).
+3583. Hack to disable optimisation when building Xext/xf86vmode.c on FreeBSD
+ 4.0 to avoid a compiler bug (David Dawes).
+3582. Disable the hardware cursor in the tdfx driver when the screen is
+ too wide for the hardware to properly position the cursor on the
+ right side of the screen (#3593, Scott Bertin).
+3581. Fix a typo in panoramiXprocs.c that shows up on SVR4.0 (#3592,
+ Takaaki Nomura).
+3580. Xterm patch #123 (#3591, Thomas Dickey).
+3579. Add a "Status" document that lists and compares the driver status of
+ 4.0 and 3.3.x (needs a lot more input) (David Dawes, plus contributions
+ from the devel team).
+3578. Fix a problem with the EmulateTimeout line in the file generated
+ by xf86config, and have xf86config create /etc/X11 if it doesn't
+ already exist (David Dawes).
+3577. Put an OS-independent version of the int10 module/library in
+ xfree86/int10, but still allow an OS-specific version to override
+ it (David Dawes).
+3576. Import a minimal subset of the x86emu 0.6 distribution (David Dawes).
+3575. Register the required/referenced int10 symbols in the nv driver
+ so that there are no warnings on platforms that don't have this
+ module (David Dawes).
+3574. Don't probe for PC98 architecture on Solaris (David Dawes).
+3573. Fix some SVR4.0 build problems related to bzero() (David Dawes).
+3572. Rewrite the way Xinerama deals with events (Mark Vojkovich).
+3571. Fix VT switching problem in shadowfb (Marc La France).
+3570. Initialize DST_X_DIR and DST_Y_DIR for solid filled rects and for
+ horizontal and vertical lines to fix line drawing problems, and
+ initialize ScanlineCPUToScreenColorExpandFillFlags to fix font
+ corruption problems in r128 driver (Kevin Martin and Rik Faith).
+3569. Fix BIOS reading problem with r128 driver (Kevin Martin).
+3568. Fix imake failure in Mesa Imakefile (Kevin Martin).
+3567. Change trident driver to use fb instead of cfb and make DDC1 info
+ available to the primary card (Alan Hourihane).
+3566. Fix an XAA text corruption problem introduced by the endian fix
+ in 3.9.17a (David Dawes).
+
+XFree86 3.9.17a (21 January 2000)
+3565. Update linux.cf to use the kernel header files on Debian rather than
+ those packaged with the libc headers (#3544, Simon Richter).
+3564. Add an item to the default twm menu to open an xterm window (#3584,
+ David Brownlee).
+3563. Update Spanish locales in xc/nls (#3583, Fernando Herrera).
+3562. Fix I2C/DDC for S3 ViRGE (#3582, Harald Koenig).
+3561. Update the fbdevhw module for some new cards (#3579, Kostas Gewrgiou).
+3560. Fix interpret_vdif.c for big endian machines (#3578, Kostas Gewrgiou).
+3559. Minor fix to DDC to find monitor descriptions in EDID v1.1 (#3576,
+ Andrew Aitchison).
+3558. Allow silken mouse to work when building on Linux without DRI (#3574,
+ Keith Packard).
+3557. Only do the kbdrate I/O on architectures that support it (#3573, 3581,
+ Kostas Gewrgiou, Branden Robinson).
+3556. Fix XAA colour expansion for big-endian architectures (#3572,
+ Kostas Gewrgiou).
+3555. Update QNX support (#3570, Frank Guangxin Liu).
+3554. Fix "controlization" in XLookupString for chars > 127 (#3569,
+ Ivan Pascal).
+3553. Take advantage of FB speedups in Tiny-X (#3568, Keith Packard).
+3552. Speed up FB and do 32bit accesses instead of 64bit accesses
+ (#3567, Keith Packard).
+3551. Eliminate saving the contents of the screen durint VT switching
+ (#3562, Keith Packard).
+3550. Make using fb easier for driver writers (#3561, Keith Packard).
+3549. Fix TCP font server connections (#3560, Keith Packard).
+3548. Implement the "OverclockMem" option for the Millennium and Millennium
+ II (#3558, Andrew Aitchison).
+3547. Speed up some FB performance problems (#3557, 3559, 3560, 3588, 3589,
+ Keith Packard).
+3546. Work around a bad code generation bug in gcc 2.7.2.3 that shows up
+ in XAA (#3550, Rik Faith).
+3545. Add a -brief option to xclock to show only hours and minutes when in
+ digital mode (#3549, Keith Packard).
+3544. Fix some dead key problems with xkb symbols for Swiss French and
+ Swiss German keyboards (#3546, Charles Lopes).
+3543. Add drm_poll to fix SIGIO problem in the drm kernel modules, and change
+ drm to use /{proc,dev}/dri to avoid conflicts with /{proc,dev}/graphics
+ (Rik Faith and Daryll Strauss).
+3542. Fix some fb/glint-realted static build problems (Marc La France).
+3541. Add 3.9.17 xterm information to the RELNOTES (#3541, Thomas Dickey).
+3540. Fix some 64-bit problems in the GLX code (#3539, Dave Gilbert).
+3539. Execute the GLINT delta code in the Probe for each instance of
+ hardware found, not just the first one (#3534, Michael Rohleder).
+3538. Allow mesa to build on an Alpha (#3533, Matt Grossman).
+3537. Fix glint/Imakefile so that the correct fb.h is included, and rename
+ the private fb.h file in fbdevhw so that it won't be mistakenly included
+ instead of the one in Xserver/fb (David Dawes).
+3536. Fix some (unused) bad usages of InstallDynamicModule (David Dawes).
+3535. Make the Glint driver use the new fb module and fix correct operation
+ for 24bpp support (Alan Hourihane).
+3534. Fix for various compilation glitches (Marc La France).
+3533. Fix some Segmentation faults with NULL pointers in xf86Config.c
+ (Alan Hourihane).
+3532. Update some drivers to respect the PROBE_DETECT flag and update
+ xf86DoProbe to print out the supported chipset list (Alan Hourihane).
+3531. Update Trident driver to fix Clock source for 9440 chips and allow
+ linear framebuffer mapping for nommio (Alan Hourihane).
+3530. Fix fb for module compiling and ifdef fbcmap for now (Alan Hourihane).
+3529. Add Cyber9397 and Cyber9397DVD PCI ID detection to trident driver
+ (Alan Hourihane).
+3528. Fix Multiple MX RegisterResources with RAC in glint
+ driver (Alan Hourihane).
+3527. Update loader for Xinerama changes (Alan Hourihane).
+3526. Massive Xinerama rewrite (Mark Vojkovich).
+ - Change the way it deals with resources.
+ - Remove broken Xinerama code from the multibuf extension.
+ - Add support for shared memory pixmaps.
+ - Lessen Xinerama's impact on DIX.
+3525. Point and arc acceleration improvements for the NVIDIA driver
+ (Mark Vojkovich).
+3524. MGA acceleration modifications to prevent pci retries during
+ color expansions (Mark Vojkovich).
+
+XFree86 3.9.17 (31 December 1999)
+3523. Clean up bindist directories for the loader server (Robin Cutshaw).
+3522a. Fix return values in PsImageText8() and PsImageText16() (#3535,
+ Takaaki Nomura).
+3522. Old-style DGA keyboard input fix (#3536, Keith Packard).
+
+XFree86 3.9.16Za (29 December 1999)
+3521. Fix HW cursor on rendition V2K (#3532, Dejan Ilic).
+3520. Sync wacom driver with 3.3 (Frederic Lepied).
+3519. Resolve missing symbol in TDFX driver (#3531, Dave Gilbert).
+3518. Allow TDFX driver to build on Linux-axp (#3530, Dave Gilbert).
+3517. Fix Linux-axp compile problem (#3529, Dave Gilbert).
+3516. Jumbo Tiny-X patch with Itsy support (#3527, Keith Packard).
+3515. Turn off debug messages in font client code (#3525, Keith Packard).
+3414. Allow colormap privates to be allocated before default colormap
+ (#3524, Keith Packard).
+3413. Make Xserver/fb work with R6.3 server and with MSB cpu
+ (#3523, Keith Packard).
+3412. Compress built-in fonts (#3522, Keith Packard).
+3411. Fix ct_driver for static server (#3521, Takaaki Nomura).
+3410. Fix the last Xaw user of XtOffset (#3520, Keith Packard).
+3409. FreeBSD-current compile fix (#3519, Eric Anholt).
+3408. Xterm patch #122. (#3517, Thomas Dickey).
+3407. Remove duplicate symbol from loader (#3516/3528,
+ Jarno Paananen/Nicholas Brealey).
+
+XFree86 3.9.16Z (28 December 1999)
+3406. Temporary fix for building linux platform without glide (Robin Cutshaw).
+3405. Fix unresolved symbols for the loader (#3501, Matthieu Herrb).
+3404. Fix compiles on non-NetBSD systems (#3499, Matthieu Herrb).
+3403. Fix XKB XlookupString usage (#3511, Ivan Pascal).
+3402. Use ForceLatin1Lookup mode after XmbLookupString/XwcLookupString
+ (#3510, Ivan Pascal).
+3401. Export symbols for SGI driver (#3505, Terence Ripperda).
+3400. Fix problem with compilation of static server on SVR4.0
+ (#3497,3514 Takaaki Nomura).
+3399. Fix where using bitsPerPixel from screen pixmap to use drawable,
+ fix default visual class search for fallback visual, fix pixmap
+ privates allocation, change screen init sequence so that the
+ calling function is responsible for init of backing store
+ (#3495, Keith Packard).
+3398. Fix more problems between the X and font servers (#3493, Keith Packard).
+3397. Fix util/memleak to work on linux/x86 (#3492, Keith Packard).
+3396. Add DPS support hooks (#3491, Juliusz Chroboczek).
+3395. Add QNX4, Neutrino support (#3489, Frank Guangxin Liu).
+3394. Add ATI Rage 128 Pro PF support to r128 driver (#3488, Rik Faith).
+3393. AutoRepeat fix for xf86config (#3485, Harald Koenig).
+3392. Cirrus driver split for Laguna and Alpine (#3484, Derek Fawcus).
+3391. Mga_dac3026 rev A/B fixes (#3427, Mark Montague).
+3390. Jumbo font patch. This updates the bdf/misc fonts to the
+ latest ISO versions (#3429+updates, Markus Kuhn).
+3389. Fix a problem with no Xv encodings being reported (Mark Vojkovich).
+3388. Update Xv driver interface docs (Mark Vojkovich).
+
+XFree86 3.9.16f (15 December 1999)
+3387. Fix posix compliance problem in Xserver/os/utils.c
+ (Robin Cutshaw/Keith Packard).
+3386. Fix for os2_bios (#3483, Holger Veit).
+3385. Enhance DK keyboard support (#3481, Keld Simonsen).
+3384. Xv client library documentation (#3480, Mark Vojkovich).
+3383. Rendition microcode cleanup, accel fix, int10/ddc support,
+ pixmap cache fix, doc update (#3479, Dejan Ilic/Marc Langenbach).
+3382. Reverse kbdrate patch (#3478, Harald Koenig).
+3381. Add Xv support to tga driver (#3473, Matt Grossman).
+3380. Add ViRGE/MX and BIOS probing to the s3virge driver (#3470,
+ Harald Koenig).
+3379. Install NetBSD aperture driver in /usr/local until added to
+ the core O/S (#3466, Matthieu Herrb).
+3378. Add QNX/Neutrino support (#3464, Frank Guangxin Liu).
+3377. DRI megapatch. This moves mesa to xc/extras, updates Mesa to
+ version 3.2, adds full support and fifo code for 3dfx hardware,
+ and updates the device driver to work with Linux 2.3 kernels
+ (#3463, Daryll Strauss).
+3376. Fix dynamic loading on the alpha platform (#3459, Hannes Reinecke).
+3375. Add Xinerama option to the serverlayout section of the config file
+ (#3458, Joe Moss).
+3374. Add accelerated line support, clean up accel code, and other fixes
+ for the tga driver (#3453, Matt Grossman).
+3373. Restore colormap on exit in nv driver (#3452, Thomas Mueller).
+3372. Generalize the SIGIO way of reading input data (#3450, Frederic Lepied).
+3371. Fix missing quotes in Xt docs (#3443, Matthieu Herrb).
+3370. Add request bounds checking for xfs (#3449, Keith Packard).
+3369. Fix problem where font library fails to match bitmap instances
+ (#3448, Keith Packard).
+3368. Change font client code to recover from font server hangs/crashes
+ and reduce memory fragmentation (#3446, Keith Packard).
+3367. Allow MAXCLIENT to be any of 64, 128, 256, or 512 and adjust the
+ resource allocation code as appropriate (#3445, Keith Packard).
+3366. Fix compile problems with Solaris 7 (#3437, Nicholas Brealey).
+3365. Add Riva TNT2 M64 to nv_driver (#3436, Jarno Paananen).
+3364. Add prototypes for Xserver/Xprint and fix various problems with
+ Xprint (#3432, Thomas Dickey).
+3363. Add proper clock checking for VidMode extension, add SDK fixes for
+ missing files, add SilkenMouse for C&T driver (#3424, David Bateman).
+3362. Sync v4l and glint drivers with the new Xv changes (Mark Vojkovich).
+3361. Add XvImage support to the MGA driver - G200/400 only (Mark Vojkovich).
+3360. Xv changes/additions (Mark Vojkovich)
+ - XvImage support in the Xv DDX, DIX, client libs and header files.
+ - Add min and max fields to the XvAttributes.
+ - Reved Xv minor version.
+ - Rewrote some of the way clipping is dealt with in the Xv DDX.
+3359. Fix nv driver rendering bugs (Mark Vojkovich).
+3358. Add MTRR support for LynxOS (#3419, Thomas Mueller).
+3357. Fix bad return in GLINTAdjustFrame (#3418, David Holland).
+3356. Fix some build problems with the rendition driver, including a general
+ problem building the static server, and problems that show up on
+ some OSs (David Dawes, #3418, David Holland).
+
+XFree86 3.9.16e (5 December 1999)
+3355. Fix a problem with the bitmap font module (#3421, Matthieu Herrb).
+3354. Misc. bug/typo fixes. (Egbert Eich)
+3353. Fixed scanpci to generate better output on Alphas (Harald Koenig,
+ Egbert Eich)
+3352. Added initial VESA VBE support. This includes initialization
+ and DDC. (Egbert Eich)
+3351. Added support for 64bit PCI devices (untested) (Egbert Eich.
+3350. Added support to read PCI memory and io ranges from kernel on
+ Linux 2.3 (untested). (Egbert Eich)
+3349. introduced "#undef" before definitions in xf86_libc.h to keep
+ gcc on Alpha quite. (Egbert Eich)
+3348. Added a function to check if any resource needs to share memory.
+ Required for DGA. (Egbert Eich)
+3347. Added copyright messages to int10 code. Fixed int10 code to
+ run on Alphas.
+3346. Changed some byte and word access to MMIO registers in drivers
+ to use MMIO_READ/WRITE8/16(). Made attempt to make some drivers
+ 64 bit (and Alpha!) clean: s3virge, chips, gling, neomagic.
+ Fixed bugs in compiler.h. (Egbert Eich)
+3345. Made part of the code 64 bit clean. (Egbert Eich)
+3344. Cleanups in the C&T driver. (Egbert Eich)
+3343. Clearified meaning of VIDMEM_MMIO and VIDMEM_MMIO_32BIT. (Egbert Eich)
+3342. Added support for host-PCI bridges. (Egbert Eich)
+3341. Changed policy for removing resource overlaps.
+ Removed a bug in findIntersect() (xf86Bus.c).
+ Added function that enables/disables all resources of a given
+ screen. Added a config file option to set overlap removal
+ aggressiveness.(Egbert Eich)
+3340. Split xf86Bus.c into generic/pci/isa specific parts. (Egbert Eich)
+3339. Faster clocks for the G400 (Mark Vojkovich).
+3338. Fix bug in FB manager's ResizeArea function (Mark Vojkovich).
+3337. Pass positioning information for the obsolete ServerLayout format
+ to the common layer, and update the DESIGN doc for the newer ServerLayout
+ formats (David Dawes).
+
+XFree86 3.9.16d (19 November 1999)
+3336. Fx up new MMIO macros (#3337, Matt Grossman).
+3335. Clean up compiler warnings in lib/font/bitmap (#3411, Matt Grossman).
+3334. TGA fixes, add sync on green (#3410, Matt Grossman).
+3333. Fix NULL pointer dereference in libXaw (#3406, Christopher Sekiya).
+3332. Add Rage128 support (#3405, Rik Faith, funded by ATI).
+3331. Add MTRR support for NetBSD and OpenBSD. Add new NetBSD aperture driver
+ (#3404, Matthieu Herrb).
+3330. Xterm patch #121 (#3402, Thomas Dickey).
+3329. Rendition driver bugfixes and alpha related cleanups (#3400,
+ Dejan Ilic, Marc Langenbach, Egbert Eich).
+3328. Add void input device (ä3392, Frederic Lepied).
+3327. Changed the Xon serial option to be able to select xon/xoff for input,
+ output or both. Add support for Graphire models. Change wacom init
+ phase to use new Xoff option (#3391, Frederic Lepied).
+3326. Change the SwapAxes option to SwapXY in elographics/microtouch driver
+ to match an already existing option in the Dynapro driver. Add a Focus
+ class capability to the elographics driver (#3395, Patrick Lecoanet).
+3325. Update mouse rate handling (#3388, Harald Koenig).
+3324. Fix NULL pointer dereference in misprite.c (#3380, Edward Wang).
+3323. Add FBDev and ShadowFB support to glint driver. Add new option
+ "NoWriteBitmap" (#3383, Michel Daenzer).
+3322. Update SuperProbe to handle S3 Savage4, Savage200 and clean up
+ Trio3D/Savage3D detection (#3382,3384 Harald Koenig).
+3321. Add new framebuffer code and tiny X DDX architecture (#3379,
+ Keith Packard).
+3320. Add DGA2 documentation (#3378, Mark Vojkovich).
+3319. Update XFree86 manpage wrt -bpp/-depth/-fbbpp (#3377, Andy Isaacson).
+3318. Make SuperProbe check primary cards, only (#3374, Harald Koenig).
+3317. Add SilkenMouse to *BSD (#3373, Matthieu Herrb).
+3316. Allow SilkenMouse to work if not all drivers of an OS support SIGIO
+ (#3372, Keith Packard).
+3315. Fix a few problems in TGA driver and add support for backing store
+ and SilkenMouse (#3371, Matt Grossman).
+3314. Add smarter scheduler (#3370, Keith Packard).
+3313. Xterm patch #120 (#3369, Thomas Dickey).
+3312. Enable xf86SetKbdRate function on Solaris 8 (#3364, David Holland).
+3311. Fix some bugs and add acceleration to Rendition server (#3360,
+ Dejan Ilic).
+3310. Make raw DDC information available as properties in the root window
+ (#3357, Andrew Aitchison).
+3309. Fix for xf86CreateRootWindow (#3355, Andrew Aitchison).
+3308. Add manpage for the chips driver (#3353, David Bateman).
+3307. Update contact info (#3352, Andrew van der Stock).
+3306. Add kbd rate support for Linux (#3363, Harald Koenig).
+3305. Update Portuguese XKB map (#3351, Joao Esteves, Francisco Colaco).
+3304. Fix text clipping in 3dfx driver (#3349, Henrik Harmsen).
+3303. Fix S3 ViRGE hw cursor (#3348, Harald Koenig).
+3302. Fix clipping in 3dfx driver (#3342, Daryll Strauss).
+3301. Enable SilkenMouse for 3dfx driver (#3341, Henrik Harmsen).
+3300. Enable SIGIO support on LynxOS (#3339, Thomas Mueller).
+3299. Get TRUE defined in sigio.c. Fix xterm compile problem on ISC
+ (#3338, Michael Rohleder).
+3298. Correct DPMS suspend/standby modes for 3dfx driver (#3336,
+ Henrik Harmsen)
+3297. Xterm patch #119 (#3335, Thomas Dickey).
+3296. ATI LCD changes to add interlaced mode support and near-final rework of
+ mode validation (Marc La France).
+3295. Keep track of a mode's hsync and vrefresh rates used for monitor checks
+ so they can be displayed by xf86PrintModes() (Marc La France).
+3294. Add sync polarities to VESA modes (Marc La France).
+3293. Fix VESA mode typos and some warnings (Marc La France).
+3292. Add GeForce/Quadro support to the NVIDIA driver (Chas Inman,
+ Mark Vojkovich).
+3291. Fix a DGA colormap problem (Mark Vojkovich).
+3290. Disable the Double-Buffer extension in Xinerama mode since it
+ doesn't work (Mark Vojkovich).
+3289. Fix XAA scanline color expansion routines to check the buffer address
+ after the Subsequent function is called. This allows the driver to
+ change buffers on-the-fly (Mark Vojkovich).
+3288. Update PCI device IDs for newer NVIDIA chipsets (Mark Vojkovich).
+3287. Add an 80 Hz sample rate option for PS/2 mice (Mark Vojkovich).
+3286. Remove ATI driver's meddling with LCD power management facilities
+ (Marc La France).
+3285. Ensure miInitializeBanking() fails when a bank clip region cannot be
+ allocated (Marc La France).
+3284. Static server fix for s3virge and nv drivers (Marc La France).
+3283. Map MMIO areas on ATI adapters (Marc La France).
+3282. Disable DirectColor and gamma support for the original ATI integrated
+ controllers (Marc La France).
+3281. Linear aperture fixes for ATI 88800 and CT controllers (Marc La France).
+3280. Make LCD mode validation changes in ATI driver (CHANGELOG #3271)
+ into a development option, restoring the previous behaviour by
+ default (Marc La France).
+3279. When display subsection mode names run out without yeilding a valid mode,
+ continue validation with the largest unvalidated modePool member, rather
+ than the first (Marc La France).
+3278. Allow drivers to specify whether or not sync/refresh rates in monitor
+ sections are optional and use this for ATI LCD support (Marc La France).
+3277. Replace xf86Exiting with its DIX counterpart, dispatchException's
+ DE_TERMINATE bit (Marc La France).
+3276. NVIDIA driver changes (Mark Vojkovich):
+ - Improved shadowfb support (screen rotation).
+ - Improved acceleration (color expansion, lines).
+ - Fixed some rendering correctness issues.
+ - Full DGA 2.0 support including changing depth on the fly.
+3275. Make usage of hardware clipping in XAA more consistent (Mark Vojkovich).
+3274. Limit MGA driver to using 16 Meg of ram to workaround some hardware
+ limitations (Mark Vojkovich).
+3273. Fix DGA event bug (Mark Vojkovich).
+3272. Mode validation changes (Marc La France).
+ - Remove assumption that modes of the same name are also of the same
+ size.
+ - Even if Display subsection mode names include duplicates, no two names
+ will ever match the same mode.
+ - If the supplied mode names do not yield a usable mode (including the
+ case where no names are supplied), scan the mode pool until a usable
+ mode is found. This is a step towards allowing successful server
+ runs with XF86Config's that specify no mode information whatsoever.
+ - Implement minHeight and maxHeight checks.
+ - Call the driver's ValidMode() for a final OK just before accepting a
+ mode.
+ - Free mode pool on xf86PruneDriverModes() calls.
+ - Documentation updates.
+ - Minor fixes to C&T and GLINT drivers.
+3271. ATI driver updates (Marc La France).
+ - Disallow interlaced modes when scanline pitch exceeds hardware limits.
+ - LCD support no longer depends on the mode on server entry.
+ - Fix bug introduced by CHANGELOG entry 3245.
+ - Re-lock adapters on ATIPreInit() failures.
+ - Make default sync polarities consistent.
+3270. Trident updates for ISA cards and DGA support (Alan Hourihane).
+3269. mibank bug fixes (Marc La France).
+3268. Add -withrevinfo flag to lndir to allow shadowing of RCS, SCCS, CVS and
+ CVS.adm directories (Marc La France).
+3267. SIGIO workaround for older Linux kernels (Marc La France).
+3266. Fix xalloc.c compilation failure with -DXALLOC_LOG (Marc La France).
+3265. Change ATIProbe() to use int 10 vector to locate the BIOS of VGA and
+ VGA Wonder non-PCI adapters (Marc La France).
+3264. Make '-probe' work for static server and ATI driver (Marc La France).
+3263. #define _POSIX_C_SOURCE to 2 for Linux libc5 (Marc La France).
+
+XFree86 3.9.16c (13 October 1999)
+3262. Export SetCriticalEvent from DIX, it was an unresolved external in
+ xf86dga2.c (#3326, Jarno Paananen).
+3261. Removes Alpha-specific MMIO-mappings from NVIDIA driver in the
+ same fashion that was done in MGA-driver (#3326, Jarno Paananen).
+3260. Add SilkenMouse to NVIDIA and Glint drivers (#3326, Jarno Paananen).
+3259. Workaround for problem in xf86RegisterRootWindowProperty() code
+ (Jarno Paananen).
+3258. DGA workaround for recent VTSwitch changes (#3325, Mark Vojkovich).
+3257. Out of memory fixes for the mi region code (#3323, 3324, Keith Packard).
+3256. "Silken Mouse" support (#3323, Keith Packard).
+3255. Modify the ati driver to temporarily ignore Rage 128s (#3322,
+ Marc La France).
+3254. Fix offscreen memory handling for xf4bpp when VT switched away
+ (Alan Hourihane).
+3253. xf4bpp, xf1bpp, ISA additions for the trident driver (Alan Hourihane).
+3252. Fix problem with cleanup after XAA offscreen pixmap allocation fails
+ (Mark Vojkovich).
+3251. Fix missing USE_MMIO define in trident driver (Alan Hourihane).
+3250. Blade, image and trident updates for the trident driver (Alan Hourihane).
+3249. A very preliminary "-probe" mode for the X server (David Dawes).
+3248. Remove __alpha__ ifdefs from the mga and s3virge drivers by changing
+ the way sparse MMIO access is handled (David Dawes).
+3247. Fix a WarpPointer bug introduced when "xineramifying" some dix code
+ (Mark Vojkovich).
+3246. Move the BuildObjectFromLibrary rule into Imake.rules.
+3245. Fix text mode restoration when large modes are used in the ATI driver
+ (#3318, 3321, Marc La France).
+3244. Rendition driver update, including skeleton HW cursor and accelerated
+ support (#3317, Dejan Ilic, Marc Langenbach).
+3243. Change mode validation to allow drivers to modify a mode before it
+ is checked against the monitor's constraints (#3316, Marc La France).
+3242. C&T driver fix (#3314, David Bateman).
+3241. Change the ati mode validation strategy for programmable clocks to best
+ refresh (#3313, Marc La France).
+3240. Fix ATI Rage XL/XC & Mobility support so that it actually works this time
+ (#3313, Marc La France).
+3239. Update the xfsft code to version 1.1.7 (#3310, Juliusz Chroboczek).
+3238. Remaining keyboard support for Solaris 8/x86, including keyboard beep,
+ auto-repeat, keyboard LEDs, modifier keys (#3294, 3309, David Holland).
+3237. Add xf86RegisterRootWindowProperty() - a mechanism for drivers etc
+ to add properties to the root window before the screen is created
+ (#3307, Andrew Aitchison).
+3236. Fix two problems that may occur when some extension allocates a "font
+ private index" while a font is already open (#3305, Bruno Haible).
+3235. Xterm patch #118 (#3303, Thomas Dickey).
+3234. Fix a typo in a dga header file (#3302, Mark Vojkovich).
+3233. Update rendition name info in scanpci (#3301, Dejan Ilic).
+3232. Getuid fix for scanpci (#3300, Marc La France).
+3231. This patch will avoid compilation warnings when GCC 3.0 comes out (#3299,
+ Bruno Haible).
+3230. Fix some build warnings (#3298, Bruno Haible).
+3229. Fix for the DebuggableLibraries support (#3297, Bruno Haible).
+3228. Revert to always using bison instead of yacc on Linux (#3296,
+ Bruno Haible).
+3227. Fix XAA flags checking for the ScanlineImageWrite function (#3293,
+ Alan Hourihane).
+3226. Fix some problems wth the SiS 2x5 chipsets, and disable advertising
+ support for the 201 and 202 chipsets (#3292, Juanjo Santamarta).
+3225. Call SoftReset for MGA cards on PC-98 machines (#3291, Isao Ohishi).
+3224. Use the int10 soft booter to get a non-primary voodoo3 card to work
+ with the tdfx driver (#3290, Henrik Harmsen).
+3223. Fixes for the i740 and neomagic drivers (#3289, Jeff Hartmann).
+3222. Enable compiling ico on systems with pre-standard pthread API (e.g.,
+ LynxOS), and fix a problem where a condition variable is used without
+ holding the corresponding mutex (#3288, Thomas Mueller).
+3221. Add soft-booting capability to the glint and nv drivers (#3287,
+ Jarno Paananen).
+3220. Xterm patch #117 (#3285, Thomas Dickey).
+3219. Fix xf8_32bpp's VT switching by restoring the previous
+ xf86SaveRestoreImage() into it (#3284, Marc La France).
+3218. Remove duplicate symbol in misym.c (#3283, Alan Hourihane).
+
+XFree86 3.9.16b (27 September 1999)
+3217. Xterm patch #116 (#3280, Thomas Dickey).
+3216. Add new flags to the Xv adaptor type to indicate that it can be used
+ to render into window or pixmaps and do video or stills (#3279,
+ Mark Vojkovich).
+3215. Fix some MGA pci retry related corruption problems (#3278,
+ Mark Vojkovich).
+3214. Attempt to autoprobe the memory on all MGA cards except the 2164
+ (#3277, Mark Vojkovich).
+3213. APM driver updates, including bug fixes, 24bpp acceleration and
+ improved Rush support (#3276, Loic Grenie).
+3212. Some DGA fixes (3275, Loic Grenie).
+3211. Fix and document the CMAP_LOAD_EVEN_IF_OFFSCREEN option for the common
+ layer cmap code (#3274, Marc La France).
+3210. Some resource management speed improvements in Xinerama (#3273,
+ Mark Vojkovich).
+3209. Fix an off-by-one error in shadowfb's EnterVT wrapper (#3272,
+ Marc La France).
+3208. Fix ATI driver DAC handling for >8bpp TrueColor and add >8bpp
+ DirectColor support (#3271, Marc La France).
+3207. Add a hardcopy version of the Xv specs (#3270, Mark Vojkovich).
+3206. Integration of a bug fix by David Woodhouse in the Microtouch
+ driver. Correct a possible problem when configuring only one of
+ the two devices supported by the driver (#3269, Patrick Lecoanet).
+3205. Update XF86Conf.man to reflect the current state of the input drivers
+ (#3269, Patrick Lecoanet).
+3204. Add support for the ThruGlass touchscreens to the Microtouch driver
+ (#3269, Andreas Micklei).
+3203. Add SwapAxes and PortraitMode options to the Elographics and
+ Microtouch drivers (#3269, Patrick Lecoanet).
+3202. Port Microtouch and elographics drivers to the new module loading method
+ (#3269, Patrick Lecoanet).
+3201. Rewrite the way Xinerama handles visibility events. Also fix some
+ problems with CoordModePrevious primitives drawn on the root window
+ (#3267, Mark Vojkovich).
+3200. Some Xaw and xedit updates. The html-mode code is removed from xedit
+ (#3265, Paulo Cesar Pereira de Andrade).
+3199. Fix a problem with pScrn->rgbBits not being set in the correct place
+ in the tdfx driver (#3264, Scott Bertin).
+3198. Update ATI info for `XFree86 -scanpci` (#3263, Marc La France).
+3197. ATI driver changes:
+ - Rage XC & Rage XL fixes.
+ - Preliminary Rage Mobility support.
+ - Fix from Christian Lupien to disable TVOUT feature of 3D Rage
+ adapters.
+ - Work around vertical blending limitations with "shallow" modes by
+ doublescanning (accelerator CRTC) or multiscanning (VGA CRTC) them.
+ - Fix bug that did not map the VGA aperture for generic VGA support.
+ (#3260, Marc La France).
+3196. Warning fixes in miscrinit.c (#3260, Marc La France).
+3195. Rework mibank for maintenance reasons (#3260, 3281, Marc La France).
+3194. VT switching changes, implementing a framework for framebuffer layers
+ to be notified when an aperture is remapped at a different virtual
+ address during EnterVT, and improved DDX-independence for mibank,
+ and xf86SaveRestoreImage() no longer cares how the lower framebuffer
+ layers access pixmap pixels (#3260, Marc La France).
+3193. Remove scanpci's redundant check for "root". It get in the way when
+ setting its setuid bit (#3260, Marc La France).
+3192. Add several acceleration functions to the tdfx driver, and fix some
+ compliance problems (#3259, Darryl Strauss).
+3191. i740 driver updates (#3256, Kurt Olsen).
+3190. Enable image writes in the nv driver for the TNT in 32 bit mode
+ (#3255, Jarno Paananen, Neil Burch).
+3189. Remove the last global variables from the nv driver (#3255,
+ Jarno Paananen).
+3188. Turn MGA soft reset stuff back on but modified so that it doesn't
+ poll for fifos in case the PLLs aren't powered up (#3254,
+ Mark Vojkovich).
+3187. Xterm patch #115 (#3253, Thomas Dickey).
+3186. Comment out some of the CacheBlit tiling code since the logic is not
+ quite correct and it can get stuck in an endless loop in some cases
+ (#3250, Mark Vojkovich).
+3185. Fix tseng 24 bpp mode (#3249, Egbert Eich).
+3184. Fix et4000W32p font corruption with ColorExpandScanline in modes > 8bpp
+ (#3249, Egbert Eich).
+3183. Add Solaris 8 support (#3241, 3247, David Holland).
+3182. Fix some build problems in the Type1 code that show up on Solaris 8
+ (#3241, David Holland).
+3181. Add an ISO8859-1 version of the "micro" font (#3246, Mark Montague).
+3180. Minor DDC code improvement: xf86PrintEDID() now returns pointer to
+ monitor structure (#3245, Egbert Eich).
+3179. Problem with RAC wrapper (hopefully) fixed (#3245, Egbert Eich).
+3178. Neomagic ScreenToScreenCopy bug fix (#3245, Egbert Eich).
+3177. Initial INT10 module (Linux-only so far) (#3245, 3248, 3251, Egbert Eich).
+3176. Update the DRM Linux kernel module to match that in the Linux 2.3.18
+ tree, and update libdrm and the DRI routines that use libdrm to reflect
+ changes in the Linux kernel (#3244, Rik Faith).
+3175. Fix a WarpPointer bug in Xinerama (#3243, 3252, Mark Vojkovich).
+3174. Fix a seg fault when changing DGA mode (#3242, Loic Grenie).
+3173. Xterm patch #114 (#3240, Thomas Dickey).
+3172. Fix an XAA GC validation problem with Polygons for some fillStyles in
+ some situations (#3239, Mark Vojkovich).
+3171. Fix an incorrect method for preallocating a color on the default map
+ (#3237, Mark Vojkovich).
+3170. Fix a bad assumption in the XAA NonTE text rendering code (#3236,
+ Mark Vojkovich).
+3169. An attempt to autodetect the G400 Max and set the max pixel clock
+ appropriately (#3235, Mark Vojkovich).
+3168. Fix shadowfb problems when drawing is done while switched out (#3234,
+ Marc La France).
+3167. Attempt to autodetect SDRAM in the MGA driver for the primary head
+ (#3233, Mark Vojkovich).
+3166. Make Window->Pixmap copies in Xinerama less broken (#3232,
+ Mark Vojkovich).
+3165. Fix a bug in the Xinerama ShmGetImage support added in the last alpha
+ (#3230, Mark Vojkovich).
+3164. New cursor warping code. This implements the new way of specifying
+ screen positions in the ServerLayout config file section (#3229,
+ Mark Vojkovich).
+3163. Add a xf86CheckMTRR function which returns TRUE when changing the
+ MTRR setting is supported and enabled (#3227, Alan Hourihane).
+3162. Resync SuperProbe and scanpci with the 3.3.x version (#3226,
+ Marc La France).
+3161. Make 8+24 work on Matrox 2064w (Millennium I) with >4MB (#3224,
+ Mark Montague).
+3160. Make xdpyinfo -ext XFree86-VidModeExtension print the current mode line
+ (#3223, Andrew Aitchison).
+3159. Minor fix to Xnest Imakefile (#3222, Marc La France).
+3158. Make the wrapping or replacement of ScreenRec region code function
+ pointers reliable when NEED_SCREEN_REGIONS is #define'd (#3221,
+ Marc La France).
+3157. Remove ScreenRec region code function pointers (except BitmapToRegion)
+ when the server is compiled with NEED_SCREEN_REGIONS #undef'ined
+ (#3221, Marc La France).
+3156. Fix memory leak during resource broker initialisation (#3220,
+ Marc La France).
+3155. During broker initialisation, use both system and non-system PCI
+ resources to "trim" OS resources. Among other things, this allows the
+ maximum memory limit to be bumped back up to 2G (#3220, 3282,
+ Marc La France).
+3154. Temporarily allow a driver to register resources that only conflict with
+ resources whose size the common layer has only estimated (#3220,
+ Marc La France).
+3153. ATI driver updates, including:
+ - Add option to display on the CRT interface whether or not a digital
+ flat panel is detected.
+ - Add support for ShadowFB (adapted from Henrik Harmsen).
+ - Always read BIOS from legacy location for adapters found enabled on
+ server entry.
+ - Ensure the primary CRTC is always used for the CRT interface.
+ - Fix determination of panel dimensions with older BIOS's.
+ - Stop driver when panel dimensions cannot be determined.
+ (#3219, Marc La France).
+3152. Thread-related updates to 'ico' (#3217, Carlos A M dos Santos).
+3151. Fix a build problem on 64-bit platforms introduced in 3.9.16a (#3216,
+ Matt Grossman).
+
+XFree86 3.9.16a (6 September 1999)
+3150. Add support to the parser for a new way of specifying the screen
+ positions (not made use of yet) (David Dawes).
+3149. Remove a spurious #endif in linux.cf (#3215, Jarno Paananen).
+3148. Add driver option VIDEO_OVERLAID_STILLS for the Xv DDX (untested)
+ (#3214, Mark Vojkovich).
+3147. Comment out the MGASoftReset() call in the mga driver to fix a
+ multi-head problem (#3213, Mark Vojkovich).
+3146. xman updates, including some app-defaults file tuning, change some
+ widget names for better consistency, reformat the help file and
+ update the man page (#3212, Carlos A M dos Santos)..
+3145. Add support for DG/ux systems to xload (#3212,
+ Takis Psarogiannakopoulos).
+3144. App-defaults file updates for xcalc (#3212, Carlos A M dos Santos).
+3143. Fix some prototypes/casts in viewres (#3212, Carlos A M dos Santos).
+3142. Add an XtSetLanguageProc() call to all contrib programs except xman
+ (#3212, Carlos A M dos Santos).
+3141. Fix a zero-height bug in the xaa text code (#3211, Mark Vojkovich).
+3140. ScreenToScreenColorExpansion bug fix for the G400 (#3210,
+ Mark Vojkovich).
+3139. Xineramify ShmGetImage (#3209, Mark Vojkovich).
+3138. Rewrite PanoramiXGetImage so that it passes xtest (#3209,
+ Mark Vojkovich).
+3137. Increase IMAGE_BUFSIZE to 64k (#3208, Mark Vojkovich).
+3136. Remove the "old input" code (David Dawes).
+3135. Fix a problem with xman that prevents it form recognising the
+ XM_DELETE_WINDOW message when xman is run with the "topbox" disabled
+ (#3207, Carlos A M dos Santos).
+3134. Prevent xkbcomp from overwriting writing through symlinks (#3206,
+ Branden Robinson).
+3133. Use ncurses instead of termcap for Linux/libc6 (#3204, H.J. Lu).
+3132. Fix a build problem with the tdfx driver (#3203, Takaaki Nomura).
+3131. Add a clean rule to remove the automatically generated
+ doc/sgml/index.sgml file (#3202, Marc La France).
+3130. Fix some build warnings (#3202, Marc La France).
+3129. Add missing files for the Rush extension (#3199, Loic Grenie).
+3128. Export the xf86InitFBManagerRegion symbol.
+
+XFree86 3.9.16 (31 August 1999)
+3127. Potential fix for a server crash when connecting from a byte-swapped
+ client in Xinerama mode (based on #3196, Attila Fülöp).
+3126. Build xterm/resize with -lncurses on Debian (#3197, Attila Fülöp).
+3125. Allow inclusion of Xvlib.h into C++ code (#3195, Vladimir Dergachev).
+3124. Modify the ISO-8859-{6,7,10} to Unicode tables so that they agree with
+ the tables found on ftp.unicode.org (#3172, Bruno Haible).
+3123. Some minor C&T bug fixes (#3194, David Bateman).
+3122. Xman update (#3174, Carlos A M dos Santos).
+3021. Import some xkb data file updates from 3.3.5.
+3020. Fix a build problem on Alpha platforms (#3191, Matt Grossman).
+3019. Allow driver SDK builds for the i740 driver (#3190, Daryll Strauss).
+3018. Allow driver SDK builds for the tdfx driver, and allow it to be built
+ without DRI support (#3189, Daryll Strauss).
+
+XFree86 3.9.15d (29 August 1999)
+3017. 3Dfx driver for Banshee and Voodoo3 (#3188,
+ Daryll Strauss/Precision Insight).
+3016. Fix a 24/32 GetImage problem (#3187, Mark Vojkovich).
+3015. Intel i740 driver (#3186, Precision Insight/Daryll Strauss).
+3014. Fix a planemask problem in 24bpp with the recently added MGA point
+ speedups (#3185, Mark Vojkovich).
+3013. Some new and updated ISO 10646-1 fonts, including 5x7, 6x10, 6x13, 6x13B,
+ 7x13, 7x13B, 7x14, 7x14B, 8x13, 8x13B, 9x15, 9x15B, 10x20, 9x18, 12x13ja,
+ 18x18ja (#3184, Markus Kuhn, Robert Brady, Birger Langkjer,
+ Constantine Stathopoulos).
+3012. Update the default xdm config file to disable listening for XDMCP
+ requests (#3183, Matthieu Herrb).
+3011. Reinstate the code to stop DDC1 problems on secondary screens with
+ the MGA driver (#3182, Andrew Aitchison).
+3010. Fix for the option handling in the glide driver (#3181, Henrik Harmsen).
+3009. NVIDIA doc update (#3179, Jarno Paananen).
+3008. Doc update for the C&T driver (#3176, David Bateman).
+3007. Update some of the bindist files (#3175, Michael Rohleder).
+3006. Fix a libXfont build problem that shows up on IUS (#3175,
+ Michael Rohleder).
+3005. Xaw and xedit updates (#3174, 3180, Paulo Cesar Pereira de Andrade).
+3004. Add a new DebuggableLibraries imake parameter to allow libraries to
+ be built with debugging symbols, and enable this by default for Linux
+ (#3173, Bruno Haible).
+3003. Some Driver SDK build fixes (#3172, David Bateman).
+3002. Modify the MGA driver to fall back to DDC1 if DDC2 fails or is
+ disabled (#3171, Andrew Aitchison).
+3001. Allow the -allowMouseOpenFail X server command line option to be
+ recognised independently of the XFree86-Misc extension (#3170, Joe Moss).
+3000. Update NetBSD's and OpenBSD's aperture driver to remove a warning from
+ xf86ReadBIOS() during xf86Config.c's PC98 detection on non-PC98 systems
+ (#3169, Marc La France).
+2999. Disable setting the default gamma from the DDC data (#3168,
+ Andrew Aitchison).
+2998. Update the microtouch input driver for "NEW_INPUT", and re-enable
+ building it (#3178, David Woodhouse).
+2997. Back out the change in 3.9.15c that includes "non-system" resources
+ in the RAC "system" resources list (#3167, Marc La France).
+2996. Update the RELNOTES for DDC (#3165, Andrew Aitchison).
+2995. Fix a problem with xf86ReadBIOS() on NetBSD/OpenBSD (#3164,
+ Marc La France).
+2994. Add an XLC_LOCALE file for zh_TW.Big5 (#3163, Pablo Saratxaga).
+2993. Add dummy Compose files for encodings that don't already have them
+ (#3163, Pablo Saratxaga).
+2992. APM driver updates. The Rush extension is now included in the driver
+ (some files missing, so not enabled yet) (#3162, 3159, Loic Grenie).
+2991. Some fixes for the VidMode extension (#3161, Loic Grenie).
+2990. Update SuperProbe to recognise the APM AT3D chipset (#3160, Loic Grenie).
+2989. Some fixes for the nv driver (#3158, Jarno Paananen).
+2988. Fix a typo in ObjectFromAsmSource() in xf86.rules (#3157,
+ Matthieu Herrb).
+2987. Add some NVIDIA cards to the Cards file (#3155, Jarno Paananen).
+2986. A quick hack to cut down on XAA pixmap cache thrashing that
+ happens with some particular apps (#3154, Mark Vojkovich).
+2985. Update the tabtcvn file to include the full tcvn-5712 encoding, not
+ only lowercase characters (#3153, Pablo Saratxaga).
+2984. Create the doc index list from information in the .sgml files
+ (David Dawes).
+2983. Basic man page for the generic VGA driver (David Dawes).
+2982. Fix for lockup problem with Trident Image 975 (Alan Hourihane).
+
+XFree86 3.9.15c (22 August 1999)
+2981. Update NetBSD.cf to reflect NetBSD's switch from GNU malloc to FreeBSD's
+ malloc (#3151, Bernd Ernesti).
+2980. Change xf86ReadBIOS() to reuse the fd for /dev/mem or /dev/xf86 from
+ the other bsd_video.c functions in order to avoid the difficulty caused
+ by the NetBSD aperture driver only allowing one open of /dev/xf86 at
+ a time (#3150, Matthieu Herrb).
+2979. Add pre-R6.4 compatible entries to the NLS .dir and .alias files. This
+ should make it possible for them to be used with older versions of Xlib.
+2978. Fix a typo in the MGA arc code that broke some arcs (#3149,
+ Mark Vojkovich).
+2977. Fix a problem with cfb allocating too much space on the stack when
+ clipping rects (#3148, Mark Vojkovich).
+2976. Add missing sync when uploading into the XAA pixmap cache (#3147,
+ Mark Vojkovich).
+2975. Change XDGAFlush() to XDGASync() (#3146, Mark Vojkovich).
+2974. Add transparent DGA blits to the MGA driver, and enable the OverclockMem
+ option for the G400 (#3145, Mark Vojkovich).
+2973. Update the common cursor code to keep virtual desktop panning from
+ interfering with screen rotation (#3144, Mark Vojkovich).
+2972. Dynapro driver update: initialise the incoming packet state machine,
+ and add a "SwapXY" option (#3142, David Woodhouse).
+2971. Fix a loader problem that shows up on Alpha/ELF platforms when there
+ is a .sbss section (#3141, Hannes Reinecke).
+2970. Modify DDC for neomagic (#3139, Egbert Eich).
+2969. Add DDC support for the S3 ViRGE (DDC2 untested) (#3139, Egbert Eich).
+2968. Fix DDC2 support for MGA and C&T drivers (#3139, Egbert Eich).
+2967. Add a call to xf86SetPciVideo(NULL,NONE) after each probe (#3139,
+ Egbert Eich).
+2966. Modified registration of the OS access windows (#3139, Egbert Eich).
+2965. Some Xaw and xedit fixes (#3138, Paulo Cesar Pereira de Andrade).
+2964. Next round of the font ansification and warning removal (#3135,
+ Matthieu Herrb).
+2963. Fix ATI 18800-x detection problem (#3133, Marc La France).
+2962. Check for limitations on vertical blending in panel support for the ATI
+ driver (#3133, Marc La France).
+2961. Update ATI driver to complain about bad BIOS data (#3133,
+ Marc La France).
+2960. Man page corrections for the MGA driver (#3132, Mark Vojkovich).
+2959. Limit PCI BIOS apertures to 16MB as per the PCI 2.1 spec (#3131,
+ Marc La France).
+2958. Assume a system has up to 1G of physical memory installed, rather than
+ 2G (#3130, Marc La France).
+2957. Fix a bug in the handling for buggy VGA CRTCs (#3129, Marc La France).
+2956. Fix to build the mga driver with the driver SDK (#3128, David Bateman).
+2955. Xterm patch #113 (#3125, Thomas Dickey).
+2954. Port the XAA cfb copyplane functions, adding them to the cfb code
+ (#3124, 3126, 3127, David Bateman).
+
+XFree86 3.9.15b (15 August 1999)
+2953. Improved point rendering performance for the MGA driver (#3123,
+ Mark Vojkovich).
+2952. Xaw and xedit updates (#3122, Paulo Cesar Pereira de Andrade).
+2951. Remove the Latin2 Type1 fonts.
+2950. Change the RGB mask names in the DGA structures (#3120, Mark Vojkovich).
+2949. More acceleration and bug fixes for the NV driver (#3119,
+ Jarno Paananen).
+2948. Change some things in the XAA color expansion code to facilitate
+ rendering into DMA buffers (#3118, Mark Vojkovich).
+2947. Fix a 64 bit problem with the xf24_32bpp layer (#3117, Mark Vojkovich).
+2946. Modify XF86FlushInput() to work for non-tty devices, which is required
+ for PS/2 mice with Linux 2.2.x kernels (#3114, Kazutaka Yokota).
+2945. Support for rotating the virtual desktop for the MGA driver using
+ the shadowfb (#3113, 3116, Mark Vojkovich).
+2944. Fix a colormap problem with DGA when initialized from an 8+24 mode with
+ the MGA driver (#3112, Mark Vojkovich).
+2943. Fix multihead on the MGA-2164W (#3111, Mark Vojkovich).
+2942. XAA speedups for planar copies in some cases (#3110, Mark Vojkovich).
+2941. Add a driver SDK which performs a similar function to the old LinkKit,
+ but for the loadable server (#3105, David Bateman).
+2940. C&T doc update and xgamma man page update (#3105, David Bateman).
+2939. Add an option to the C&T driver to allow the user to select the
+ transparency key when using the overlay (#3105, David Bateman).
+2938. Add DGA2 support to the C&T driver (#3105, David Bateman).
+2937. Fix a bug in the bitmap font code introduced in 3.9.15a (#3101,
+ Juliusz Chroboczek).
+2936. Some TGA driver cleanups, including a SaveScreen function and code to
+ disallow virtual desktops in a nicer way (#3100, Matt Grossman).
+
+XFree86 3.9.15a (1 August 1999)
+2935. Fix the RAC usage in the nv driver to allow multi-head to work
+ (#3093, Itai Nahshon).
+2934. Reduce memory consumption of the bitmap font backends when using
+ sparse fonts, which is important when using Unicode-encoded fonts
+ (#3092, Juliusz Chroboczek).
+2933. Fix Option register initialisation in multi-head for MGA 2064/2164
+ (#3089, Andrew Aitchison).
+2932. Convert the nv (NVIDIA) driver from 3.3.4 (#3078-3080, 3087,
+ Jarno Paananen).
+2931. Add SuperProbe for NetBSD 1.4 wscons (#3083, Matthias Drochner).
+2930. Fix button and modifier key state problems in DGA (#3082,
+ Mark Vojkovich).
+2929. Avoid a possible segmentation fault in "xsm" which, for example,
+ occurs local hostname can't be resolved (#3073, Matthias Scheler).
+2928. ATI driver updates, including:
+ - Add preliminary panel support.
+ - Rework RAC interface.
+ - PCI VGA's not on primary bus are now detected.
+ - Fix bug when an adapter's VGA has been disabled.
+ - Fix gamma support.
+ (#3069, Marc La France)
+2927. Fix 8514/A pre-defined resource and pre-define VGA sparse I/O resources
+ (#3069, 3081, Marc La France).
+2926. Fix a bug in the registration of background device BIOS'es (#3069,
+ Marc La France).
+2925. Invert the meaning of ResMinimised bit into ResEstimated (#3069,
+ Marc La France).
+2924. Allow drivers to print resource lists, and allow them to enable/disable
+ adapters before creating bus slots for them (#3069, Marc La France).
+2923. Resync SuperProbe and scanpci with 3.3.x (#3069, Marc La France).
+2922. Add some missing man pages for the DGA and VidMode extensions (#3064,
+ Joe Moss).
+2921. Some changes to the DGA and colormap layers to allow gamma changes
+ during DGA mode (#3060, Mark Vojkovich).
+2920. Fix XIM segv error (#3033, 3051, Manabe Takashi).
+2919. Add a client state callback to the DGA extension so that the server side
+ can be cleaned up when a DGA client exits (#3048, 3049, Mark Vojkovich).
+2918. Update the FreeBSD/mouse documentation (#3047, Kazutaka Yokota).
+2917. Fix an undocumented blitter constraint on the G200 (#3046,
+ Mark Vojkovich).
+2916. Fix the MGA driver so that it can support changing depth on the fly
+ in DGA mode. All depths are now offered to DGA clients regardless of
+ what the screen's main depth is (#3045, Mark Vojkovich).
+2915. Fix a bug in the InstallGenManPageLong() rule in lynx.cf (#3043,
+ Thomas Mueller).
+2914. Update ATI doc with info about a VGA/RAC problem (#3044,
+ Andrew Aitchison).
+
+XFree86 3.9.15 (19 July 1999)
+2913. -
+2912. Fix a problem with the library spec in xgc/Imakefile (#3042,
+ Thomas Mueller).
+2911. Add native 69030 support to the C&T driver (#3041, David Bateman).
+2910. Update release notes for the apm driver (#3040, Loic Grenie).
+2909. Fix a small bug in the color expands in the TGA driver (#3039,
+ Matt Grossman).
+2908. Updates for the Japanese (PC98) docs (#3038, Takaaki Nomura).
+2907. Some Xaw and xedit updates (#3037, Paulo Cesar Pereira de Andrade).
+2906. Fix a problem with the VidMode extension (#3036, David Bateman).
+2905. Sample config file for Japanese PC98 architecture (#3035,
+ Takaaki Nomura).
+
+XFree86 3.9Py (18 July 1999)
+2904. Add a visualClass to the XDGAMode request and a XDGACreateColormap
+ request to DGA 2.0 so Colormaps can be created for XDGADevices
+ without needing a corresponding visual (#3032, Mark Vojkovich).
+2903. Update the mmap versions of xf86ReadBIOS() to use a map size that
+ fits the requested BIOS offset and length rather than using a fixed
+ map size (David Dawes).
+2902. Xterm patch #112 (#3031, Thomas Dickey).
+2901. Change the colormap layer's LoadPalette function to take a Visual as
+ an argument rather than just the Visual class (#3030, Mark Vojkovich).
+2900. Add some code to auto-detect Japanese PC98 systems (#3029,
+ Takaaki Nomura).
+2899. Fix a casting problem in DefineSelf() that shows up on FreeBSD/alpha
+ (#3028, Doug Rabson).
+2898. Fix a problem with the GMX2000 DRI support (#3034, Jens Owen).
+2897. Work around a problem in mfb that is caused by an optimiser bug
+ in egcs-1.1.2 for the alpha (#3027, Doug Rabson).
+2896. Fix a problem that shows up in the s3virge driver after the recent
+ vgahw module changes (David Dawes).
+2895. Add missing references to xf86MiscExt.c in common/Imakefile (#3025,
+ Joe Moss).
+2894. Update for the apm driver so that it will work on a Japanese PC-98
+ with GA-RUSH6/PCI(VoodooRUSH based video card) (#3024, Isao Ohishi).
+2893. ISO 10646-1 Japanese font (12x13ja.bdf) that covers a superset of
+ CP1252 and JIS X 208, and which is suitable to be used together with
+ 6x13 for bi-width Japanese text output (#3022, Markus Kuhn).
+2892. Refine the MouseMan+ (PS2++) protocol support (#3020, Kazutaka Yokota).
+2891. Fix problems with the wheels on some mice, including the OEM version of
+ the Logitech FirstMouse+, are not recognized and the mouse cursor jumps
+ around (#3020, Kazutaka Yokota).
+2890. Fix a problem building the X-TT modules on Solaris 7 (based on #3019,
+ David Holland).
+2889. Fix a bug in Xaw/TextAction.c introduced in 3.9Pw (#3018,
+ Paulo Cesar Pereira de Andrade).
+2888. ISO 10646-1 version of the 5x7 and 6x13B fonts, and an update for the
+ 6x13 font (#3017, Markus Kuhn).
+2887. First part of the ansification of xc/lib/fonts. So far the bitmap,
+ fc and fontfile directories have been done (#3016, Matthieu Herrb).
+2886. Fix default PC98 XKB setting (#3015, Akio Morita).
+2885. Remove the reference to VGADriverDoc in xfree86/Imakefile (#3015,
+ Takaaki Nomura).
+2884. Fix a bug in Xaw/TextPop.c (#3014, Paulo Cesar Pereira de Andrade).
+2883. Man page update for xfontsel (#3013, Paulo Cesar Pereira de Andrade).
+
+XFree86 3.9Px (12 July 1999)
+2882. Updates to get XF86Setup to build again after the NewInput-related
+ changes, and have XF86Setup print a short message stating that it
+ isn't usable before exiting (#3012, Joe Moss).
+2881. Fix some compiler warnings in lib/Xext (#3011, Matt Grossman).
+2880. Fix a bug in the wacom driver that shows up when multiple wacom devices
+ don't report the same valuators (#3010, Frederic Lepied).
+2879. Some updates to the PCI/RAC code (#3008, Egbert Eich).
+2878. Fix the acute and apostrophe mixup in the German xkb layout with the
+ nodeadkey option, and add the EuroSign to AltGr+e (#3006, Markus Kuhn).
+2877. Add code to the mga driver to handle PC98 architecture machines
+ (#3007, Takaaki Nomura).
+2876. Add a global (ServerFlags) "PC98" Option for the Japanese PC98
+ architecture, and add a function xf86IsPc98() that drivers can call
+ to check for this.
+2875. Fix a relocation problem in the ELF loader that shows up on 64-bit
+ platforms when mapping unresolved symbols to LoaderDefaultFunc()
+ (#3005, Doug Rabson).
+2874. Remove the original text version of the DESIGN doc from hw/xfree86.
+2873. Fix a glyph padding problem in XAA's nonTE text code that shows up on
+ 64-bit platforms (Doug Rabson).
+2872. Rework the wacom driver's init phase (#3004, Frederic Lepied).
+2871. Add a 19200 speed option to the wacom driver for Airbrush tablets
+ (#3004, Frederic Lepied).
+2870. Add support for transparent stipples to the tga driver (#3003,
+ Matt Grossman).
+2869. Modify xfontsel to not show scaled fonts by default (#3002,
+ Paulo Cesar Pereira de Andrade).
+2868. Some notes about xterm for the release notes (#3001, Thomas Dickey).
+2867. Some Xaw, Xmu and xedit updates (#2999, 3002,
+ Paulo Cesar Pereira de Andrade).
+2866. Xterm patch #111 (#2998, Thomas Dickey).
+2865. Fix a "NoAccel" problem with the PM2 video support (#2997,
+ Michael Schimek).
+2864. Update for lynx.cf (#2995, Thomas Mueller).
+2863. Fix a LynxOS macro clash with the cirrus driver, and fix a
+ xf86UnmapVidMem() warning in the cirrus driver (#2995, Thomas Mueller).
+2862. Fix a problem on LynxOS where assert is unresolved in the static server
+ (#2995, Thomas Mueller).
+2861. Fix a problme with vsnprintf being unresolved when building Xvfb
+ and Xnest on some platforms (#2995, Thomas Mueller).
+2860. Remove the s3virge fifo_ changes introduced in 3.9Pu, update the
+ DGA2 support and docs (#2994, Kevin Brosius).
+2859. Initial attempt to get the XFree86-Misc again (#2993, Joe Moss).
+2858. Remove XAASync() (#2992, Rik Faith).
+2857. Cleanup the TGA driver's hw cursor code, remove global variables in
+ in the "accel" files, and fix up the RAC support (#2991, Matt Grossman).
+2856. Add partial support for color expands to the 8-bit TGA driver (#2991,
+ Matt Grossman).
+2855. Re-enable DDC2 support in the MGA driver (#2989, Andrew Aitchison).
+2854. Add missing TIOC defines for Interactive Unix to xf86_OSlib.h (#2990,
+ Michael Rohleder).
+2853. Don't register the Xqueue mouse handler for Interactive Unix (#2990,
+ Michael Rohleder).
+2852. Don't include sys/mman.h in cidchar.c when USE_MMAP isn't defined
+ (#2990, Michael Rohleder).
+2851. Disable BuildXF86DRI and BuildXF86DRIDriverSupport for Interactive Unix
+ (#2990, Michael Rohleder).
+2851. Update the apm (Alliance ProMotion) driver (#2987, 2988, Loic Grenie).
+2850. Fix a problem with the xf86config screen configuration that was
+ introduced with the removal of "32bpp" (#2986, Matthieu Herrb).
+2849. Add a DefaultDepth configuration page to xf86config (#2986,
+ Matthieu Herrb).
+2848. Add the inputDevice examples from XF86Config.eg to config files
+ generated by xf86config (#2986, Matthieu Herrb).
+2847. Modify the vgahw module to allow it to save/restore more than the
+ standard number VGA CRTC, Sequencer, Graphics and Attribute registers
+ (2985, 2996, Jeff Garzik).
+2846. Add DDC information to the release notes (#2984, Andrew Aitchison).
+2845. Change XDGAChangePixmapMode to return the X-Y position of the pixmap
+ in case the server is not able to place it exactly where requested
+ (#2983, Mark Vojkovich).
+2844. Fix some problems with unfavorable alignment of XAA offscreen pixmap
+ (#2982, Mark Vojkovich).
+2843. Some XAA speedups for NonTE text in certain cases (#2981,
+ Mark Vojkovich).
+2842. Rename the assembler files that need preprocessing from .s to .S,
+ and adjust the imake rules accordingly.
+2841. A fix for xf86PciReadBios() (#2979, Egbert Eich).
+2840. Fix a problem with false detection of multi-function PCI devices (#2978,
+ Loic Grenie).
+2839. Fix a problem with libXfont.a not being linked into exports/lib during
+ the build phase (#2977, Thomas Mueller, 2990, Michael Rohleder).
+2838. Deal with OSes which don't have TIOCM ioctls in posix_tty.c (#2976,
+ Thomas Mueller).
+2837. Fix the use of TIOCM_ in some calls to xf86SerialModem..() in mouse/pnp.c
+ (#2976, Thomas Mueller).
+2836. Enable NEW_INPUT on LynxOS (#2976, Thomas Mueller).
+
+XFree86 3.9Pw (6 July 1999)
+2835. Fix for GetBlock() (#2974, Egbert Eich).
+2834. Remove the test for SHAREDIOCLASS when creating a pciAccessInfoRec for
+ a device (#2974, Egbert Eich).
+2833. Modified BIOS ROM handling, doing validation only on demand (#2974,
+ Egbert Eich).
+2832. Add a ChangeGamma function to the ScrnInfoRec, which allows drivers to
+ optionally provide a function to do this instead of the default one
+ provided by the colormap layer (#2972, Mark Vojkovich).
+2831. Sis driver memclock fixes (#2971, Bart Oldeman, Juanjo Santamarta).
+2830. Add snprintf() and vsnprintf() to libc emulation (#2970, Marc La France).
+2829. Increase array size in PciInfo data (#2970, Marc La France).
+2828. Add a LoaderRefSymbols() function (#2970, Marc La France).
+2827. When matching fixed clocks, prefer non-CLKDIV2 modes over CLKDIV2 modes
+ (#2970, Marc La France).
+2826. Reinstate xf86GetPciConfigInfo() and some warning fixes (#2970,
+ Marc La France).
+2825. Build libXext and libX11 client-side libraries when also building
+ GLX, despite BuildServersOnly (#2970, Marc La France).
+2824. Update ATI doc (#2970, Marc La France).
+2823. ATI driver from 3.3.3.1 (rac interface is preliminary, no LCD panel
+ or Rage 128 support yet) (#2970, Marc La France).
+2822. Fix Ukrainian_GHE_with_upturn double definition error (#2969,
+ Peter Novodvorsky).
+2822. Updates to the xf86config utility for the 4.0 config file format
+ (#2968, Matthieu Herrb).
+2821. Add default rules to allow easy compilation of .c files to assembler.
+
+XFree86 3.9Pv (4 July 1999)
+2820. Add a marked up (SGML) version of the DESIGN doc (David Dawes).
+2819. Remove the Alpha-specific Linux libc6 parts in linux.cf.
+2818. Add a "defs.ent" file for defining SGML entities that can be shared by
+ other docs (David Dawes).
+2817. Import the mouse.sgml doc from 3.3.x, and update it for 4.0.
+2816. Remove support for the very old LinuxDoc tools.
+2815. Use SpecialCObjectRule() in favour of SpecialObjectRule().
+2814. Fix lots of 64-bit problems in XAA (#2967, Mark Vojkovich).
+2813. Add a new DGA request to allow switching the DGA pixmap from one the
+ size of the framebuffer to one the size of the viewport that you
+ can move around (#2966, Mark Vojkovich).
+2812. Make sure that all Xinerama heads have the same root window depth,
+ and don't advertise backing store or save unders as being available
+ unless it's available on all heads (#2965, Mark Vojkovich).
+2811. Some Xaw and xedit updates (#2964, Paulo Cesar Pereira de Andrade).
+2810. Some DRI updates (#2962, Rik Faith).
+2809. Fix a double-free problem in the mouse driver (#2959, Egbert Eich).
+2808. Add some debugging code to xalloc.c to detect and allow trapping of
+ double xfree() calls (#2954, Egbert Eich).
+2807. Add Single GLINT MX support for Direct Rendering, which now allows
+ ELSA Gloria XXL to take part in this (#2592, 2955, 2957, 2958,
+ Alan Hourihane and #2960, Rik Faith).
+2806. Add ScanlineCPU function to the glint driver for PM2 when pci
+ retries aren't used (#2952, Alan Hourihane).
+2805. Use mediumraw keyboard mode for LinuxPPC (#2946, Gerd Knorr).
+2804. Xterm patch #110 (#2943, Thomas Dickey).
+2803. Add CyberBlade/i7 (Socket 7), CyberBlade/i7 DSTN (Laptop Socket 7) and
+ CyberBlade/i1 (Slot 1) support to the trident driver (#2940,
+ Alan Hourihane).
+2802. Some new PCI ids for Cyberblades and Via MVP4 (#2939, Alan Hourihane).
+2801. Replace `__volatile__' in xf86drm.h with `volatile' (#2938,
+ Takaaki Nomura).
+2800. Fix a problem with the umask not being reset in some cases in the
+ xtrans code (#2936, Bill Nottingham).
+2799. Improve the latency associated with writing to the PCI config space,
+ which is important for RAC to work efficiently (Egbert Eich).
+
+XFree86 3.9Pu (27 June 1999)
+2798. Xterm patch #109 (#2920, Thomas Dickey).
+2797. Xaw and xedit updates (#2932, 2933, Paulo Cesar Pereira de Andrade).
+2796. Make the "fifo_conservative" memory settings default for the s3virge
+ accelerator (#2931, Kevin Brosius).
+2795. Preliminary DGA2 code for the s3virge driver (#2931, Kevin Brosius).
+2794. Updates to PI's DRI sample implementation, including:
+ - Dynamic loading of the OpenGL client driver is implemented
+ - 3D client death while holding the drawable lock does not cause deadlock
+ - The kernel module works with Linux 2.2.x [x <= 10] and 2.3.y [y <= 8]
+ - A better authentication mechanism has been implemented
+ - XF86Config options for the DRI are supported
+ (#2929, Precision Insight).
+2793. Add functions to the FBManager to query the largest size available and
+ to purge all areas that aren't nailed down (#2928, Mark Vojkovich).
+2792. Fix some serious performance problems with Xinerama when the number
+ of resource IDs becomes large (#2927, Carsten Haitzler).
+2791. Remove the significant RGB bits check from Xinerama visual eliminations
+ (#2926, Mark Vojkovich).
+2790. Fix a typo in xmodmap and xstdcmap (#2924, Matthieu Herrb).
+2789. Fix the type of the OverclockMem Option in the MGA driver (#2922,
+ Andrew Aitchison).
+2788. Fix PCI resource handling problems that were showing up with the
+ glint driver (#2918, Egbert Eich).
+2787. Fix a problem building some Makefiles when JoystickSupport is enabled
+ (#2917, Todd Fries).
+2786. Fix a typo in the RAC support for the glint driver (#2915, Jens Owen).
+2785. Fix a RAC-related build problem on 64-bit machines (#2913,
+ Matt Grossman).
+2784. Some afb-related updates (#2911, Sven Luther).
+2783. Fix race condition in xinit (Nate Eldredge, Mark Montague).
+2782. Documentation for the new RAC code (Egbert Eich).
+2781. Fix some problems with the glide driver that can result in server crashes
+ if there is a problem when it is starting up (David Dawes).
+2780. Install the X server signal handlers before xf86OpenConsole is first
+ called. This makes sure that the VT is returned to text mode if the
+ server crashes in the early stages of InitOutput() (David Dawes).
+2779. Fix xf86vsprintf() and xf86vfprintf().
+2778. Support for the different PLL reference clock used for HP's on-board
+ G200s.
+2777. Disable building the Xanti extension (Mark Vojkovich).
+2776. Update the log file handling to catch most messages that are generated
+ before the log file is actually opened (David Dawes).
+2775. Another fix for PM2 text restoration (Egbert Eich).
+
+XFree86 3.9Pt (20 June 1999)
+2774. First cut at converting the fbdev, sis, glide, neomagic and rendition
+ drivers for the new RAC code (David Dawes).
+2773. Fix a PM2 lockup problem during GLINTSave, and fix a text mode font
+ corruption problem (#2907, Egbert Eich).
+2772. Xterm patch #108 (#2906, Thomas Dickey).
+2771. Fix a problem with duplicate ShmCompletion events in Xinerama mode
+ (#2905, Mark Vojkovich).
+2770. Add a XDGAKeyEventToXKeyEvent helper function to the DGA client library
+ (#2904, Mark Vojkovich).
+2769. Fix some incorrect XAA GC validation checks (#2903, Mark Vojkovich).
+2768. Fix some XAA caching problems with shared memory pixmaps (#2903,
+ Mark Vojkovich).
+2767. Wait for the fifo to clear out in the mga driver before returning to
+ the client after any cpu->screen color expansion or image writes (#2901,
+ Mark Vojkovich).
+2766. Don't use the BIOS info for the MGA G400 since we don't understand
+ the format (#2901, Mark Vojkovich).
+2765. Fix some MGA bitblit problems when more than 16MB of memory is being
+ used (#2901, Mark Vojkovich).
+2764. Set memory clocks to the bios defaults in the MGA driver, and add an
+ Option "OverclockMem" to allow the previous settings to be used (#2901,
+ Mark Vojkovich).
+2763. Xaw and xedit updates (see lib/Xaw/Changelog) (#2899,
+ Paulo Cesar Pereira de Andrade).
+2762. Ansification and warning elimination in lib/xtrans (#2896,
+ Matthieu Herrb).
+2761. Fix a glint scanline interleave bug introduced by the change in
+ device scaning order in the new RAC code (#2890, Jens Owen).
+2760. Fix a dual head Xinerama crash that happens when running the xv program
+ (#2889, Itai Nahshon).
+2759. Add v4l Xv support to the trident driver (#2877, Alan Hourihane).
+2758. Trident Image series and standard chipset acceleration fixes (#2877,
+ Alan Hourihane).
+2757. Add more Blade3D acceleration to the trident driver (#2877,
+ Alan Hourihane).
+2756. Fix for DPMS with the new RAC (Itai Nahshon).
+2755. RAC updates, including changing the way PCI resource validation works
+ (Egbert Eich).
+2754. Update the TGA driver for the new RAC (#2886, Matt Grossman).
+2753. Fix a fatal event problem with DGA 2.0 (#2884, Mark Vojkovich).
+2752. Fix some macros in xf86str.h that conflict with system headers on some
+ platforms (#2883, 2888, 2902, Matt Grossman).
+
+XFree86 3.9Ps (14 June 1999)
+2751. Some small RAC updates (Egbert Eich).
+2750. Direct Rendering Infrastructure from Precision Insight (#2871).
+2749. Fix a problem building xedit on SVR4.0 (missing strcasecmp).
+
+XFree86 3.9Pr (13 June 1999)
+2748. Xterm patch #107 (#2879, Thomas Dickey).
+2747. Cirrus driver updates, including support for generic (V4L) video
+ adapters, fix depth 15 mode for the laguna chips and turn of the DAC
+ when blanking the screen (#2878, Itai Nahshon).
+2746. Fix problems with the build of the 6.1-compatible Xaw shared library,
+ and some optimizations and bug fixes for the Xaw and xedit (#2877,
+ Paulo Cesar Pereira de Andrade).
+2745. Add functions (CreateFontRec and DestroyFontRec) for allocating and
+ freeing FontRecs rather than having the size encoded in all of the
+ renderer modules. Also, change the font private index handling to
+ make all indices show up in all FontRecs (#2873, Mark Vojkovich).
+2744. Add ANSI prototypes for lib/XIE (#2870, Thomas Dickey).
+2743. Some preliminary work on adding afb support to the fbdev driver (#2869,
+ Sven Luther).
+2742. Change the semantics of xf86ReadPciBIOS() to allow it to temporarily
+ map an unmapped BIOS at the address assigned to another of the card's
+ base address registers, and modify the MGA driver to make use of this
+ (David Dawes).
+2741. Add some functions to the common layer to allow drivers to register
+ input handling functions, and modify the pm2_video code to make use of
+ this instead of the XInput code (David Dawes).
+2740. Trap for packed 24bpp on systems with 64-bit scanlines.
+2739. Fix the type of the "set_mckl" option in the s3virge driver (#2865,
+ Harald Koenig).
+2738. Fix some s3virge palette problems in 8bpp mode (#2863, Harald Koenig).
+2737. Avoid clobbering CR55 in the s3virge HW cursor code (#2862,
+ Harald Koenig).
+2736. Xterm patch #106 (#2861, Thomas Dickey).
+2735. Fix an incorrect test in I2CWriteBytes() in the i2c module (#2875,
+ Ben Cahill).
+2734. Don't set YDSTORG for the non-WRAM Matrox cards (#2874, Mark Vojkovich).
+2733. Change the order of text-mode font restoration in the vgahw module
+ (#2872).
+2732. XInput driver for Dynapro touch screens (#2859, 2860, 2867,
+ David Woodhouse).
+2731. Enable support for extended PS/2 protocols on Solaris/x86 (#2857,
+ Nicholas Brealey).
+2730. Fix the ZAxisMapping handling in the mouse driver (#2857,
+ Nicholas Brealey).
+2729. Add a sixth valuator to the wacom driver to support the wheel of
+ the airbrush and of the lens cursor (Frederic Lepied).
+2728. Convert the wacom driver to work with the new input code
+ (Frederic Lepied).
+2727. Increase the MAXSCREENS value from 4 to 16 (Egbert Eich).
+2726. Add support to scanpci for printing out PCI-PCI bridge header
+ information correctly (Egbert Eich).
+2725. New RAC (Resource Access Control) code (Egbert Eich).
+2724. Update the Solaris/x86 version of xf86ReadBIOS() to handle BIOSs located
+ at high physical addresses (David Dawes).
+2723. An attempt at allowing the server to correct the /tmp/.X11-unix
+ directory when it is possible to do so safely (David Dawes).
+2722. Re-enable screen->screen blts for the Trident Image3D, and fix a problem
+ with mapping/unmapping memory with VT switching (David Dawes).
+2721. Fix a problem linking with libXfont when building the shared version
+ is disabled (David Dawes).
+2720. Fix an Xlib problem introduced in 3.9Pq that shows up when X_LOCALE
+ is defined (David Dawes).
+
+XFree86 3.9Pq (6 June 1999)
+2719. Change the parser's error message printing so that they will end
+ up in the log file (David Dawes).
+2718. Add support for armscii-8, ibm-cp1133, mulelao-1, viscii1.1-1,
+ tcvn-5712, georgian-academy, georgian-ps (not all complete yet)
+ (#2843, Pablo Saratxaga).
+2717. Some fixes for the v4l driver that make it keep track of the video
+ state correctly (#2854, Gerd Knorr).
+2716. Xterm patch #105 (#2853, Thomas Dickey).
+2715. Add defines to the Xaw code to make it possible to build a version
+ of the shared library that is binary compatible with the standard 6.1
+ version (#2849, Paulo Cesar Pereira de Andrade).
+2714. Xedit updates (see the Xaw Changelog for details) (#2849,
+ Paulo Cesar Pereira de Andrade).
+2713. Bump the Xaw library major version (now 7.0), and enable the Xpm
+ dependency by default (#2849, Paulo Cesar Pereira de Andrade).
+2712. Fix an Xmu build warning (#2849, Paulo Cesar Pereira de Andrade).
+2711. Some updates to the XAnti extension (#2851, 2852, Mark Vojkovich).
+2710. Update the scanline width choices used in the MGA driver to better
+ match the capabilities of the different chips (#2850, Mark Vojkovich).
+2709. Add G400 support to the MGA driver (#2850, Mark Vojkovich).
+2708. Resync SuperProbe with 3.3.3.1e, and add ATI Rage XL & XC detection
+ (#2847, Marc La France).
+2707. Fix for drivers/v4l/README (#2846, David Woodhouse).
+2706. Fixes for the big5.eten-0 and gb2312.1980-0 encoding files (#2840, 2841,
+ 2846, Juliusz Chroboczek).
+2705. Use 8-bit I/O instead of 16-bit I/O in xf4bpp (better for older
+ adapters), and some cleanups (#2838, Marc La France).
+2704. Fix RGB "masks" for depth <=8, and fix the formatting of the "Clocks"
+ messages (#2838, Marc La France).
+2703. Remove assumption that PCI systems contain PCI video (#2838,
+ Marc La France).
+2702. Add missing parsing of the ZAxisMapping option to the revised mouse
+ driver (David Dawes).
+2701. Add a simple verification check for core-capable input devices
+ (David Dawes).
+2700. Update the serial PnP mouse support for the revised mouse driver
+ (David Dawes).
+
+XFree86 3.9Pp (30 May 1999)
+2699. Xterm patch #104 (#2836, Thomas Dickey).
+2698. Doc updates for the s3virge driver, and cleanup register debugging
+ printouts (#2835, Kevin Brosius).
+2697. Rework the config file search algorithm, and allow "safe" relative
+ paths to be specified by non-root users (David Dawes).
+2696. Close input devices while VT switched away (David Dawes).
+2695. Prevent the input device "PreInit" from being called in subsequent
+ server generations (David Dawes).
+2694. Handle the Keyboard config information as an InputDevice section
+ (but the keyboard driver isn't converted yet) (David Dawes).
+2693. Add basic accessEnable calls to the Tseng driver so that it will at
+ least work single head with an ET6000 (David Dawes).
+2692. Fix Xinerama bugs related to the Shape extension (#2832, Mark Vojkovich).
+2691. Separate the pitch and virtual X increments (#2829, Marc La France).
+2690. Add some large encoding files for the `fontenc' layer (#2827,
+ Juliusz Chroboczek).
+2689. A rewrite of the way Xinerama handles visuals (#2824, Mark Vojkovich).
+2688. Integrate the pointer acceleration patch from Kevin Brown (#2823,
+ Frederic Lepied).
+2687. Make button mapping work for XInput "AlwaysCore" devices (#2823,
+ Frederic Lepied).
+2686. Fix xtest failure with SiS TwoPointLine (#2821, Juanjo Santamarta).
+2685. Xlib support for KOI8-U (#2820, Aleksey Novodvorsky).
+2684. Fix a problems with the new mouse code looping by adding CLOCAL to
+ the standard termios flags for xf86OpenSerial() (#2819, Matthieu Herrb).
+2683. New font document (#2818, Juliusz Chroboczek).
+2682. Fix the reworked "wsmouse" code for NetBSD (#2815, Matthieu Herrb).
+2681. Fix for `resize' on OpenBSD (#2814, Matthieu Herrb).
+2680. Add the `s' flag to ArCmd and ArAddCmd for SVR4 so that empty archives
+ can be created (#2813, Nicholas Brealey).
+
+XFree86 3.9Po (23 May 1999)
+2679. Enable the new input code (NewInput) by default in xfree86.cf
+ (David Dawes).
+2678. Add compatibilty support for interpreting "Pointer" sections as
+ "InputDevice" sections in the reworked input device code (David Dawes).
+2677. Modify mkfontdir to handle duplicate encodings in a reasonable way
+ when generating the encodings.dir file (#2812, Juliusz Chroboczek).
+2676. Xaw and xedit updates (see lib/Xaw/Changelog for details) (#2811,
+ Paulo Cesar Pereira de Andrade).
+2675. Fix xinerama problems with clipmasks and stipple/tile offsets
+ in GCs used on the root window (#2810, Mark Vojkovich).
+2674. Fix problems uploading to the pixmap cache in 8+32 mode when
+ ImageWrites aren't available (#2809, Mark Vojkovich).
+2673. Ansify the Xv client library (#2808, Mark Vojkovich).
+2672. Add a XvQueryPortAttributes request to the Xv API/protocol and
+ driver interface, with an example in the v4l driver, and update the
+ documentation (#2808, Mark Vojkovich).
+2671. Fix some compiler warnings in the oldX and ICE libraries (#2807,
+ Matt Grossman).
+2670. Fix a problem with the Type1 font handling that was introduced when the
+ CID support was added (#2805, Ivan Bach).
+2669. Wacom driver update, including a fix for initialization problems with
+ Wacom IV devices, and improved Wacom V device support (Lens cursor
+ support) (#2803, Frederic Lepied).
+2668. Fix for some 8+32 xinerama problems (#2802, Mark Vojkovich).
+2667. Xkb fixes for PC98 (#2800, Akio Morita).
+2666. Xkb data files for a Macintosh keyboard (#2798, Sven LUTHER).
+2665. Some preliminary support for the "new" mouse driver for most OSs
+ (David Dawes).
+2664. Prevent xf86LogInit() being called for subsequent server generations.
+
+XFree86 3.9Pn (16 May 1999)
+2663. Add a SetClientVersion request to the DGA extension (David Dawes).
+2662. Change DGA initialisation ordering in the MGA driver (#2796,
+ Mark Vojkovich).
+2661. Turn off DGA pixmaps in xinerama since it insists on duplicating
+ the rendering protocol on all heads despite the DGA pixmaps existing
+ only on a single head (#2795, Mark Vojkovich).
+2660. Fix some xinerama problems with 8+32 overlays (#2795, Mark Vojkovich).
+2659. Add XAA acceleration for DGA pixmaps (#2795, Mark Vojkovich).
+2658. Add PCI IDs for new NVIDIA chipsets (#2794, Mark Vojkovich).
+2657. Change the default cursor colour in the app-defaults for editres
+ (#2793, Paulo Cesar Pereira de Andrade).
+2656. Xedit updates, including a new Xedit-color.ad file, to show some of
+ the new features of Xaw, and some improvements to the ispell interface
+ (#2793, Paulo Cesar Pereira de Andrade).
+2655. Xaw updates, including some fixes, optimizations, and additional
+ documentation (#2793, Paulo Cesar Pereira de Andrade).
+2654. Working mouse support with the new input device code (David Dawes).
+2653. Fix for sysv_video.c on Interactive UNIX (#2792, Michael Rohleder).
+2652. Fix handling of xkbcomp's -I flag (Stanislav Meduna).
+2651. CID updates (third submission) (#2769, Ivan Bach, SGI).
+2650. Kludge to allow a server with the glint driver to link without XInput
+ (#2788, Marc La France).
+2649. Remove unused dacSpeeds field from the ScrnInfoRec (#2788,
+ Marc La France).
+2648. Add an option to the colourmap code to allow a driver's LoadPalette()
+ to be called even when switched out (#2788, Marc La France).
+2647. Add more reasons for rejecting a mode (#2788, Marc La France).
+2646. Factor in the log verbosity when reporting the verbosity to a driver
+ (#2788, Marc La France).
+2645. Allow xf86GetClocks() to be called with NULL ProtectRegs() and
+ BlankScreen() functions (#2788, Marc La France).
+2644. When deleting a screen, also free its mode lists and options (#2788,
+ Marc La France).
+2643. Allow a driver to determine if -probeonly was specified (#2788,
+ Marc La France).
+2642. Fix a large jump in changelog numbering that happened a little while
+ ago (#2788, Marc La France).
+2641. Various warning and include fixes (#2788, Marc La France).
+2640. Xterm patch #103 (#2786, Thomas Dickey).
+2639. SiS driver updates, including fixing the SetMClk option, change solid
+ lines from bresenham to two-point, correct a clippling bug, and change
+ the verbose level of some messages (#2784, 2785, Juanjo Santamarta).
+2638. Fix a server loop that can happen when VT switching while a grab is
+ in progress (#2782, Edward Wang).
+2637. Xterm patch #102 (#2778, Thomas Dickey).
+2636. Fix some spelling errors in Xlib.h (#2775, Itai Nahshon).
+2635. Add auto-detection of Debian to imake (#2774, Sven Luther).
+2634. SiS driver updates, including turning on solid line acceleration,
+ remove GXCOPY_ONLY for Mono8x8 patterns, change mmio pointers to
+ volatile to avoid optimization problems, use xaarop.h, fix offscreen
+ memory init to avoid exceeding the accelerator's address range
+ (#2772, Alan Hourihane).
+2633. Fix build problems with the v4l driver on some systems (based on #2771,
+ Gerd Knorr, and a suggestion from David Woodhouse).
+2632. Xterm patch #101 (#2770, Thomas Dickey).
+2631. Fix some more Xinerarma bugs (#2766, 2768, Mark Vojkovich).
+2630. Fix the use of va_lists in the logging code (David Dawes).
+
+XFree86 3.9Pm (9 May 1999)
+2629. Clean up the handling of Alphas in the s3virge driver (#2767,
+ Matt Grossman).
+2628. Fix a problem that can show up when a module is unloaded while another
+ module has unaccounted for references to its symbols (Egbert Eich).
+2627. -
+2626. Finish DGA event support (#2765, Mark Vojkovich).
+2625. Xaw updates (including compatibility updates and a man page), xedit
+ and editres updates (#2764, Paulo Cesar Pereira de Andrade).
+2624. Disable MIT-SHM in Xnest since it doesn't work (#2763, Wolfram Gloger).
+2623. Add hw clipping for the SiS 6326, and solid lines (disabled) (#2760,
+ Juanjo Santamarta).
+2622. Cirrus driver updates (#2759, Itai Nahshon).
+2621. Fix complier warnings in lib/X11 (#2758, Matt Grossman).
+2620. Fix complier warnings in lib/Xau (#2757, Matt Grossman).
+2619. Update some of the font encoding translation files (#2756,
+ Juliusz Chroboczek).
+2618. Fix some bugs in the font encoding support (#2756, Juliusz Chroboczek).
+2617. Update the Arabic24 BDF font to version 1.3 (#2754, Mark Leisher).
+2616. Xterm patch #100 (#2753, Thomas Dickey).
+2615. A start at the unification of input devices (David Dawes).
+2614. Change the MGA ImageWrite code to not use the image transfer window
+ for simple cpu->framebuffer copies (#2738, Mark Vojkovich).
+2613. Add lseek and bsearch to the libc wrappers (and fix fseek), as needed
+ by the CID font code.
+2612. Add missing file for CID fonts support, and fix a few module-related
+ thing with it.
+
+XFree86 3.9Pl (3 May 1999)
+2611. Fix Xinerama bugs in GetImage and PolyRectangle (#2751, Mark Vojkovich).
+2610. Xterm patch #99 (#2750, Thomas Dickey).
+2609. Disable unneccessary C&T message (#2748, Nozomi Ytow).
+2608. Add some DGA event support (not working yet) (#2747, Mark Vojkovich).
+2607. Xaw and xedit updates including some compatibility updates and
+ performance improvements (#2746, Paulo Cesar Pereira de Andrade).
+2606. Modify mkfontdir to create "encodings.dir" files (#2745,
+ Juliusz Chroboczek).
+2605. Update the DESIGN doc for the new DGA driver interface (#2744,
+ Mark Vojkovich).
+2604. Update the LynxOS vidmem code to use the new shared vidmem.c (#2743,
+ Thomas Mueller).
+2603. -
+2602. Update TGA docs (#2737, Matt Grossman).
+2601. Fix a zero width problem that shows up in xaaSpans.c when hardware
+ clipping is enabled (#2736, Alan Hourihane).
+2600. Add support for Adobe CID fonts (#2728, Ivan Bach, SGI).
+2599. Quick fix for cirrus driver problem introduced in 3.9Pk.
+2598. Fix a problem with pcitweak that was preventing it from working with
+ buses other than bus 0 (David Dawes).
+2597. Update xfontsel to display appropriate glyphs for ISO10646 fonts
+ (Mark Leisher).
+2596. Add support for building XF86Setup with ncurses on NetBSD and OpenBSD
+ (#2734, Matthieu Herrb).
+2595. Fix vidmem map/unmap mismatch in the TGA driver (#2733, Matt Grossman).
+2594. A minor interlace improvement for the PM2 Xv driver (#2731,
+ Michael Schimek).
+2593. Fix color expansion bug in the SiS driver (#2729, Juanjo Santamarta).
+2592. Major resync for OS/2 (#2727, 2732, 2735, Holger Veit).
+2591. Xterm patch #98 (#2726, 2730, Thomas Dickey).
+2590. Fix a build V4L driver build problem (#2725, David Woodhouse).
+2589. Xterm patch #97 (#2724, Thomas Dickey).
+2588. Move the VTInit and VTSysReq keywords from the Keyboard section to
+ the ServerFlags section (as options) (David Dawes).
+2587. Remove the legacy ServerNumLock and "RightAlt", etc special key mapping
+ support (David Dawes).
+2586. Add a new, more complete version of snprintf, vsnprintf for OSs that
+ don't have it. This one is based on the "SIO" stdio-like package
+ (David Dawes).
+2585. Add log file support, including separate log and stderr streams, and
+ separate verbosity levels for each stream. Changed the -verbose option
+ to accept an optional integer argument that specifies the verbosity
+ level, add a -logverbose option and a root-only -logfile option
+ (David Dawes).
+2584. Unify the "Overlay" options and "SetMclk" options, and remove the
+ SetMClk Device section keyword (David Dawes).
+2583. Add a "frequency" option value type for use with options processed
+ by xf86ProcessOptions(). This value type consists of a floating point
+ number optionally followed by "Hz", "kHz" or "MHz" (David Dawes).
+
+XFree86 3.9Pk (25 April 1999)
+2582. Move the SVR4-specific handling of mapping memory areas which have
+ read side-effects out of the drivers and into the os-support layer
+ (David Dawes).
+2581. Fix unmap parameters for the SiS driver (David Dawes).
+2580. Fix unmap parameters for the glint driver (#2722, Alan Hourihane).
+2579. Fix the depth 24 visual initialisation (mask, offset) in the
+ Rendition driver (#2720, Martin Cerveny).
+2578. Rework the use of inb/outb in the trident driver, replacing it with
+ MMIO. Also, don't use the 0xBF000 range for the accelerator registers
+ (#2719, Alan Hourihane).
+2577. Add a -screen option to the xgamma utility so that the gamma of each
+ screen can be changed in Xinerama mode (#2717, Mark Vojkovich).
+2576. Fix all the known problems with the ispell support in xedit (#2716,
+ Paulo Cesar Pereira de Andrade).
+2575. Xaw updates, including improved speed for FindPiece in AsciiSrc.c,
+ add submenu support to the SimpleMenuWidget, add support for text
+ justification to the TextWidget, add an overwrite mode to the
+ TextWidget, make the TextWidget understand negative "multiply" values,
+ add an indent action to the TextWidget, fix a bug in the undo code
+ (#2716, 2721, Paulo Cesar Pereira de Andrade).
+2574. Pcitweak fix for LynxOS, and define NO_MMAP for pre 2.5.0 LynxOS
+ releases (#2715, Thomas Mueller).
+2573. Fix for cirrus hardware cursor on (big endian) PowerPC platform
+ (#2715, Thomas Mueller).
+2572. Experimental DDC support for the Matrox "G" series cards (#2713,
+ Andrew Aitchison).
+2571. Fix a crash in the XAA fill code that happens when
+ Mono8x8PatternFillFlags is set only to HARDWARE_PATTERN_PROGRAMMED_BITS,
+ which affects the TGA driver (#2712, Matt Grossman).
+2570. Replace the default "fixed" (6x13) font with Markus Kuhn's ISO 10646-1
+ version (#2711, Markus Kuhn).
+2569. Import Mark Leisher's ClearlyU BDF fonts (#2707, Mark Leisher).
+2568. Import Mark Leisher's Arabic24 BDF font (#2706, Mark Leisher).
+2567. Initial acceleration for the 24-plane TGA (#2710, Tim Rowley).
+2566. Fix clip bugs in the MGA driver (#2709, Mark Vojkovich).
+2565. Update the `xfsft' TrueType backend to version beta1.1.4. This includes
+ updates to the `fontenc' interfaces (#2708, Juliusz Chroboczek).
+2564. Fix some #include problems with the rendition driver (#2704, Dejan Ilic).
+2563. Fix a syntax error in the `ru' symbols file (#2703, Peter Novodvorsky).
+2562. Update the xf86SetGamma and xf86SetDpi helpers to use DDC information
+ when it is available, and update the MGA driver to make the DDC
+ information available earlier in the PreInit phase (#2702,
+ Andrew Aitchison).
+2561. Flesh out XF86Setup's config file read and write routines (#2701,
+ Joe Moss).
+2560. Parser fixes (#2700, Joe Moss).
+2559. Remove the out of date references to the sparse map mem functions from
+ the loader (#2699, Matt Grossman).
+2558. Color expansion for the SiS driver, and change the "NoTurboQueue" option
+ to "TurboQueue" (#2696, Juanjo Santamarta).
+2557. Xterm patch #96, including improved logic for bold fonts, improved
+ Unix98 PTY support, and modify initial-erase logic to ensure that the
+ ttyModes resource overrides it (#2695, Thomas Dickey).
+2556. Some #include and warning fixes (#2693, Marc La France).
+2555. On an error, tell user to re-run the server >without< -quiet. This is
+ generalized to allow the production of error messages to specify the
+ minimum verbosity to be used before reporting a problem (#2693,
+ Marc La France).
+2554. Make -depth 24 produce a more appropriate message when the driver
+ doesn't support it (#2693, Marc La France).
+2553. Reinstate black & white colour options for 1bpp (#2693, Marc La France).
+2552. Fix a typo in XF86Conf.man (#2691, Itai Nahshon).
+2551. Fix the initialisation of some global flags when the config file has
+ no ServerFlags section (David Dawes).
+
+XFree86 3.9Pj (18 April 1999)
+2550. Update SiS docs (#2690, Juanjo Santamarta).
+2549. Glide driver and documentation updates. Fix the "EXTERN_MODULE"
+ usage, force the virtual size to be the display size, and add a
+ GlideDevice Option to specify one of multiple cards (#2689,
+ Henrik Harmsen).
+2548. Resync DPMS timeout code with the 3.3.x code, which fixes some problems
+ (#2688, David Wragg).
+2547. Preliminary MTRR support for FreeBSD (3.2 and later) (David Dawes).
+2546. Separate the OS-independent and OS-dependent parts of the MapVidMem
+ functions, and handle sparse mapping with a flag to MapVidMem instead
+ of using a separate function (David Dawes).
+2545. Remove most LinkKit references.
+2544. Disable WC for the framebuffer for the Rendition V1K by default,
+ because it appears to be causing lockups (Dejan Ilic).
+2543. Some fixes for the Rendition driver (Dejan Ilic).
+2542. Add HW cursor using the Bt485 ramdac to the DEC TGA driver (#2687,
+ Matt Grossman).
+2541. More of the DGA 2.0 extension. Most of it is there now except for
+ the events (#2686, Mark Vojkovich).
+2540. Imlement attributes for Audio (mute, volume) and implement
+ QueryBestSize for the v4l driver (#2685, Gerd Knorr).
+2539. Fix hardware cursor code so that it works with the internal 64 bit
+ scanlines used on Alpha platforms (#2679, Matt Grossman).
+2538. Export new DGA symbols from the loader (#2678, Alan Hourihane).
+2537. Update C&T driver to use independent clocks for FP/dual and CRT modes
+ with HiQV chipsets (#2677, Egbert Eich).
+2536. Port of Precision Insight's NeoMagic driver to the new design
+ (#2677, Egbert Eich).
+2535. Add a Linux kernel backbone to the Permedia 2 Xv driver (#2661+revisions,
+ Michael Schimek).
+2534. Port of the rendition driver to the new design (#2674, Marc Langenbach).
+2533. Fix for the parser's printDeviceSection() function (#2673, Joe Moss).
+2532. Fix a bug in the handling of ZAxisMapping in the parser (#2672,
+ Nicholas Brealey).
+2531. Enable mono 8x8 pattern fills for the SiS driver (#2670,
+ Juanjo Santamarta).
+2530. Remove references to ru_SU in locale.alias (#2669, Aleksey Nowodworsky).
+2529. Fix a bug in xf86CollectOptions() that could cause a server crash.
+2528. Fix the problem causing the mouse acceleration to be done twice
+ (#2671, Frederic Lepied).
+2527. Disable clipping in the trident driver for FillRectSolid because the
+ driver gets passed zero values (#2681, Alan Hourihane).
+2526. Add Trident Blade3D support (#2681, Alan Hourihane).
+2525. Add Mono8x8 pattern for the Trident Image series (#2681, Alan Hourihane).
+2524. Fix trident screen glitches when mode switching (#2681, Alan Hourihane).
+2523. Some minor documentation-related cleanups. Doctools version 1.0.2 is
+ now required to format the XFree86 docs.
+
+XFree86 3.9Pi (11 April 1999)
+2522. Fix a Linux/PPC loader relocation bug, and reenable building the
+ loadable server by default for Linux/PPC (#2668, Gerd Knorr).
+2521. Fix a problem with non-terminated strings in the Xv library (#2665,
+ Gerd Knorr).
+2520. Update the v4l driver -- fix open/close handling and add support for
+ the XV_ENCODING attribute (#2665, Gerd Knorr).
+2519. Implement FBDevSaveScreen() (#2664, Gerd Knorr).
+2518. Enable shadowfb by default for the fbdev driver (#2664, Gerd Knorr).
+2517. Fix fbdev option handling (#2664, Gerd Knorr).
+2516. Fbdev documentation updates (#2664, Gerd Knorr).
+2515. Some more progress on the DGA 2.0 API/protocol (#2663, Mark Vojkovich).
+2514. Add ispell support to xedit (#2662, Paulo Cesar Pereira de Andrade).
+2513. Fix -DUSE_XPM handling in Xaw (#2662, Paulo Cesar Pereira de Andrade).
+2512. Some updates to the offscreen memory allocator and the i2c code
+ (#2661, Michael Schimek).
+2711. Use the correct version of xf86Xinput.c (the wrong version was
+ included in 3.9Ph) (Frederic Lepied).
+2710. Fix a pcitweak build problem on NetBSD (#2659, Isao Ohishi).
+2509. Add acceleration for the 8+16 mode of the C&T driver (#2658,
+ David Bateman).
+2508. Add compatibility to the client-side of the VidMode extension so that
+ it will work with 3.3.x servers (#2657, David Bateman).
+2507. Update 'ru' xkb symbols file (#2656, Aleksey Nowodworsky).
+2506. Add Trident 9525 ID to PCI info and trident driver (#2655,
+ Alan Hourihane).
+2505. Cleanup some compiler warnings in mfb and mi (#2654, Alan Hourihane).
+2504. Added a glide driver. It currently only works with the loadable
+ server (read the manpage before trying it) (#2653, Henrik Harmsen).
+2503. Update the Type1/latin2 fonts.* files to disable reencoding of the
+ fonts while keeping the same XLFD names (#2652, Juliusz Chroboczek).
+2502. Fix some pcitweak build problems on Interactive UNIX (#2651,
+ Michael Rohleder).
+2501. Xterm patch #95 (see xterm.log.html for details) (#2649, Thomas Dickey).
+2500. Fix typos in the VidMode extension that causes a protocol problem
+ (#2648, 2657, David Bateman).
+2499. Reorder the visuals to put TrueColor before DirectColor so that broken
+ clients (like Wabi) that assume the default visual is the first visual
+ will work (2647, David Woodhouse).
+2498. Fix a problem with the ThinkingMousePS/2 protocol handling of left
+ movement (#2392, Ian Remmler).
+2497. Fix an ISO8859-5 support bug in Xlib (Nikolai Saoukh).
+2496. Rework the GlxInitVisuals hooks with a more general wrapper-based
+ mechanism (David Dawes).
+2495. Fix a XINERAMA bug in dix/events.c (Dirk Hohndel).
+
+XFree86 3.9Ph (5 April 1999)
+2494. Add code to XF86Setup for mode adjustment (like xvidtune), addition,
+ and removal (#2646, Joe Moss).
+2493. Remove the use of the `dialog' program from XF86Setup, and add
+ various curses routines and the start of a text mode user-interface
+ (both curses & plain text). Also remove some obsolete Tk 4.0-specific
+ code (#2645, Joe Moss).
+2492. Add code to XF86Setup to convert all of the config file sections
+ to/from Tcl variables (#2644, Joe Moss).
+2491. Allow fbdev to handle non-page-aligned framebuffers correctly (#2643,
+ Gerd Knorr).
+2490. Add RAC code to the fbdev driver (if there is a PCI BusID specified
+ in the config file it will "check in" this into access control)
+ (#2643, Gerd Knorr).
+2489. Cleanup in sysv_video.c (#2642, Michael Rohleder).
+2488. Update xedit's realpath.c for IUS (#2642, Michael Rohleder).
+2487. Add support for InputDevice sections to the parser (not used yet)
+ (David Dawes).
+2486. A first cut at cleaning up the handling of memory mapping and client
+ exit/crash in the DGA library (David Dawes).
+2485. Shadowfb support for the generic VGA driver at depths 4 and 1
+ (Dirk Hohndel and Mark Vojkovich).
+2484. Fix the printMonitorSection and printDeviceSection functions in
+ the parser (#2641, Joe Moss).
+2483. Change the s3virge chipset names, removing the slashes (#2640,
+ Kevin Brosius).
+2482. Preliminary s3virge man page (#2640, Kevin Brosius).
+2481. Fix s3virge HW cursor (#2640, Kevin Brosius, Mark Vojkovich).
+2480. Remove some multiply defined variables in the cfb modules to avoid
+ a problem on LynxOS PowerPC (#2639, Thomas Mueller).
+2479. Fix a crash in the new xedit code for listing files and directories
+ (#2638, Paulo Cesar Pereira de Andrade).
+2478. Change the kill_ring code in TextAction.c to always end in a text block
+ of zero length (#2638, Paulo Cesar Pereira de Andrade).
+2477. Add xpm pixmap support to Xaw (needs to be built with -DUSE_XPM
+ for this), and if the xpm image has a mask, the widget will be
+ automatically reshaped to the pixmap mask (#2638,
+ Paulo Cesar Pereira de Andrade).
+2476. Add some PCI IDs for Creative Labs 3D Blaster Banshee PCI (#2637,
+ Nicholas Brealey).
+2475. XAA pixmap->window and window->pixmap copy optimization (#2636,
+ Mark Vojkovich).
+2474. Implement some attributes for the v4l module, and fix the clipping
+ code (#2635, Gerd Knorr).
+2473. Incorporate 3.3.1 FIFO settings for the SiS driver based on memory
+ bandwidth and pixel clock (#2632, Juanjo Santamarta).
+2472. SetMclk and FastVram options for the SiS driver (#2632,
+ Juanjo Santamarta).
+2471. Fix some SiS mode switch problems (#2632, Juanjo Santamarta).
+2470. Imakefile fix for building the X server with BuildGlxExt=NO (#2631,
+ Thomas Mueller).
+2469. Imakefile fixes for cxpm and sxpm (#2631, Thomas Mueller).
+2468. LynxOS resync, including removing the CrossCompile rule from lynx.cf,
+ LynxOS sparc resync, remove SMEM warning for default verbose level,
+ LynxOS support for chips driver util programs (#2631, Thomas Mueller).
+2467. Add man pages for the fbdevhw and fbdev modules (#2630, Gerd Knorr).
+2466. Add fb.h so that fbdevhw can be built on pre-2.2 Linux (#2630,
+ Gerd Knorr).
+2465. Add support for generic Xv adaptors to the fbdev driver (#2629,
+ David Woodhouse).
+2464. Fix X locale problem for Linux/libc6 introduced in 3.9Pg (#2628,
+ Nozomi Ytow).
+2463. Fix VT switching problems with the 8+16 code (#2627, David Bateman).
+2462. Generic Xv support for the s3virge driver (#2626, David Woodhouse).
+2461. Add a permission notice to videodev.h (#2625, David Woodhouse).
+2460. Resync parts of the XInput DDX code with 3.3.x, including restoring
+ the "Switch" device, RELATIVE_CHECK code, Elographics driver,
+ Wacom driver, and Joystick driver (#2514, 2548, Frederic Lepied
+ and Patrick Lecoanet).
+2459. Fix remaining build issued with the GLX/Mesa integration
+ (Marc La France).
+2458. Some preliminary support code that the new RAC code may use
+ (David Dawes).
+2457. Add a utility called `pcitweak' that can be used to read/write
+ registers in the PCI config space from the command line (David Dawes).
+
+XFree86 3.9Pg (29 March 1999)
+2456. Fix an off-by-one clipping error in the XAA wide line code (#2624,
+ Mark Vojkovich).
+2455. Add HW cursor support to the s3virge driver and make it the default
+ (#2623, Kevin Brosius).
+2454. Add OS-specific subdirectories to the loader subdirectory search lists,
+ and install OS-specific modules in such directories (David Dawes).
+2453. Set the screen numbering in multihead configurations based on the
+ ordering of the Screen entries in the ServerLayout section,
+ and allow an optional numerical argument to follow the Screen
+ keyword to indicate a different ordering (David Dawes).
+2452. Fix some signedness discrepancies in the libc_wrapper code.
+2451. Add missing parts to the parser's printKeyboardSection routine (#2621,
+ Joe Moss).
+2450. Finalising the DGA 2.0 driver interface (#2619, Mark Vojkovich).
+2449. Xterm patch #94 (#2618, Thomas Dickey).
+2448. Accelerated support for 8+16 overlays in XAA (untested) (#2617,
+ Mark Vojkovich).
+2447. Some optimisations for the 8+32 and 24+32 layers (#2616, Mark Vojkovich).
+2446. Updates for IUS (Interactive Unix) (#2614, Michael Rohleder).
+2445. Update xf86config for the 4.0 config file format (#2613,
+ Justin Bradford).
+2444. Update and clean up the Cards file (#2600, 2612, Justin Bradford).
+2443. When probing for a VGA, it's unnecessary to unlock its CRTC registers
+ (#2611, Marc La France).
+2442. Remove xf86FreeBusSlots(), which is redundant, unused and incorrect
+ (#2611, Marc La France).
+2441. Move the claiming of ISA resources from xf86Check???Slot() to
+ xf86Claim???Slot() (#2611, Marc La France).
+2440. On Linux, define _GNU_SOURCE only compiling the xc/ source tree (#2611,
+ Marc La France).
+2439. Remove uneeded s3virge files (#2615, Kevin Brosius).
+2438. "pci_burst" option updates for the s3virge driver (#2615, Kevin Brosius).
+2437. Fix missing accel flags and depth 24 problem with the s3virge driver
+ from the Alpha patch (#2615, Kevin Brosius).
+2436. Make sure the size of offscreen pixmaps don't exceed the address space
+ of the ViRGE (#2610, Mark Vojkovich).
+2435. Add a driver for video4linux frame grabber cards (#2609, Gerd Knorr,
+ David Woodhouse).
+2434. Add support to the MGA driver so that it will use any available
+ generic Xv adaptors (#2609, David Woodhouse).
+2433. Add xf86XVRegisterGenericAdaptor() and xf86XVListGenericAdaptors()
+ functions for maintaining a list of Xv adaptors which are not tied
+ to a particular screen (#2609, David Woodhouse).
+2432. Fix virtual screen panning with the SiS driver (#2608,
+ Juanjo Santamarta).
+2431. Fix security problem with the creation of the /tmp/.X11-unix directory
+ (#2607, Matthieu Herrb).
+2430. Update the 8+16 layer to get the color key from the new field in
+ the ScrnInfoRec (#2605, Mark Vojkovich).
+2429. Complete the Xv config evaluation code in the PM2 Xv driver and the
+ common layer (#2604, Michael Schimek).
+2428. Modify Xv DDX's clipping interface (#2604, Michael Schimek).
+2427. Fix a bug in the handling of Boolean options (#2603, Michael Schimek).
+2426. Have xf86ChangeGamma() update and install the default colormap
+ when the currently installed colormap is not implemented by lookup
+ (#2602, Mark Vojkovich).
+2425. Export StoreColors() (#2601, Mark Vojkovich).
+2424. Replace all Imakefile.obj files with Imakefile.inc because .obj is
+ a reserved extension for object file on OS/2 (#2599, Holger Veit).
+2423. Update the Cards file parser to accept a new DRIVER line (#2598,
+ Justin Bradford).
+2422. Fix getline clash in proxymngr and xsm (#2595, Dejan Ilic).
+2421. Fix colourmap on Permedia2, and fix GLINT SaveScreen to blank the
+ display (#2594, 2596, Alan Hourihane).
+2420. Make fbdev work on Sparc Linux, and fix a few bugs in fbdevhw and
+ fbdev (#2593, Jakub Jelinek).
+2419. Sparc Linux support for XFree86 (#2593, Jakub Jelinek).
+2418. Add DPMS support to the s3virge driver (#2592, Matt Grossman).
+2417. ppc_flush_icache() for Linux/PPC, required for the loader to work
+ correctly (#2591, Gerd Knorr).
+2416. Linux/PPC loader fix (#2590, Stuart Anderson).
+2415. Modify the ramdac module and glint driver to use the ScrnInfoRec
+ overlay fields (#2589, 2594, Alan Hourihane).
+2414. Add RTL ethernet and VIA APCI PCI devices to the ID list (#2588,
+ Kevin Brosius).
+2413. Fix a problem with $(STD_CPP_DEFINES) that was introduced in 3.9Pf.
+2412. Add VESA default modes, small perl hack to create an initialized data
+ structure from them, and the code to use those modes as default if no
+ other modes with the same name are defined (Dirk Hohndel).
+
+XFree86 3.9Pf (21 March 1999)
+2411. Fix some malloc problems in xf86xv.c (#2587, Michael Schimek).
+2410. Fix building of Xprt, Xnest and Xvfb when doing a loader build
+ (David Dawes).
+2409. Updates to s3virge driver to get it working under Linux/Alpha
+ (#2586, Matt Grossman).
+2408. Fix getline() clash (#2585, Alan Hourihane).
+2407. Have the s3virge driver use the new XAA rop helper functions (#2584,
+ Mark Vojkovich).
+2406. Add code to SuperProbe to detect the S3 Trio3D and Savage3D
+ (2583, Eric Molitor).
+2405. Add some XAA helper functions that drivers can call for help
+ converting X rops into MS rops (#2582, Mark Vojkovich).
+2404. Resync the overlay support in the glint driver (#2580, 2581,
+ Mark Vojkovich).
+2403. Add support for changing the overlay color key to the MGA driver
+ (#2579, Mark Vojkovich).
+2402. Preallocate the color key in the default colormap and set it to
+ something already in the default man (black) so that AllocColor will
+ never allocate it (#2578, Mark Vojkovich).
+2401. Use the color key field in the ScrnInfoRec for the overlay layers
+ (#2578, Mark Vojkovich).
+2400. Preliminary loader support for Linux/PPC ELF objects (#2577 (2570),
+ Stuart Anderson).
+2399. Fix some XAA offscreen pixmap problmes (#2576, Mark Vojkovich).
+2398. DGA fixes. Old apps should now run with the new driver interface,
+ and event handling should work better than before (#2575,
+ Mark Vojkovich).
+2397. Fix most remaining signed/unsigned and prototype warnings in the
+ following directories: lib/Xaw, lib/Xmu, programs/xclipboard,
+ programs/xconsole, programs/xmag, and programs/xvidtune (#2574,
+ Thomas Dickey).
+2396. Restore the interface of XmuConvertStandardSelection() to use
+ XPointer rather than XtPointer (#2574, Thomas Dickey).
+2395. Fix an malloc size bug in libICE (#2572, Christopher Sekiya).
+2394. Make MIT-SHM resource types non-static so that other extensions
+ (like Xv) can access client shared memory segments (#2571,
+ Mark Vojkovich).
+2393. First cut at altering the C&T user docs for 4.0 (#2569, David Bateman).
+2392. Fix a C&T problem affecting the colourmap setup for 1bpp modes, and some
+ other minor C&T driver fixes (#2569, David Bateman).
+2391. Fix an buffer overflow in os/connection.c (#2568, Gerd Knorr).
+2390. Add support for Modes sections and the UseModes keyword for Monitor
+ sections to the parser (#2567, Dirk Hohndel).
+2389. Fix xfree86.cf for Alpha (#2567, Dirk Hohndel).
+2388. Fix XAAFillPolygonStippled to obey the flag NO_TRANSPARENCY in
+ Mono8x8PatternFill (#2566, Xavier Ducoin).
+2387. Only allow the shadowfb layer in the C&T driver when linear addressing
+ is enabled (#2565 (2561), David Bateman).
+2386. Fix some problems with the xf8_16bpp layer, and allow it to work
+ with depth 15 as well as 16 (#2565 (2561, 2562), David Bateman).
+2385. Implement TrueColor with PseudoColor Overlays (8+16) for the
+ C&T driver for HiQV chipsets (#2565 (2561), David Bateman).
+2384. Add a -quiet option to xgamma (#2565 (2561), David Bateman).
+2383. Add TrueColor Gamma Correction for C&T HiQV chipsets (#2565 (2561),
+ David Bateman).
+2382. Fix Permedia 2 HW cursor lockup (#2563, Alan Hourihane).
+2381. Initial XAA support for SiS530 and SiS620 (#2560, Xavier Ducoin).
+2380. Add SuperProbe for SiS (#2559, Xavier Ducoin).
+2379. Fix the InstalMultipleMan and InstallMultipleManSuffix rules for
+ NetBSD and OpenBSD (#2558 (2557), Matthieu Herrb).
+2378. Add Cards entry for Number Nine FX Reality 772 (#2556, Harald Koenig).
+2377. Make XF86Setup build again (not fully functional yet) (#2555, Joe Moss).
+2376. Update the apm (Alliance Promotion) driver to the 4.0 interface (#2554,
+ Loic Grenie, Henrik Harmsen).
+2375. Add some rules for driver/module man pages, and add a sample driver
+ man page for the mga driver (David Dawes).
+2374. Update the Option Names section of xfree86/Registry (David Dawes).
+2373. Merge the OPTV_BOOLEAN and OPTV_TRI option classes, removing the
+ latter. Update code affected by this (David Dawes).
+2372. Fix the BackingStore option.
+2371. Disable transparency for screen->screen copies for Trident Image for
+ now.
+2370. Trident Image transparency update (#2564, Alan Hourihane).
+
+XFree86 3.9Pe (14 March 1999)
+2369. Fix problems debugging archive library modules on Linux with long
+ member names (Paul Flinders).
+2368. Add new XAA clipping for Trident Image (#2553, Alan Hourihane).
+2367. Fix Trident save screen so that it blanks the display (#2553,
+ Alan Hourihane).
+2366. Fix tranparency for the Trident Image cards (#2553, Alan Hourihane).
+2365. Remove the panmi and pandix directories, since they're no longer
+ needed.
+2364. Add gamma correction to the C&T driver, but disabled because it doesn't
+ work yet (David Bateman).
+2363. Add shadow fb support to the C&T driver (David Bateman).
+2362. Finish off the VidMode extension backward compatibility code
+ (David Bateman).
+2361. Add SetGamma/GetGamma requests to the VidMode extension, and a client
+ called 'xgamma' that makes use of them to allow the server's gamma
+ correction to be changed dynamically (David Bateman).
+2360. Make the cursor layer smart enough to remove the cursor itself when
+ DGA is activated (#2552, Mark Vojkovich).
+2359. Add some overlay-related entries to the ScrnInfoRec (#2550,
+ Mark Vojkovich).
+2358. Some DGA fixes (#2550, 2551, Mark Vojkovich).
+2357. Set X_BYTE_ORDER from the imake config, and use it in place of
+ the system's BYTE_ORDER (David Dawes).
+2356. Update copyright notices in the s3virge driver (#2546, Kevin Brosius).
+2355. Xterm patch #93 (#2546, Thomas Dickey).
+2354. Fix some minor fbdev problems in fbdevhw and the mga driver (#2545,
+ Gerd Knorr).
+2353. Disable the loader for LinuxPPC because it doesn't work (#2545,
+ Gerd Knorr).
+2352. Disable the Linux fbdevhw by default for versions older than 2.2
+ (#2545, Gerd Knorr).
+2351. Xaw and xedit updates, including changes to Xaw to support latin*
+ languages in the text code when not using the "international" resource
+ (#2544, Paulo Cesar Pereira de Andrade).
+2350. Add 3D decoration and the ability to display an XPM pixmap in the xdm
+ Login widget. A default pixmap made with the XFree86 logo is included
+ (#2543, Amit Margalit, Caolan McNamara, Ivan Griffin, Matthieu Herrb).
+2349. Improve attribute scaling in the PM2 Xv driver (#2542, Michael Schimek).
+2348. Add an "acecad" mouse protocol so that an acecad tablet can be used
+ with the standard mouse driver (#2541, Jeff Anton).
+2347. Include xf86_ansic.h in module build of xf86vmode.c (#2540,
+ Matthieu Herrb).
+2346. Fix a server crash when no mode lines are specified in the Monitor
+ section (#2539, Andreas Ehliar).
+2345. Resync SuperProbe with the 3.3.3.1 version (#2538, Marc La France).
+2344. Document -once server commad line option (#2538, Marc La France).
+2343. Add and document a -noreset server command line option to disable server
+ resets when the last client connection is closed. This is useful for
+ xtest'ing a server that is switched out (#2538, Marc La France).
+2342. More compiler warning fixups, including a re-integration of GLX for both
+ static and loader builds (#2538, Marc La France).
+2341. On Linux, compile with _GNU_SOURCE so that declarations for snprintf &
+ friends may be #include'd with <stdio.h> (#2538, Marc La France).
+2340. Fix the glint driver's use of resource control, which fixes problems
+ using MGA/GLINT combinations in multi-head (#2537, Alan Hourihane).
+2339. Fix a problem building xrdb with SVR4.0's cc (#2536, Satoshi Kimura).
+2338. Fix a trident 24bpp bug (#2535, Alan Hourihane).
+2337. Fix Permedia 2V hardware cursor (#2534, Alan Hourihane).
+2336. Add the rest of the known EM_ machine type defines, and Sparc
+ specific relocation defines to loader/elf.h (#2533, David Miller).
+2335. -
+2334. Disable MTRRs when unmapping memory (#2531, David Wragg).
+2333. Avoid the MTRR messages on systems with no MTRR support unless
+ the "mtrr" option is specified or -verbose is used (#2531, David Wragg).
+2332. -
+2331. Fix some offscreen pixmap-related problems with XAA (#2497, 2549,
+ Mark Vojkovich).
+
+XFree86 3.9Pd (9 March 1999)
+2330. Updates for Hurd port (#2528, UCHIYAMA Yasushi).
+2329. Fix some Solaris 7 build problems (#2530, Nicholas Brealey).
+2328. Add some more PCI entries (#2529, Nicholas Brealey).
+2327. Preliminary DGA support for the mga driver (#2527, Mark Vojkovich).
+2326. Fix some DGA bugs and turn on events in the DGA compatibility code
+ (#2526, Mark Vojkovich).
+2325. Fix the memory units in the old DGA (#2525, Mark Vojkovich).
+2324. Allow drivers to limit the size of XAA offscreen pixmaps (#2524,
+ Mark Vojkovich).
+2323. Fix the problem with XAA pixmap cache messages only being printed
+ for the first screen (#2524, Mark Vojkovich).
+2322. Temporarily disable rops without a source in the s3virge driver,
+ and add the ShowCache option (#2523, Mark Vojkovich).
+2321. Add XF86Config parser for VideoAdaptor configuration (#2521,
+ Michael Schimek).
+2320. Fis Permedia DPMS bug and Permedia 2 hw cursor (#2521, Michael Schimek).
+2319. Move include/Xvlib.h to include/X11/extensions/, add missing
+ XvPortNotify, and fix Xv DDX StopVideo deficiency (#2521,
+ Michael Schimek).
+2318. More ansifications/gcc warning removal for the clients (#2520,
+ Matthieu Herrb).
+2317. Implement backward compatibility for the server side of the VidMode
+ extension, which relies on the new clients informing the server of
+ their version (David Dawes).
+2316. Initial conversion of the VidMode extension for 4.0 (David Bateman).
+2315. Add DPMS support to the TGA driver (#2518, Matt Grossman).
+2314. Fix a bug in xaaInitAccel.c that affects disabling offscreen pixmaps
+ (#2519, Andrew Aitchison).
+2313. Some SiS driver fixes/updates (#2517, Juanjo Santamarta).
+2312. Fix a server crash when assiging the primary device (#2516,
+ Alan Hourihane).
+2311. Don't save/restore the VGA colourmap in the glint driver (#2515,
+ Alan Hourihane).
+2310. Fix a problem of using freed data in xgc (#2512, Jeff Anton).
+2309. Make the server fail gracefully when it can't load its base modules
+ (#2511, Alan Hourihane).
+2308. Fix a global declaration clash in panoramiXprocs.c (#2510,
+ Alan Hourihane).
+2307. Fix installation of GLX man pages (based on #2509, Matthieu Herrb).
+2306. Update the Linux/ppc section of xfree86.cf (#2507, Gerd Knorr).
+2305. Add code to the mga driver for using the fbdevhw module (#2507, 2522,
+ Gerd Knorr).
+2304. Add a fbdev module that provides a simple non-accelerated driver that
+ works on top of fbdevhw (#2507, Gerd Knorr).
+2303. Add a fbdevhw module that provides the functions needed to access
+ Linux framebuffer devices (#2507, Gerd Knorr).
+2302. Add a wrapper for mmap and munmap (#2507, Gerd Knorr).
+2301. Fix an XAA FillPoly problem that shows up with the noblank screen
+ saver (#2513, Mark Vojkovich).
+2300. Fix some problems in XAA's 32->24bpp image conversion (Mark Vojkovich).
+2299. Fix padding in the xf24_32bpp layer (#2508, Mark Vojkovich).
+
+XFree86 3.9Pc (2 March 1999)
+2298. Preliminary work on new DGA event support (#2506, Mark Vojkovich).
+2297. Add rewrite of s3virge driver's accel code (#2505, Mark Vojkovich,
+ Kevin Brosius).
+2296. Remove typos and inconsistencies between the Xv manual pages and
+ the implementation (#2504, Michael Schimek).,
+2295. Ansification and gcc warning elimnation in xfwp, xhost, xieperf,
+ xinit, xkbevd, xkbprint, xkbutils, xkill, xlogo (#2502, Matthieu Herrb).
+2294. Fix an MGA driver crash that shows up when running xtest (#2501
+ Alan Hourihane).
+2293. Correctly indicate when the MGA driver auto-detects SDRAM cards
+ (#2500, Alan Hourihane).
+2292. Add "noddc1" and "noddc2" options to the DDC layer to allow DDC to
+ be disabled (#2499, Alan Hourihane).
+2291. Change PsAttVal.c (Xprt/PS) so that values other then {PostScript 2}
+ can be put into xp-raw-formats-supported (#2498, Noah Roberts).
+2290. Fix a 'make includes' problem in lib/font that shows up on SVR4.
+2289. Integrate SGI's GLX and the Mesa core rendering library
+ (#2492, Precision Insight, SGI, Mesa).
+2288. -
+2287. New DGA DDX layer (not finished yet) (#2495, Mark Vojkovich).
+2286. Backwards compatibility layer translating DGA 1.0 into the new DDX
+ (#2494, Mark Vojkovich).
+2285. Disable old DGA support in the cirrus driver (#2493, Mark Vojkovich).
+2284. Ansification and gcc warning elimnation in xclipboard, xclock, xcmsdb,
+ xconsole, xdm, xdpyinfo, xedit, xfd and xfindproxy (#2491,
+ Matthieu Herrb).
+2283. Fix 8 plane TGA 8x8 pattern fill (#2490, Matt Grossman).
+2282. Fix pitch padding in the xf24_32bpp layer (#2489, 2496, Itai Nahshon).
+2281. Add DPMS support for the Cirrus Laguna chips (#2489, 2496, Itai Nahshon).
+2280. Add loader req/ref symbol lists to the cirrus module (#2489, 2496,
+ Itai Nahshon).
+2279. Fix cirrus display corruption with acceleration and SW cursor
+ (#2489, 2496, Itai Nahshon).
+2278. Add minimal 5430 support to the cirrus driver (#2489, 2496,
+ Itai Nahshon).
+2277. Resync LynxOS support (#2486, Thomas Mueller).
+2276. Remove the driver for the never-released P3D chipset (#2285, Dejan Ilic).
+2275. Change xf86XVScreenInit's arguments so that it's easier to initialize
+ the Xv DDX when adaptors come from multiple sources (#2484,
+ Mark Vojkovich).
+2274. Ansification and gcc warning elimnation in x11perf and xauth
+ (#2483, Matthieu Herrb).
+2273. Fix a backing store bug in the 24/32 layer, and add a local version
+ of a 24->24bpp copy routine since the performance in cfb24 is too
+ poor (#2481, Mark Vojkovich).
+2272. Add support for setting write-combining for the frame buffer memory,
+ and disabling WC for MMIO memory via the PPro/PII MTRR facility
+ provided in Linux 2.2 (#2480, 2503, David Wragg).
+2271. Xaw and xedit updates/fixes (#2479, Paulo Cesar Pereira de Andrade).
+2270. Add some more PCI data (#2478, Andrew Aitchison, #2489, 2495,
+ Itai Nahshon).
+2269. Fix a bug in the KIO8-U encoding in fontenc.c (#2477,
+ Juliusz Chroboczek).
+2268. Fix most of the warnings that show up when building on Digital Unix 4.0D,
+ with the DEC C compiler.
+2267. Fix for Millennium II hardware cursor-related loss of sync problem
+ that shows up with some revs of the 3026 ramdac (Trey Boudreau).
+2266. Update the setting of the option registers in G-type RAMDAC
+ Matrox cards and add "no_ddc" flag (Dirk Hohndel, Michael
+ Brown).
+
+XFree86 3.9Pb (20 February 1999)
+2265. Allow YaccCmd to be overridden in host.def (#2474-2476,
+ Christopher Sekiya).
+2264. Implement null overscans in VGA, minor fixups to VGA generic
+ default mode, re-add #ifndef's in VGA generic driver erroneously
+ deleted in 3.9No (#2473, Marc LaFrance).
+2263. More MULTIBUFFER extension fixes (#2471, Marc LaFrance).
+2262. Add support for the Matrox G200 SDRAM cards; G100 SGRAM still
+ doesn't work (Dirk Hohndel).
+2261. Support Linux PowerPC. Add Linux 2.2 PCI config space code
+ (#2470, Gerd Knorr).
+2260. Remove gcc warnings in the clients and lib/FS (#2469, Matthieu Herrb).
+2259. Updates to the PCI database (Dirk Hohndel, David Monro).
+
+XFree86 3.9Pa (14 February 1999)
+2258. Use /dev/io to enable I/O access on FreeBSD instead of KDENABIO.
+2257. Correct some typos/grammatical problems with the DESIGN doc (Ivan Bach).
+2256. Fix a crash when PciAccInfo isn't initialized (#2468, Alan Hourihane).
+2255. Add SiS530 detection to the SiS driver. Clock programming,
+ acceleration and hw cursor are not implemented, yet (Dirk Hohndel).
+2254. Fix some bugs related to hardware clipping of spans. XAA
+ WideLine speedups when hardware clipping is available (#2467
+ Mark Vojkovich).
+2253. Permedia2 clipping fixes, fix WritePixmap for non-GXcopy rasters
+ (#2466, Alan Hourihane).
+2252. Add -scanpci option and a scanpci module to the server. Add tons
+ of PCI2.1 subsystem ids to identify specifc cards; the PCI data
+ base needs more work (Dirk Hohndel).
+2251. Remove obsolete xf86[GS]etDefaultColorVisualClass() and fix some
+ small typos and comments; make type of BIOS, Memory and I/O
+ bases consistent (#2460,2465 Marc LaFrance).
+2250. Add ScanlineCPUToScreen for TX/MX and older Permedia chipsets
+ for when PCI retries are not enabled (#2459,2461,2462,2463
+ Alan Hourihane).
+2249. Add 24/8 overlay support for 3Dlabs chipsets and switch to MMIO
+ for vga access (#2459, Alan Hourihane).
+2248. Add 24/8 overlay support to IBM526 and IBM640 ramdacs, fix IBM640 hw
+ cursor (#2458, Alan Hourihane).
+2247. Fix depth 24 support in TGA driver (#2456, Tim Rowley).
+
+XFree86 3.9P (7 February 1999)
+2246. Some TGA driver speedups and cleanups (#2454, Matt Grossman).
+2245. Fix a lock_display() prototype problem in Xlibint.h that shows up
+ when building with -DXTHREADS.
+2244. Allow the driver to override XAA's assignment of Screen functions which
+ access the framebuffer (#2453, Mark Vojkovich).
+2243. Fix mga overlay problems related to the software cursor and disable
+ overlays for the G100 since it doesn't support planemasks (#2452,
+ Mark Vojkovich).
+2242. Rectangle outline performance improvements for the shadow framebuffer
+ (2451, Mark Vojkovich).
+2241. Update the ati driver code to include changes in 3.3.3.1. The driver
+ is not buildable yet (#2450, Marc La France).
+2240. Add support for VT switching to the 8+16 layer (#2449, Mark Vojkovich).
+2239. Export xf86NewSerialNumber() (#2448, Mark Vojkovich).
+2238. Fix XAA pixmap cache in 24bpp when ImageWrites are not available and
+ 32bpp pixmaps are used (#2447, Mark Vojkovich).
+2237. Improve performance for zero width arcs at 24bpp in the mga driver
+ (#2446, Mark Vojkovich).
+2236. Optimise 24->32bpp transfers (#2445, Mark Vojkovich).
+2235. Xterm patch #92 (#2444, Thomas Dickey).
+2234. Fix some compiler warnings in libfont (#2443, Marc La France).
+2233. Make building the Speedo and Type1 font code optional (#2443,
+ Marc La France).
+2232. Add DDC2 and Xv support for Permedia 2 to the glint driver (#2442,
+ Michael Schimek).
+2231. Update the glint driver's clipping for the new XAA clip support
+ (#2440, Alan Hourihane).
+2230. Add support for the ELSA Gloria-XXL with Glint Gamma chip (#2440, 2441,
+ Alan Hourihane).
+2229. Fix some ANSI vs non-ANSI prototype mixing in the Speedo code.
+2228. Fix a bug setting the framebuffer pixmap format for depth 4 in
+ xf86SetDepthBpp().
+2227. Fix some misuse of the VGA "Palette" enable/disable functions in the
+ vgahw code, and clarify what they do. This fixes some display artefacts
+ that were showing up when writing to the colourmap.
+
+XFree86 3.9Nz (1 February 1999)
+2226. Add an 8+16bpp dual framebuffer layer (#2425, Mark Vojkovich).
+2225. Add "ShadowFB" to the mga driver for experimenting with the shadowfb
+ layer (#2439, Mark Vojkovich).
+2224. Some cleanups/fixes for Solaris 7 (#2437, David Holland).
+2223. Ansify (and remove gcc warnings from) the following clients: appres,
+ bdftopcf, beforelight, bitmap and editres (#2436, Matthieu Herrb).
+2222. Eliminate cpp-related warnings about the "unix" symbol on NetBSD-current
+ (#2434, Matthieu Herrb).
+2221. Fix a bug in Xaw's StripChart widget that shows up with xload
+ (#2433, Matthieu Herrb).
+2220. Some initial code for supporting other SiS cards in the SiS driver
+ (#2420, Juanjo Santamarta).
+2219. Allow static Xvfb to compile (#2432, Marc La France).
+2218. Fix ddc and chips Imakefiles (#2432, Marc La France,
+ #2435, Matthieu Herrb).
+2217. Remove redundant BitsPerPixel macro definitions (#2432, Marc La France).
+2216. Remove some redundant rules from Xpm's Imakefile (#2432, Marc La France).
+2215. Fix some compiler warnings (#2432, Marc La France).
+2214. Allow the deprecated MultiBuffer extension to compile (#2432,
+ Marc La France).
+2213. Fix problems building with XInput disabled (#2432, Marc La France).
+2212. Fix 'make clean' to remove lndir and revpath (#2432, Marc La France).
+2211. Add a new "shadowfb" layer that maintains a virtual framebuffer in
+ system memory and tells the driver what parts of the videoram
+ framebuffer need updating. This allows the use of write-only videoram
+ framebuffers (#2431, 2438, Mark Vojkovich).
+2210. Fix some compilation problems on Alpha platforms caused by some
+ inlines in complier.h being declared as extern instead of static
+ (2430, Matt Grossman).
+2209. Remove the inconsistencies with numeric chipset tokens in the s3virge
+ driver (#2428, Kevin Brosius).
+2208. Move the mga DDC code into the PreInit function, add I2C support
+ (disabled and not working so far), and allow the driver to continue
+ without DDC support if the DDC module is missing (#2427,
+ Andrew Aitchison).
+2207. Fix a problem with xsm not acknowledging the SaveYourself message it
+ sends clients with a SaveComplete message (#2426, Robert Bihlmeyer).
+2206. Update the mga driver to use the new XAA clipping (#2424,
+ Mark Vojkovich).
+2205. Some enhancements to XAA's HW clipping handling, allowing clipping
+ to be used for more than just lines (#2423, Mark Vojkovich).
+2204. Fix a problem with the previous cfb screen pixmap access fix (#2242,
+ Mark Vojkovich).
+2203. Fix SiS 24bpp support (#2421, Alan Hourihane).
+2202. Fix SiS HW cursor, max clock and 16bpp support (#2418, Alan Hourihane).
+2201. Update the ramdac module's HW cursor support to handle hardware that
+ requires nibble swapping (#2417, 2419, Alan Hourihane).
+2200. Make the fact that the XAA TE font rendering assembly code is disabled
+ by default more obvious (#2416, David Bateman).
+2199. Fix VT switches in 8+32 mode (#2415, Mark Vojkovich).
+2198. Add common encoding support for the Speedo, Type1 and FreeType
+ font backends (#2385, Juliusz Chroboczek).
+2197. Update lib/font/FreeType to xfsft-1.0.3 (#2385, Juliusz Chroboczek).
+2196. X-TT updates for our loader (X-TT team and Nozomi Ytow).
+2195. Import X-TrueType 1.2pre-19990125 (X-TT team).
+
+XFree86 3.9Ny (26 January 1999)
+2194. Some improvements to the XAA TE font rendering assembly code (note
+ that this assembly code is disabled by default) (#2413, David Bateman).
+2193. Fix some places in cfb that were accessing the screen pixmap directly
+ from the private (#2412, Mark Vojkovich).
+2192. Fix a FreeType build problem on 64-bit platforms (#2411, Alan Hourihane).
+2191. Fix a cfb24 build problem that shows up with egcs (#2410,
+ Alan Hourihane).
+2190. Add DPMS, DDC1 and HW cursor support to the SiS driver, and fix panning
+ in the SiS driver (#2409, Alan Hourihane).
+2189. Put copyright notices from the pandix/panmi code into the merged
+ dix/mi versions (#2408, Alan Hourihane).
+2188. Update drivers to use the 24/32 conversion layer, and to default to
+ a 24bpp framebuffer format when supported.
+2187. Make some refinements to the way the depth 24 pixmap format is set.
+2186. Replace the ModuleInit function with a ModuleData data object. This
+ allows the loader to get the version and entry points from a module
+ without first executing module code.
+2185. Unify the abiclass and abivendor fields of XF86ModuleVersionInfo,
+ and add a moduleclass field.
+2184. Add a SaveRestoreImage field to the ScrnInfoRec to allow drivers to
+ supply an alternative to the default.
+
+XFree86 3.9Nx (24 January 1999)
+2183. Prevent LoadSubModule() from passing absolute module paths and from
+ providing its own module search path.
+2182. Import FreeType 1.2. This includes the FreeType library specific parts
+ of #2385 from Juliusz Chroboczek.
+2181. Add a root-only -modulepath command line option to the X server.
+2180. Fix the VT switch screen restore bug introduced a few versions ago
+ (#2406, Mark Vojkovich).
+2179. ND version of the SiS driver, currently only for the 6326 chip (#2404,
+ 2405, 2407, Alan Hourihane).
+2178. xterm patch #91 (#2402, Thomas Dickey).
+2177. Add 32/24 support to the MGA driver (#2401, Mark Vojkovich).
+2176. Add 32bpp->24bpp conversion acceleration to XAA (#2400, Mark Vojkovich).
+2175. Add partial acceleration support to the TGA driver (#2399, 2403,
+ Matt Grossman).
+2174. Fix an 8+32 layer bug introduced in 3.9Nw (#2398, Mark Vojkovich).
+2173. Add a 32/24 conversion layer. Pixmaps are still 24bpp internally,
+ but the interfaces visible to clients are all 32bpp (#2397,
+ Mark Vojkovich).
+2172. Fix trident driver panning at 24bpp (#2395, Alan Hourihane).
+2171. Add DDC1 and DDC2 (the latter not working yet) to the trident driver
+ (#2395, Alan Hourihane).
+2170. Add MCLK override to the trident driver (#2395, Alan Hourihane).
+2169. Enable pixel multiplexing to the trident drive for high resolution
+ 8bpp modes (#2395, Alan Hourihane).
+2168. Add clipping for the Trident 9682 and 9685 and Mono8x8 and CPUToScreen
+ support for the 9685 (#2395, Alan Hourihane).
+2167. Add offscreen pixmap support for the Trident Image series (#2395,
+ Alan Hourihane).
+2166. Fix some cfb24 problems that showed up after the previous changes
+ (#2396, Nozomi Ytow).
+2165. Update the C&T HW cursor defaults to only disable them by default when
+ necessary (#2394, David Bateman).
+2164. Add some sanity checking for the subdirs argument to LoadSubModule, etc.
+2163. Fix a bug in the verbose Mode handling in the parser that can result
+ in an infinite loop when the "Mode" keyword is used incorrectly in
+ a config file.
+2162. Add a global default module path to the loader, and a function that
+ the common layer can call to set it.
+2161. LoadModule was ignoring the subdir list argument (Nozomi Ytow).
+2160. Add printing of subsystem ids to scanpci (Dirk Hohndel).
+
+XFree86 3.9Nw (17 January 1999)
+2159. Add functions for finding the pixmap format and pixmap bpp for a
+ given depth, and fix a crash in xf86ValidateModes() caused by recent
+ changes in this area.
+2158. Add an extra argument to LoadSubModule (and LoadModule) to allow the
+ caller to optionally specify version and/or ABI requirements that
+ the loaded module must meet for the load to complete successfully.
+2158. Add support to the loader for vendor-defined ABI classes. These classes
+ are specified as a string. The main use is for third party modules that
+ themselves load sub-modules (like X-TT).
+2157. Fix the MGA driver's handling of the "MGA_SDRAM" option. SDRAM cards
+ are still not auto-detected though (#2391, Mark Vojkovich).
+2156. Add a screen->screen colour expansion bug workaround to the MGA driver,
+ and enable the faster linear expansions instead of the planar ones
+ (#2390, Mark Vojkovich).
+2155. Fix some depth/bpp issues in the SHM code (#2389, Mark Vojkovich).
+2154. Export some missing symbols for Alpha platforms (#2388, Alan Hourihane).
+2153. Fix a bug in determing the card type in the TGA driver (#2387,
+ Alan Hourihane).
+2152. Fix a problem in ramdac/BT.c (#2386, Alan Hourihane).
+
+XFree86 3.9Nv (15 January 1999)
+2151. Fix cfb24 problems that show up with xtest (#2384, Nozomi Ytow).
+2150. Fix 64 pixel rounding of display width in the C&T driver (#2383,
+ David Bateman).
+2149. Add an UnloadSubModule() function that can unload individual sub-modules
+ without unloading sibilings.
+2148. Remove a lot of unnecessary casts of x*alloc().
+2147. Add a pciGetBaseSize() funtion to the PCI code.
+2146. Make our PCI code aware of the following 2.1 type 0 header fields:
+ Cardbus CIS pointer and subsystem ids.
+2145. Remove the KEEP_BPP code, and fix problems with some drivers referencing
+ the unused pixmapBPP ScrnInfoRec field.
+
+XFree86 3.9Nu (13 January 1999)
+2144. Fix a bug in PANORAMIX_FREE(), which was referencing just freed data.
+2143. Merge the pandix/panmi code into dix and mi, and enable building
+ the Xinerama (panoramiX) extension by default (#2377-2381,
+ Alan Hourihane).
+2142. Rework the handling of the depth/bpp/fbbpp options. The -bpp flag and
+ related config file keywords are no longer used. New flags and options
+ have been added to specify the server-wide depth 24 pixmap format.
+ A "standard" set of pixmap formats is always advertised, so drivers
+ using these don't need to worry about explicitly adding them.
+2141. Fix some sun_path overflows in xtrans.
+2140. Some panoramix fixups (#2376, Alan Hourihane).
+2139. Don't allow arbitrarily long display number strings to be passed on
+ to xtrans by _X11TransConnectDisplay().
+2138. Update the parser and xf86Config.c to allow Options to be specified in
+ the config file's ServerLayout section. Options in the ServerLayout
+ section can override those in the ServerFlags section.
+2137. Update the parser and xf86Config.c to allow "Inactive" devices
+ to be specified in the config file's ServerLayout section.
+2136. Import xpm version 3.4k.
+
+XFree86 3.9Nt (11 January 1999)
+2135. Fix 8+32 rendering bugs (#2374, Mark Vojkovich).
+2134. Update vgaHWddc1SetSpeed() to select the 25 MHz clock (#2373,
+ Alan Hourihane).
+2133. Add support for a shared font library (#2364, Takuya SHIOZAKI).
+2132. Add ProfiledDepLibraryTarget, DebuggedDepLibraryTarget and
+ SharedDepLibraryTarget rules to imake (#2364, Takuya SHIOZAKI).
+2131. Fix a typo in xf86Init.c (#2372, Nozomi Ytow).
+2130. Xaw and xedit updates (#2371, Paulo Cesar Pereira de Andrade).
+2129. Move the DDC call to before the mode initialisation in the mga driver
+ (#2367, Alan Hourihane).
+2128. Fix a problem with the xkb dvorak layout (#2362, Tabman)
+2127. Fix an xsm crash (NULL dereference) when a client sets an SM property
+ list to a length of zero (#2361, Robert Bihlmeyer).
+2126. Untested support for the Trident 939A/DVD (#2359, 2360, Alan Hourihane).
+
+XFree86 3.9Ns (3 January 1999)
+2125. Allow backing store to be controlled with a per-screen config file
+ option (#2357, Mark Vojkovich).
+2124. Fix XAA so that the offscreen pixmaps are compatible with backing store
+ (#2354, Mark Vojkovich).
+2123. Fix a bug in XAA's stipple to 8x8 pattern reduction code (#2352,
+ Mark Vojkovich).
+2122. 8+32 overlay support for XAA (#2352, 2356, Mark Vojkovich).
+2121. Add TGUI9440 and Cyber9320 support to the trident driver (#2348,
+ Alan Hourihane).
+2120. Fix a typo in xkbcomp/symbols/sun/Imakefile (#2337, Matthieu Herrb).
+2119. Mga driver updates for the new 8+32 overlay support (#2332, 2353,
+ Mark Vojkovich).
+2118. New 8+32 overlay support (#2331, 2351, 2358, Mark Vojkovich).
+2117. Fix a bug in the xterm man page (#2333, Thomas Dickey).
+2116. Remove the -fno-strength-reduce option for OpenBSD and NetBSD (#2328,
+ Matthieu Herrb).
+2115. Import regex for systems that don't have a Posix regex.
+2114. Add a LoaderListDir() function that can be used to list the available
+ modules.
+2113. Modify LoadModule and LoadSubmodule to accept optional subdir and
+ pattern lists, and use regular expressions for the module matching
+ instead of prefix/suffix lists.
+2112. Add a "revpath" utility to xc/config/util to help in dealing with
+ imake's use of relative paths. If this proves to be useful, it could
+ be used more widely in imake's rules.
+2111. Install some classes of modules into subdirectories of the "modules"
+ directory. The imake module install rules have been updated
+ accordingly.
+
+XFree86 3.9Nr (20 December 1998)
+2110. Add support for the wscons console driver for NetBSD-current (#2326,
+ Matthieu Herrb).
+2109. Remove cfbPuntCopyPlane from cfb (#2325, Mark Vojkovich).
+2108. Fix a build problem related to Xarch.h on NetBSD (#2322, Isao Ohishi).
+2107. Fix an XAA bug tha can result in a zero height when rendering TE text
+ (#2321, Mark Vojkovich).
+2106. Fix an optimization bug in the new XAA rect and span code (#2319,
+ Mark Vojkovich).
+2105. Accelerate CopyPlane on offscreen pixmaps (#2318, Mark Vojkovich).
+2104. Fix a 4bpp problem with the C&T driver and the new colourmap code
+ (#2317, David Bateman).
+2103. Enable XAA offscreen pixmaps in the C&T driver (#2317, David Bateman).
+2102. ImageRead functions for some C&T HiQV chipsets (disabled) (#2317,
+ David Bateman).
+2101. MMIO access to the registers for PCI C&T 69000 (#2317, David Bateman).
+2100. Cleanup code in mipushpxl.c (#2313, Thomas Mueller).
+2099. Fix MX/TX clipping bugs in the glint driver (#2312, Alan Hourihane).
+2098. xterm patch #90 (#2311, Thomas Dickey).
+2097. Export missing symbols for panoramiX (#2310, Alan Hourihane).
+2096. Initialise a number of Xlib/Xt data structures, correct a minor linker
+ bug in OS/2 (#2026, Holger Veit).
+2095. Fix some realloc() usages (#2019, Matthieu Herrb).
+2094. Support for arc4random() in xdm/genauth.c (#2019, Michael Shalayeff).
+2093. Update mkfontdir to create an appropriate fonts.dir file when no
+ fonts are found rather than doing nothing.
+2092. Replace void main() -> int main() for ANSI conformance (#2019,
+ Matthieu Herrb).
+2091. Only allow the X server -nolock option when the real uid is root.
+2090. Some sanity checks on DISPLAY name (#2168, Kevin Vajk).
+2089. Fix an Xnest crash with too many visuals (#2019, Matthieu Herrb).
+2088. Swedish sun keyboard support in Xsun and xkb (#2019, Magnus Holmberg).
+2087. A quick attempt at neutralising a stack-buffer overflow problem in
+ the Xprt server.
+2086. LP64 compiler warning fixes from the NetBSD xsrc tree (#2019,
+ Ross Harvey).
+2085. Don't install lndir on OpenBSD (#2019, Matthieu Herrb).
+2084. Teach imake how to automatically determine the NetBSD architecture
+ (#2180, Jason Thorpe).
+2083. Add local font directory (Dirk Hohndel).
+2082. LynxOS OS version detection for imake (#2039, Thomas Mueller).
+2081. Resync OpenBSD.cf (#2019, Matthieu Herrb).
+2080. Fix security problem by creating /tmp/.X11-unix with sticky bit (#2168,
+ Kevin Vajk, David Dawes, Dirk Hohndel).
+2079. Make LinkVarDirectory handle DESTDIR (#2019, Matthieu Herrb).
+2078. Resync NetBSD.cf.
+2077. Some doc and nroff-related updates to the build system.
+2076. Update tk/tcl definitions in FreeBSD.cf and add support for building
+ a.out compatibility libraries on FreeBSD/ELF systems.
+2075. Create host.def with sane defaults when none exists and when a cut-down
+ source tree is detected.
+2074. Resync with 3.3.3 (items 2075-2096 above).
+2073. Fix an xset segfault (#2320, Itai Nahshon).
+
+XFree86 3.9Nq (13 December 1998)
+2072. Change the modversion field in the XF86ModuleVersionInfo struct into
+ separate major, minor and patchlevel fields.
+2071. Initial DG/ux support (#2299, Takis Psarogiannakopoulos).
+2070. DDC1 support for TVP3026 based Matrox cards (#2309, Andrew Aitchison).
+2069. More rewrites of the way spans and rects are handles in XAA so that
+ it never has to allocate any memory, thereby eliminating potential
+ stack overflow problems (#2308, Mark Vojkovich).
+2068. MGA driver-provided FillCacheBltRects replacement, optimised for fastblt
+ (#2307, Mark Vojkovich).
+2067. Choose MGA planar vs linear screen to screen colour expansion at runtime
+ rather than at compile time (#2307, Mark Vojkovich).
+2066. Fix a build problem related to Xarch.h on OpenBSD (#2306,
+ Matthieu Herrb).
+2065. Fix a typo in FreeBSD.cf that affects adding the runtime library
+ search patch for 2.2.x (#2305, Keisuke Inoue).
+2064. Some enhanced XKB files for French-Canadian keyboards (#2204,
+ Eric Moreau).
+2063. Fix an incorrect realloc in xmodmap (#2303, Alexander V. Lukyanov).
+2062. Fix depth 30 for the glint driver (#2297, Alan Hourihane).
+2061. Resync pandix and panmi, and fix some panoramix build problems
+ (#2296, Alan Hourihane).
+2060. Enable offscreen pixmaps for the glint driver (#2295, Alan Hourihane).
+2059. Fix PC98 XKB (#2292, Hirofumi Nishizuka and #2300, Tetsuo Tsukamoto).
+2058. Fix some unresolved symbols (#2293, Michael Rohleder).
+
+XFree86 3.9Np (6 December 1998)
+2057. Some xedit updates (#2291, Paulo Cesar Pereira de Andrade).
+2056. Updates to the Xaw text code (#2291, Paulo Cesar Pereira de Andrade).
+2055. XAA doc updates (#2289, Mark Vojkovich).
+2054. Replace linear screen to screen colour expansions with planar ones
+ in the MGA driver because there seems to be a hardware problem with
+ the linear ones (#2288, Mark Vojkovich).
+2053. Enable offscreen pixmaps for the MGA driver (#2288, Mark Vojkovich).
+2052. Some misc XAA updates (#2287, Mark Vojkovich).
+2051. A non-trival rewrite of the way fills are done in XAA (#2287,
+ Mark Vojkovich).
+2050. Add a LINEAR_FRAMEBUFFER flag to XAA so that the pixmap cache can
+ be loaded without requiring a driver-supplied ImageWrite function
+ (#2287, Mark Vojkovich).
+2049. Add fully accelerated offscreen pixmaps support to XAA (#2287,
+ Mark Vojkovich).
+2048. Add a RemoveAreaCallback for the offscreen memory manager. Areas
+ for which this is supplied are considered lower priority than ones
+ that don't, and can be booted out when something of higher priority
+ needs the space (#2286, Mark Vojkovich).
+2047. Remove the ScreenPtr passed to the offscreen memory manager's resize
+ function since it is already available from the FbAreaPtr (#2286,
+ Mark Vojkovich).
+2046. Change xf86SaveRestoreImage() so that it doesn't create a new
+ screen pixmap but modifies the old one (#2285, Mark Vojkovich).
+2045. Add support to mi for pixmaps with non-zero origins (#2284,
+ Mark Vojkovich).
+2044. Fix some Alpha compilation problems introduced in 3.9No (#2283,
+ Alan Hourihane).
+2043. Fix an Xlib problem with _XimLookupMBText() when using KOI8-R
+ (#2282, Alexander Kabaev).
+2042. Fix the pattern source address mask for the C&T HiQV chips, which
+ was causing 8x8 pattern problems when using more than 2MB of video
+ memory (#2281, Peter Wainwright).
+2041. Update the TGA and Trident drivers for the ramdac/cmap changes (#2277,
+ Alan Hourihane).
+2040. Change the Permedia2 to use a direct LoadPalette rather than the
+ ramdac module because of 16bpp difficulty with the TVP3026 (#2277,
+ Alan Hourihane).
+2039. Remove the old cmap code from the ramdac module and use the new
+ cmap layer instead (#2277, Alan Hourihane).
+2038. Fix os.h and misc.h so that system headers don't get included when
+ building modules.
+2037. Make the X server read an Xauthority file using the real user id
+ to avoid problems when it is located on an NFS-mounted filesystem.
+ (as suggested by #2276, MIHIRA Sanpei Yoshiro).
+2036. Xdm patch to allow the "Willing to manage" test displayed in the chooser
+ window to be generated from a program run on the target host. This
+ allows information like number of users, load average, etc to be
+ displayed (like CDE does) (#2275, Dick Snippe).
+2035. Fix a core dump problem in xauth when interrupted while attempting
+ to lock the auth file. Also fix a potential problem with calling
+ printf() from within a signal handler (#2274, BSDI/Jeff Polk).
+2034. Add DDC2 probing for Cirrus 5446/5480 and Laguna chipsets (#2273,
+ Itai Nahshon).
+2033. Fix some possible memory corruption and some minor bugs in the new DDC
+ code (#2271, 2272, Itai Nahshon).
+2032. Offscreen memory manager and colormap layer doc updates (#2270, 2290,
+ Mark Vojkovich).
+2031. Some glint clipping fixes (#2269, Alan Hourihane).
+2030. New XInput code, including new drivers for the SpaceOrb and Magellan
+ (#2243, Metro Link).
+2029. Fix mga YDstOrg start address adjustment after VT switching.
+2028. Fix cfb24 bitblt for non-trivial planemasks (Peter Wainwright).
+2027. Fix bad headers included when compiling cup.c for extmod module.
+2026. Fix a malloc/xfree mismatch in xtrans LocalInitTransports().
+2025. Add some documentation for DDC (#2259, Egbert Eich).
+2024. Fix a problem with recent VT switch changes.
+
+XFree86 3.9No (29 November 1998)
+2023. Fix the depth vs bpp mixup in miCreateScreenResources().
+2022. Resync the s3virge driver with most of the updates contained in 3.3.3.
+ This includes GX2 and MX+ support and the set_mclk and set_lcdclk
+ options (#2267, Kevin Brosius).
+2021. Update the cirrus, chips and tseng drivers to use the new colourmap
+ layer (via vgaHWHandleColormaps).
+2020. Add support for automatically adjusting the overscan colour index to
+ the new colourmap layer.
+2019. Disable backing store by default, and provide a "+bs" option to enable
+ it from the command line. This may be done in a better way later.
+2018. Remove the per-depth cfb private indices added in 3.9Nn (#2265,
+ Mark Vojkovich).
+2017. Build cfb with -DSINLGEDEPTH because we don't need the per-depth
+ cfb Screen privates.
+2016. Fix problems with the allocation of the cfbScreenPrivateIndex
+ parameters.
+2015. Remove the offscreen memory manager functions out of the ScrnInfoRec
+ (#2266, Mark Vojkovich).
+2014. Update the s3virge driver to use the new colormap layer, which fixes
+ the VT switch colormap problem (#2264, Kevin Brosius).
+2013. Disable s3virge trapezoid fills since they don't match cfb (#2264,
+ Kevin Brosius).
+2012. Add an ImageWrite function for the s3virge driver, so the pixmap
+ cache support now works (#2264, Kevin Brosius).
+2011. Turn off PCI_RETRY by default in the glint driver, and various other
+ driver updates (#2263, Alan Hourihane).
+2010. Fix a glint driver bug in WritePixmap for TX/MX chipsets (#2263,
+ Alan Hourihane).
+2009. Update the Alpha unaligned access inlines in compiler.h, based on
+ similar code in the Linux kernel (#2240, Matti Aarnio).
+2008. Fix a typo in the C&T driver (#2262, Nozomi Ytow).
+2007. Enable building libraries and clients for for sparclinux (#2261,
+ Christopher Sekiya).
+2006. Define _XOPEN_SOURCE for Linux (#2261, Christopher Sekiya).
+2005. Add the vga copy plane expansion patch to the vgafb code (#2021,
+ Jens Owen).
+2004. -
+2003. Fix a bug in xaaStipple.c which can cause a blitter lockup.
+2002. Fix a C&T bug that causes memory corruption when not in linear mode
+ (#2260, Egbert Eich).
+2001. Only disable C&T transparency blits for HiQV chips below 65550, and
+ fix the display pitch when acceleration is enabled (#2260,
+ David Bateman).
+2000. Conditionally enable ScreenToScreenColorExpandFills for C&T HiQV
+ chips (#2259, 2260, Nozomi Ytow, Egbert Eich).
+1999. Reduce the timeout period for C&T blitter lockups and reset the reset-bit
+ after blitter timeouts (#2260, Egbert Eich).
+1998. Add DDC1/2 support for the C&T driver (not tested) (#2260, Egbert Eich).
+1997. Add a DDC module with DDC1 and DDC2 support for EDID version 1.x,
+ and untested VDIF support (#2259, 2260, Egbert Eich).
+1996. Fix a problem switching from VT back to X when displayPitch
+ != displayWidth (#2260, Egbert Eich).
+1995. Some colormap layer optimisations (#2258, Mark Vojkovich).
+1994. Add some missing micmap symbols to the loader's export list (#2257,
+ Alan Hourihane).
+
+XFree86 3.9Nn (22 November 1998)
+1993. Set the valid gamma range as macros rather than having it hard coded
+ in various places.
+1992. Always refer to and store the gamma values as those of the monitor,
+ not of the correction. This means that the values stored in the
+ ScrnInfoRec are now the same as those entered in the config file and
+ on the command line.
+1991. Fix the colormap layer's handling of static colormaps (#2255,
+ Mark Vojkovich).
+1990. Add XAA acceleration for pixmap->window N deep planar copies (#2254,
+ Mark Vojkovich).
+1989. Add an xf86ChangeGamma() function to the colormap layer (#2253,
+ Mark Vojkovich).
+1988. Have NameCompare() check for NULL pointers (#2252, Rik Faith).
+1987. Port Mark Vojkovich's accelerated line code form Permedia 2 to TX
+ and Permedia 1 chips (#2249, Alan Hourihane).
+1986. Fix mono 8x8 pattern problem for Permedia 1 (#2249, Alan Hourihane).
+1985. Fix glint crash in CloseScreen, and set rgbBits to 8 by default
+ (#2249, Alan Hourihane).
+1984. Fix glint CRTC setting alignment when using 24bpp (#2249,
+ Alan Hourihane).
+1983. Give all cfb private indices unique names so that cfb's for multiple
+ depths can be loaded on the same screen (#2248, 2250, 2251,
+ Mark Vojkovich).
+1982. xterm patch #89, including the completion of double-sized character
+ support (#2247, Thomas Dickey).
+1981. Fix an MGA dashed line clipping bug (#2246, Mark Vojkovich).
+1980. S3virge driver updates, including som acceleration, reinstatement of
+ config options and chip ID changes (#2245, Kevin Brosius).
+1979. Fix some RAC-related problems with the glint driver (#2244,
+ Alan Hourihane).
+1978. Fix some 64-bit problems in some unused driver code (for reference)
+ (#2242, Matti Aarnio).
+1977. Fix a 64-bit alignment problem in cfb8line.c (#2242, Matti Aarnio).
+1976. Fix a typo in Pclose() (#2242, Matti Aarnio).
+1975. Update some Linux-related Imake.cf settings (#2242, Matti Aarnio).
+1974. -
+1973. Cirrus 546x memory interleaving (#2235, Corin Anderson).
+1972. XAA and HW cursor support for the Cirrus 546x series (#2235,
+ Corin Anderson).
+1971. Fix a cirrus 546x clock setting problem that was introduced in 3.9Nm
+ and add a few more predefined dot clocks (#2234, #2235, Corin Anderson).
+1970. Move the generic one-installed-colormap colormap handling functions
+ into micmap.c, remove the use of STATIC_COLOR, update other fb
+ layers to use the micmap functions where appropriate and ensure
+ that they initialise InstallColormap, UninstallColormap, StoreColors
+ and ListInstalledColormaps in their ScreenInit functions. Also move
+ the global InstalledMaps array into micmap.c.
+
+XFree86 3.9Nm (15 November 1998)
+1969. libXv fix (#2233, Michael Schimek).
+1968. Add support for building clients on NetBSD/vax 1.3H (#2231,
+ Chris Sekiya).
+1967. Add an alternate init function for the framebuffer manager. The new
+ one takes a region rather than a box which allows disconnected regions
+ to be managed (#2230, Mark Vojkovich).
+1966. XAA pixmap cache fix (#2229, Mark Vojkovich).
+1965. Add support to XAA for filled rects via ImageWrites (#2227,
+ Mark Vojkovich).
+1964. Preliminary "XAnti" extension for antialiasing (#2224, Mark Vojkovich).
+1963. Fix glint driver coordinates when offscreen (negative) when using
+ colour expansion and the NEGATIVE_X stuff (#2221, Alan Hourihane).
+1962. Add PCI IDs for S3 Trio3D and Savage chips to scanpci and xf86PciInfo.h
+ (#2220, Harald Koenig).
+1961. Add support to XAA for the caching of planar colour expansion data,
+ including an example of how to use it in the mga driver (#2215,
+ Mark Vojkovich).
+1960. Xaw and xedit updates (#2205, Paulo Cesar Pereira de Andrade).
+1959. Provide code to initialise cirrus memory config registers on non-primary
+ cards using config file options (#2202, Itai Nahshon).
+1958. Initial code for Cirrus Laguna I2C/DDC support (#2202, Itai Nahshon).
+1957. Fix some cirrus initialisation errors and MCLK calculation (#2202,
+ Itai Nahshon).
+1956. Synch the cir.h and lg.h files (#2202, Itai Nahshon).
+1955. For newer Cirrus Alpine chips, replace most I/O operations to calls
+ to the vgahw I/O routines, and configure them for MMIO when available
+ (#2202, Itai Nahshon).
+1954. Fix mga G100/200 planemask problem (#2198, Mark Vojkovich).
+1953. Update the mga driver to use the new colourmap layer (#2198,
+ Mark Vojkovich).
+1952. A new colourmap layer (#2197, Mark Vojkovich).
+1951. Redo the lbx colourmap fix in a multihead friendly way (#2196,
+ Mark Vojkovich).
+1950. Make the resource access updates to the glint driver to get it working
+ again (#2177, Alan Hourihane).
+1949. Fix Cirrus 546x big screen modes, 32bpp modes (#2175, Corin Anderson).
+1948. Support for the Cirrus 5464 (5462 remains untested) (#2175,
+ Corin Anderson).
+1947. Fix xf86ValidateModes() to make the maxHeight parameter optional
+ as documented (#2174, Corin Anderson).
+1946. Acceleration for the trident 3DImage/Cyber9388/Cyber9397 chipsets,
+ and accel updates for other trident chips (#2161, Alan Hourihane).
+1945. Implement I2C layer for the trident driver (#2161, Alan Hourihane).
+1944. Add TGUI96xx hardware cursor support (#2161, Alan Hourihane).
+1943. Add some xkb entries for 105 key international PC keyboards (#2157,
+ Matthieu Herrb).
+1942. Enable mode switching for the ViRGE driver (#2156, Kevin Brosius,
+ 2200, Joe Moss).
+1941. Add depths 15,16,24 to the preliminary ViRGE driver (#2156,
+ Kevin Brosius).
+1940. Replace __syscall() with syscall() in Linux/Alpha PCI code (#2211,
+ Matti Aarnio).
+
+XFree86 3.9Nl (1 November 1998)
+1939. xterm patch #88 (#2152, Thomas Dickey).
+1938. Fix some build problems that show up on SunOS 4.1.4.
+1937. Allow the driver to give XAA the definition of a full planemask,
+ with a reasonable default set when it doesn't (#2150, Mark Vojkovich).
+1936. XAA optimisation: when fgPixel == bgPixel draw opaque stipples as
+ solid rects (#2150, Mark Vojkovich).
+1935. Preliminary S3 ViRGE driver conversion (#2148, Kevin Brosius).
+1934. Fix a bug in the LBX extension's colourmap code (#2143, Mark Vojkovich).
+1933. Add base address size and type fields to PciVideoRec (#2141,
+ Egbert Eich).
+1932. Change the PCIInfo entries for NeoMagic chips (#2141, Egbert Eich).
+1931. Some C&T driver updates (#2141, Egbert Eich).
+1930. Add support for the Cirrus 5465 (and 5464, 5462 -- untested)
+ (#2140, Corin Anderson).
+1929. Make the vgahw module a little easier to use by setting its own
+ defaults where appropriate.
+
+XFree86 3.9Nk (25 October 1998)
+1928. Some XAA GC validation bug fixes and optimisations. This includes
+ wrapping pixmap rendering to determine when pixmap cache invalidation
+ is required (#2126, Mark Vojkovich).
+1927. Backout the dix fb,bg planemask manipulation added in a previous version
+ (#2125, Mark Vojkovich).
+1926. Fix an MGA fastblt bug (#2124, Mark Vojkovich).
+1925. Accelerate zero width arcs on MGA (only use for rops other than
+ GXcopy and when PCI retries are enabled) (#2124, Mark Vojkovich).
+1924. Restore default-promotion to the Xdmcp library (#2103, Thomas Dickey).
+1923. Prototype/ansification cleanup for Xserver/XIE, xfs, fontlib, mkfontdir,
+ and fix some bugs found along the way (#2103, Thomas Dickey).
+1922. Set HasPoll to YES for Linux with glibc2 (#2095, Kars de Jong).
+1921. Fix some MGA modeline problems and change the G200 MCLK to 143MHz
+ (#2088, Radislaw Kapitan).
+1920. Move xedit from the contrib tree to the main tree.
+1919. Xaw and xedit updates (see the changelog in the Xaw directory for
+ details) (#2083, Paulo Cesar Pereira de Andrade).
+1918. Add support for BSD 4.4 style long file names in ar archives to
+ the loader (#2066, Matthieu Herrb).
+1917. Some GNU/Hurd config/build updates (#2057, UCHIYAMA Yasushi).
+1916. Do a soft reset for secondary MGA cards prior to probing for the
+ video memory size (#2052, Radislaw Kapitan).
+1915. sigset_t isn't an integer type on NetBSD (and some other OSs) so
+ don't try to print it in xdm (#2048, Matthieu Herrb).
+1914. NetBSD's preprocessor emits a warning when it sees '#ifdef unix',
+ which makes imake noisy (#2048, Matthieu Herrb).
+1913. xterm patches 85, 86, 87 (see xterm.log.html for details) (#2043, 2056,
+ 2097, Thomas Dickey).
+1912. Change "fcd8859-15" to "iso8859-15".
+1911. Some updates to the "dacG" mga reset code, and enable it by default
+ since it helps initialising an inactive secondary G200 (#2032,
+ Radoslaw Kapitan).
+
+XFree86 3.9Nj (11 October 1998)
+1910. Fix the 8+24 overlay's CopyWindow wrapper so that it works properly
+ with "NoAccel" or without hardware planemasks (#2041, Mark Vojkovich).
+1909. Reenable planemasks for SDRAM G200s and disable for all G100 (#2040,
+ Mark Vojkovich).
+1908. Add mga overlay support for the TVP3026 (#2040, Mark Vojkovich).
+1907. Ansifiy and remove most warnings from the Xdmcp library and xdm
+ (#2038, Thomas Dickey).
+1906. xterm patch 84 (see xterm.log.html for details) (#2036,
+ Thomas Dickey, Bjorn Helgaas).
+1905. Enhancements for xedit (#2028, 2033, Paulo Cesar Pereira de Andrade).
+1904. Patch to make editres work properly (#2028,
+ Paulo Cesar Pereira de Andrade).
+1903. Xaw updates (see the changelog in the Xaw directory for details)
+ (#2028, 2033, Paulo Cesar Pereira de Andrade).
+
+XFree86 3.9Ni (6 October 1998)
+1902. Fix miCreateDefColormap() for depth 1.
+1901. Update the "extmod" module of the new extensions.
+1900. Fix some font-related problems introduced by the R6.4 merge.
+1899. Update the cirrus driver for the recent i2c module changes (#2025,
+ Itai Nahshon).
+1898. Initial XAA acceleration for the cirrus driver (#2025, Itai Nahshon).
+1897. Add some option code to do a soft reset when restoring the video state
+ for the "dacG" part of the MGA driver (#2012, Uli Walther).
+1896. Add some TTF encoding files (#2013-2016, Juliusz Chroboczek).
+1895. Resync the FreeType server interface with Xfsft-1.0.2, including
+ code to read encodings from plain text files (#2013-2016,
+ Juliusz Chroboczek).
+1894. Add an "8plus24" option to the MGA driver that turns on overlays when
+ in 32bpp mode. Support is there only for the 1064 and SGRAM G100/G200
+ chips so far (#2024, Mark Vojkovich).
+1893. Fix an MGA dashed line bug (#2024, Mark Vojkovich).
+1892. Add an "mga_sdram" option that turns off block mode and disables
+ planemasks (#2024, Mark Vojkovich).
+1891. Add SGRAM and NonTEText optimisations to the MGA driver (#2024,
+ Mark Vojkovich).
+1890. Add XYPixmap support to XAA (#2023, Mark Vojkovich).
+1889. Preliminary support for depth 8 + 24 mode. Depth 8 currently uses
+ 32bpp pixmaps. Support is included for destructive and non-destructive
+ overlays and driver-chosen transparency key (#2022, Mark Vojkovich).
+1888. Update imake for cpp changes with egcs-1.1 and gcc-2.8.1 (#2017,
+ David Wragg).
+1887. Fix XvQueryAdaptors() when more than one adaptor is present, and
+ export xf86XVScreenInit() to drivers (#2018, Michael Schimek).
+1886. Updates/improvements to the I2C module (#2008, 2018, Michael Schimek).
+1885. Don't include standard system headers when building XIE as a module.
+1884. Cleanup Xlibint.h, which significantly reduces the level of compiler
+ warnings, and also cleanup XIE's error.h (#2007, Thomas Dickey).
+1883. Add support for built-in driver modes (#2006, Egbert Eich).
+1882. Ansify and remove gcc warnings for imake, makedepend, lndir, makestrs,
+ makekeys and mkg3states) (#2005, Matthieu Herrb).
+1881. Introduce a "generic" PCI device (pseudo vendor/devids) for use with
+ the generic vga driver (#1994, Egbert Eich).
+1880. Fix some bugs in the C&T driver (#1994, Egbert Eich).
+1879. Fix an XAA bug with CPU_TRANSFER_PAD_QWORD handling (#1994, Egbert Eich).
+1878. Sanity fix: if all devices of a screen are of type none assume
+ resource type NONE in xf86AddControlledResource() even if specified
+ otherwise (#1994, Egbert Eich).
+1877. Added more support to the resource code for mono devices (for
+ consistency) (#1994, Egbert Eich).
+1876. Add RAC wrappers to the sprite functions (#1994, Egbert Eich).
+1875. Reset xf86Resetting in xf86Init.c (#1994, Egbert Eich).
+
+XFree86 3.9Nh (5 October 1998)
+1874. Temporary workaround to avoid static server build problem introduced
+ in 3.9Ng.
+1873. Import and merge in X11R6.4 and its first three public patches.
+
+XFree86 3.9Ng (27 September 1998)
+1872. Rewrite the XAA NonTE text code, fixing the handling of overlapping
+ characters (#2002, Mark Vojkovich).
+1871. Fix an typo causing a CapNotLast line bug in XAA (#2002, Mark Vojkovich).
+1870. Some updates to the FreeBSD/ELF support, including auto-detection
+ of the binary format.
+1869. Update the Type1 and Speedo fonts.scale files to take advantage
+ of the recent ISO 8859-2 encoding updates (#1995, Juliusz Chroboczek).
+1868. Update drivers to use miCreateDefColormap instead of calling
+ the ones in the fb-specific code, update mfbCreateDefColormap
+ to call the mi version, and remove the xf4bpp version.
+1867. ANSI-related cleanups for the C&T driver, and make use of the
+ LoaderRefSymobols() code to eliminate loader warnings (#1993,
+ David Bateman).
+1866. Fix pixmap cache sizing for C&T DSTN systems (#1993, David Bateman).
+1865. Fix a typo that affected the memory probing for C&T 65550 sysems
+ with 2MB of memory (#1993, David Bateman).
+1864. Let the C&T driver accept '-depth 15' (#1993, David Bateman).
+1863. Reintroduce DirectColor visual support for depth >8 for the
+ Millennium I (#1992, Andrew Aitchison).
+1862. Fixes and cleanups for Linux/Alpha build problems (#1989, 2000,
+ Andrew P. Lentvorski).
+1861. Make some changes to the vgahw MMIO handling for Alpha platforms.
+1860. Cleanup and simply some of the mga driver/dac/clock code (#1991,
+ Radislaw Kapitan).
+1859. Enable mga TVP3026 interlaced cursor (#1991, Radislaw Kapitan).
+1858. Enable the Pseudo-DMA window for the G100 in the mga driver (#1991,
+ Radislaw Kapitan).
+1857. Change some tables in the mga driver to 'const' to help make sure
+ that they are not abused, and fix the code that was abusing them
+ (#1991, Radislaw Kapitan).
+1856. Fix some G200 problems introduced in 3.9Nf (#1988, 1991, Mark Vojkovich,
+ Radislaw Kapitan).
+1855. Fix static server problems caused by item 1851 (based on #1984, 1985,
+ Takaaki Nomura).
+1854. xman improvements for NetBSD/OpenBSD (#1983, Matthieu Herrb,
+ Ross Harvey).
+1853. C&T update for SuperProbe (#1981, Taketoshi Sano).
+
+XFree86 3.9Nf (20 September 1998)
+1852. Update the sample config file to be consistent with the updated format.
+1851. Add a mechanism to allow modules to tell the loader which symbols from
+ from other modules it references, and which of those are essential.
+ This makes it possible to eliminate unnecessary warnings about
+ unresolved symbols, and to trigger a fatal error where appropriate.
+1850. More attempts towards a working G100 server (#1982, Dirk Hohndel).
+1849. Update the mga driver for use with the resource management code.
+1848. Fix some bugs and typos in the resource management code.
+1847. Rework the vgahw module, abstracting the register accesses and split up
+ the save/restore parts.
+1846. Add '\n' to some of the messages in PEXExtensionInit().
+1845. Fix the mga driver's handling of the option register in mga_dac3026.c.
+1844. Trap reentrancy to the FatalError() function and call abort() when
+ this happens.
+1843. Avoid a bug in SunPro C 4.2 (ix86) that shows up when building libPEX5
+ (#1980, David Holland).
+1842. Fix a typo in Xserver/Imakefile (#1979, David Holland).
+1841. Have the Xv DIX layer trap zero size src and/or dest, returning
+ BadValue (#1978, Mark Vojkovich).
+1840. Parially accelerated lines for the Permedia 2 (#1977, Mark Vojkovich).
+1839. Some formatting, bug fix updates to the C&T driver, and reintroduce
+ the screen blanking during initialisation for the C&T drivers
+ (#1976, David Bateman).
+1838. Update the C&T driver to use the RAC wrapper (#1976, Egbert Eich).
+1837. Add a Resource Access Control (RAC) wrapper module which allows
+ colourmap, cursor and fb access to be wrapped when necessary in
+ cases where memory and/or I/O resources are being shared (#1976,
+ Egbert Eich).
+1836. Back out item 1823 (mi bank enable) (#1976, Ebgert Eich).
+
+XFree86 3.9Ne (13 September 1998)
+1835. Remove the OS dependence in the formatting of docs in xfree86/doc/sgml
+ (which removes the need for the BuildAllDocs setting).
+1834. Update mi and dix cursor handling to avoid displaying empty cursors
+ (#1972, Mark Vojkovich).
+1833. Update Xv docs (#1971, Mark Vojkovich).
+1832. Add return values to the Get/Put driver functions in the Xv DDX
+ (#1970, Mark Vojkovich).
+1831. Some preliminary reorganisation of the MGA driver (#1969,
+ Mark Vojkovich).
+1830. Update CURSOR.NOTES (#1968, Mark Vojkovich).
+1829. MGA driver should recognise 15 as a valid depth (#1967,
+ Andrew Aitchison).
+1828. Experimental G100 support for the MGA driver, and fix clock PLL
+ programming (#1966, Radislaw Kapitan).
+1827. Add support for the 9660, 9680 and 9682 chips to the new trident driver,
+ and add some initial acceleration (#1963, Alan Hourihane).
+1826. Fix some planemask test problems at 16bpp with the C&T driver (#1962,
+ Taketoshi Sano).
+1825. Fix a problem with QWORD_PAD in XAA (#1961, David Bateman).
+1824. Fix SuperProbe's detection of some C&T HiQV chipsets (#1960,
+ Taketoshi Sano).
+1823. Update the mi banking code to enable resources as required (#1959,
+ Egbert Eich).
+1822. Update the generic VGA driver to use the new resource control code
+ (#1959, Egbert Eich).
+1821. Restructure the C&T driver, and fix the following:
+ - CRT half-screen blanking
+ - 1bpp mode
+ - several SEGV problems
+ - the long standing LCD blank problem
+ (#1959, Egbert Eich).
+1820. Allow a Device section without a BusID be acceptable for the primary
+ vga device when multiple heads are detected (#1959, Egbert Eich).
+1819. New resource management code, which should provide an improved
+ infrastructure for handling multi-head configuration, particularly
+ where resource sharing is required (#1959, Egbert Eich).
+1818. Fix problems with NonTE ImageText in XAA (#1958, Mark Vojkovich).
+1817. Fix the tseng driver's handling of cases when there is insufficient
+ free memory for acceleration to be used (#1957, Koen Gadeyne).
+1816. Change the RELATIVE_CHECK() macro in xf86Xinput.c to fix a multi-head
+ cursor problem (Chris Bare).
+1815. Update xf86ReadPciBIOS to set the decode enable bit while reading,
+ and update the mga driver to use xf86ReadPciBIOS when appropriate.
+1814. Use mmap for reading the BIOS on more platforms because the
+ lseek/read method doesn't work in many cases when the offset is
+ greater than 2G.
+
+XFree86 3.9Nd (6 September 1998)
+1813. Preliminary port of the trident driver for the ND (the old version
+ has been moved to the olddrivers directory (#1956, Alan Hourihane).
+1812. Document the offscreen memory managers new ResizeArea function
+ (#1955, Mark Vojkovich).
+1810. Allow the FreeType code to be build as an X server font module.
+1809. Add Latin2 support to the Speedo and Type1 font code (#1792,
+ Robert Wilhelm).
+1808. Updates to XFree86 specific parts of FreeType (#1792, 1933,
+ Robert Wilhelm, Juliusz Chroboczek).
+1807. Add the base FreeType 1.1 distribution to /xc/extras/FreeType, and
+ update the build procedure to get the source from there.
+1806. Map the pseudo-DMA transfer window used on newer MGA chips, and use
+ it for solid rects and spans (#1953, Mark Vojkovich).
+1805. Fix C&T HiQV detection (#1952, Taketoshi Sano).
+1804. Add dashed line support to XAA, and update the mga driver to use it
+ (#1951, 1953, 1954, Mark Vojkovich).
+1803. Lots of glint driver updates, including a memclock option to set the
+ mclk, and some more XAA functions for the older Permedia chip (#1950,
+ Alan Hourihane).
+1802. Use POSIX macro S_IS* instead of (((m)&S_IFMT)==S_IF*) and replace
+ "u_long" with "unsigned long" (#1949, UCHIYAMA Yasushi).
+1801. Fix IBM hw cursor pixel ordering (#1948, Alan Hourihane).
+1800. Remove accel/tga and accel/glint directories that are no longer needed
+ (#1947, Alan Hourihane).
+1799. Build support for FreeBSD/ELF (#1946, Doug Rabson, Joachim Kuebart,
+ Ollivier Robert).
+1798. Xaw and Xmu fixes (#1945, Paulo Cesar Pereira de Andrade).
+1797. HW Bresenham line drawing support for Tseng W32p and ET6000
+ (#1944, Koen Gadeyne).
+1796. Fix depth/bpp issues at depth 16 and depth 15 with the IBM support
+ in the ramdac module (#1943, Alan Hourihane).
+1795. Change messages in xf86PruneMonitorModes() so that they appear at the
+ default verbosity level (#1942, Egbert Eich).
+1794. Print out clock ranges or fixed clocks scaled by the mul/div factors
+ (#1942, Egbert Eich).
+1793. MGA G200 support (#1941, Radislaw Kapitan).
+1792. Preliminary I2C module (#1940, Itai Nahshon).
+1791. Add config support for building XFree86 on Linux with DECnet transport
+ (#1939, Eduardo Serrat).
+
+XFree86 3.9Nc (29 August 1998)
+1790. 24bpp (high res display problems) and 32bpp (horizontal stripe) fixes
+ for the mga driver (#1715, 1716, Doug Merritt).
+1789. Take the mga driver's YDstOrg parameter into account when it passed the
+ framebuffer start address to the cfbInitScreen functions. This fixes
+ problems that can show up when using more than 4MB.
+1788. Fix an extraneous pixel drawn for some H/V two point lines with
+ a Millennium I (Mark Vojkovich).
+1787. Make the BuildLinuxDoc* symbols default to YES when HasSgmlFmt is YES
+ (Marc La France).
+1786. Add a resize function to the offscreen memory manager (#1937,
+ Mark Vojkovich).
+1785. Fix C&T 69000 horizontal CRT overflow register settings (#1936,
+ David Bateman).
+1784. Add some missing UnlockDisplay calls to lib/Xv/Xv.c (#1935,
+ Thomas Mueller).
+1783. Fix colourmap save problem (#1935, Thomas Mueller).
+1782. Support for LynxOS 3.0.0 and LynxOS PowerPC fixes (#1935,
+ Thomas Mueller).
+1781. An ND version of the Cirrus driver, currently for 5480 and 5446 chips
+ only. The old driver has been moved to xfree86/olddrivers/cirrus
+ for reference (#1932, 1938, Itai Nahshon).
+1780. Xterm updates:
+ - add configure test to infer if xterm should be installed setuid
+ based on previously installed xterm (reported by Stephen Marley).
+ - integrate/extend patch by Jason Bacon to implement quasi-continuous
+ mouse reporting.
+ - correct control sequences transmitted by function keys F1 to F4
+ when sunFunctionKeys resource is true (it was still using the
+ VT100 control sequences).
+ - modify handling of backarrow key so that the control modifier
+ toggles the backspace/delete interpretation set by the
+ backarrowKey resource.
+ - limit the row and column values used to report mouse position.
+ (#1931, Thomas Dickey).
+1779. Fix clockRanges alloction problem in the tseng driver (#1927,
+ Koen Gadeyne).
+1778. Fix tseng banked accelerated mode, and disable ImageWrite in banked
+ mode if it requires more than 8k (#1927, Koen Gadeyne).
+1777. Some initial ET4000W32p acceleration (#1927, Koen Gadeyne).
+1776. Fix 24 and 32bpp tseng modes for cards with programmable clocks
+ (#1930, Koen Gadeyne).
+1775. Implement the pci_retry and Memclk options for the MGA driver (#1927,
+ Mark Vojkovich).
+1774. Update the mga driver to use MMIO for everything (making use of the
+ MMIO support in the vgahw module), and do its own colourmap handling
+ (#1927, Mark Vojkovich).
+1773. Add a MMIO version of the vgahw code to the vgahw module (#1926, 1928,
+ Mark Vojkovich).
+1772. Small Xv DDX udpate (#1925, Mark Vojkovich).
+1771. Update the C&T driver to use the new ClockMulFactor code (#1924, 1936,
+ David Bateman).
+1770. Add a ROP_NEEDS_SOURCE option to XAA, as needed by the C&T driver
+ (#1924, David Bateman).
+1769. Add support to the tga driver for 24 plane cards (#1923, Tim Rowley).
+1768. Resync the scale[] find_scale[] arrays in the bitmap font code, which
+ got out of sync when gzipped font support was added (#1921 Doug Ridgway).
+1767. Fix incorrect #ifdef in sunKeyMap.c for Danish Type 5 Sun keyboards
+ (#1919, Erik Bertelsen).
+1766. Move HW cursor support from the XAA module to the ramdac module,
+ update drivers for this change, move IBM cursor code from the glint
+ driver to the ramdac module, and intergrate the HW cursor code fir
+ the IBM ramdacs using a new helper function in the ramdac module.
+ (#1918, Alan Hourihane).
+1765. Fix some more compiler.h problems for AXP platforms (#1918,
+ Alan Hourihane).
+
+XFree86 3.9Nb (20 August 1998)
+1764. Fix some memory leaks in Xlib that happen on realloc failures
+ (#1914, ??)
+1763. Optimise the way C&T acceleration is handled by reorganising
+ some of the graphics primitives, including caching foreground and
+ background colours, and moving some operations from the Subsequent
+ primitives to the Setup primitives (#1915, David Bateman).
+1762. Introduce HW cursor for the Permedia2 (but p2 and p2v dont' work
+ yet), fixup pm2v_dac and pm2_dac register naming, and add reset
+ logic to reset the accelerator (but not used yet) (#1912,
+ Alan Hourihane).
+1761. Fix building in xfree86/common when XINPUT is not defined (Egbert Eich).
+1760. Fix problem compiling xf86_IlHack.c on Alpha platforms.
+1759. Add an option "ShowOverscan" to the vgahw module which makes the
+ unblanked area of overscan clearly visible.
+1758. Adjust the builtin mode for the 8bpp generic vga driver to blank as
+ much of the overscan area as possible.
+1757. Adjust the horizontal blank end value in the vgahw module to avoid
+ excessive blanking for most chipsets when running in generic vga mode.
+1756. Tseng driver updates, including:
+ - Add support for chips with a set of discrete clocks instead of a
+ programmable clock.
+ - use the new ClockRanges code to auutomatically select between pixmux
+ and normal modes, and for 24bpp clock scaling.
+ - add a replacement for vgaHWBlankScreen() that doesn't do a
+ sequencer reset.
+ - remove some old, unused code.
+ (#1910, Koen Gadeyne).
+1755. Loader updates required for the updated gdb (#1908, Paul Flinders).
+1754. Add VSTATUS control char support to xterm (#1907, Robert Earl).
+1753. Update the register probing of the chipset for the C&T HiQV chips
+ in SuperProbe and the C&T driver (#1904, David Bateman).
+1752. Add cached screen to screen colour expansion to the C&T driver
+ (1904, David Bateman).
+1751. Add options to XAA to allow acceleration primitives to be disabled
+ individually (#1903, David Bateman).
+1750. Add preliminary solid Bresenham and two point line support for XAA,
+ and code to make use of it for the mga driver (#1900-1902,
+ Mark Vojkovich).
+1749. Introduce Helper functions for ramdac module, Save/Restore/SetBpp,
+ and update the glint and tga drivers to use them (#1899, 1913,
+ Alan Hourihane).
+1748. Move IBM640 code from the glint driver intot he generic ramdac module
+ (#1899, Alan Hourihane).
+1747. Add ClockMulFactor and ClockDivFactor fields to clockRanges to allow
+ for scaling of clocks when doing mode validation (#1898, 1905,
+ Koen Gadeyne, 1906, Itai Nahshon).
+1746. Add recognition of the Voodoo 2 to the PCI list (#1897, Koen Gadeyne).
+1745. Some editres, xedit and xgc updates (#1788, 1842,
+ Paulo Cesar Pereira de Andrade).
+1744. Lots of Xaw/Xmu updates (including ansification of Xaw and Xmu) --
+ see the Changelog in xc/lib/Xaw for further details (#1776, 1788, 1842,
+ Paulo Cesar Pereira de Andrade).
+1743. Support for GNU/Hurd (#1895, UCHIYAMA Yasushi).
+1742. Remove the implicit assumption in some areas that O_RDONLY is 0
+ (#1894, UCHIYAMA Yasushi).
+1741. Merge in Metro Link's version of the 64 bit select fixes for the
+ X server and lbxproxy (#1893, Stuart Anderson).
+1740. Set DlLibrary to be empty for OpenBSD, and remove formatted man pages
+ on 'make clean' for OpenBSD and NetBSD (#1892, Matthieu Herrb).
+
+XFree86 3.9Na (14 August 1998)
+1739. Rework the way the maximum number of server client connections
+ is determined, and experimentally increase MAXCLIENTS to 256.
+1738. Enable mmap support in Xvfb for Linux (#1889, Douglas Ridgway).
+1737. Xv DDX layer for XFree86, and add documentation for it to the DESIGN
+ doc (#1883, 1884, Mark Vojkovich).
+1736. Modify AddScreen() and AllocateScreenPrivateIndex() to initialise new
+ screen devPrivates to zero.
+1735. Ansify the Xv server dix code (#1881, Mark Vojkovich).
+1734. XAA doc update (#1880, Mark Vojkovich).
+1733. Cache the fg, bg and planemask values in the MGA driver and only
+ change them when needed (#1878, Mark Vojkovich).
+1732. Preliminary ImageRead support for the MGA driver (disabled) (#1879,
+ Mark Vojkovich).
+1731. Preliminary ImageRead support (#1878, Mark Vojkovich).
+1730. Use accelerated ImageWrites for PutImage and BackingStore and SaveUnder
+ pixmap restores (#1878, Mark Vojkovich).
+1729. Fix an XAA text rendering bug for rotated text (#1878, Mark Vojkovich).
+1728. Tseng driver updates:
+ - Add DPMS support
+ - Replace some Boolean options with Tristate options
+ - Add ET4000W32p support and the ICS5341 16-bit ramdac support
+ - 1bpp and 4bpp support added (1bpp doesn't work yet)
+ - cleanup mode validation code
+ (#1877, Koen Gadeyne).
+1727. Fix problems using ffs() in the X server on 64bit platforms
+ (specifically Linux/Alpha) (#1876, Raphael Finkel).
+1726. Fix for palette problems with the BT ramdac support in the ramdac
+ module (#1873, Alan Hourihane).
+1725. Export the symbols __remq and __remqu from the loader for Alpha
+ platforms (#1872, Alan Hourihane).
+1724. Fix a 24/32bpp problem with the IBM code in the ramdac module
+ (#1871, Alan Hourihane).
+1723. Change the way the depth/bpp/fbbpp values are selected form the
+ command line and config file to prevent inconsistently mixing values
+ from the two sources (#1868, Alan Hourihane).
+1722. Fix some XAA hw cursor problems:
+ - Apply the HARDWARE_CURSOR_INVERT_MASK flag only after applying
+ HARDWARE_CURSOR_AND_SOURCE_WITH_MASK
+ - Fix the 1-bit interleaving code
+ (#1867, Koen Gadeyne).
+1721. Remove all the (currently unused) colour expansion code from
+ the old branch that replaced some XAA functions. This should no
+ longer be necessary (#1866, Koen Gadeyne).
+1720. Add XAA hw cursor support for the ET6000 (#1866, Koen Gadeyne).
+1719. Fix some problems that showed up with the glint driver when
+ using a P2 and TX500 card together (#1861, Dirk Hohndel).
+1718. Have the glint driver remove all but one mode since the chipset
+ doesn't support panning (#1859, 1870, Alan Hourihane).
+1717. Update the loader to correctly identify dll ELF modules (#1858,
+ Itai Nahshon).
+1716. Fix an infinite loop in the xf86Config code that can happen with a
+ config file error (#1858, Itai Nahshon).
+1715. Resync the TGA driver with changes elsewhere (#1856, 1874,
+ Alan Hourihane).
+1714. Glint driver updates, including:
+ - HW cursor for IBM 526 and 640 ramdacs
+ - Depth 30 support for the IBM 640
+ - GLINT MX (ELSA Gloria XL) support
+ - More acceleration for the TX/MX chipsets
+ - Fixes for Alpha platforms
+ - Major acceleration updates for Permedia, Permedia2, 500TX and MX chips
+ - Permedia 2v cleanups
+ (#1855, 1857, 1860, 1863, 1864, 1865, 1890, Alan Hourihane).
+1713. Add support for depth 30 to xf86SetWeight() (#1854, Alan Hourihane).
+1712. Reinstate the ONLY_LEFT_TO_RIGHT_BITBLT and ONLY_TWO_BITBLT_DIRECTIONS
+ XAA options (#1853, Alan Hourihane).
+1711. Add support for the IBM 640 ramdac to the ramdac module (#1852,
+ Alan Hourihane).
+1710. Add finer grained offscreen memory management for the accelerator
+ to the Tseng driver to allow as many acceleration features to be
+ enabled as can be supported by the available offscreen memory
+ (#1851, Koen Gadeyne).
+1709. Add XAA scanline colour expansion, screen-to-screen colour expansion,
+ 8x8 colour pattern fills, ImageWrite to the Tseng driver (#1851,
+ Koen Gadeyne).
+
+XFree86 3.9N (2 August 1998)
+1708. Fix some XAA problems (#1850, Mark Vojkovich and Koen Gadeyne).
+1707. Rename some of the XAA colour expansion stuff, and update the XAA docs
+ (#1848, 1849, Mark Vojkovich).
+1706. Tseng driver updates (#1847, Koen Gadeyne):
+ Add Mclk support, replace globals in tseng_bank.c with entries
+ in the TsengRec, remove redundant parameter passing, fix a potential
+ bug in the ET6000 memory detection code, implement memory limit
+ checking, fix a bug in the 555/565 handling, cleanup locking/unlocking
+ code.
+1705. Some fine tuning of the way the extension modules are build.
+1704. Merge in the new design branch. A full changelog for the new design
+ branch can be found in the CHANGELOG.ND file.
+1703. Font-related X server buffer overflow fixes (Robin Cutshaw).
+
+XFree86 3.9Ak (11 July 1998)
+1702. xterm patches 81 and 82. Fix Linux/Alpha build problems,
+ utmp handling on Solaris, some terminfo nits, and improve
+ cursor colour (#1794, 1797, Thomas Dickey).
+1701. Fix CloseScreen() related problems (#1793, Marc La France).
+1700. Close some sockets that xdm was leaving open when running new
+ sessions (#1704, Matthieu Herrb).
+1699. Fix usleep problems with static servers on SVR4.
+1698. Fix a problem parsing "ModeLine" entries (#1779, Keldon Jones).
+
+XFree86 3.9Aj (04 July 1998)
+1697. PC98 fix for VT switching, VideoBoard98 update (#1766, Takaaki Nomura).
+1696. xterm patches 79 and 80. Fix for F1-F4 key handling, fg/bg pixel
+ value with -flipPixels, scrollbar color, keypad handling, and
+ various terminfo enhancements (#1758,1762 Thomas Dickey).
+1695. Lots of Xaw work. See xc/lib/Xaw/Changelog for details
+ (#1660, 1673, 1678, 1686, 1701, 1738, 1752, 1755, 1765
+ Paulo Cesar Pereira de Andrade).
+1694. Add the library security fixes (#1722).
+1693. Fix rendering errors in the generic bit expansion code (#1746,
+ Jens Owen).
+1692. Fix problem in Oak clock setting routines (#1744, Kevin Buhr).
+1691. Clean up vga16 (remove unused code, remove vga16's mfb (vga2 is used
+ instead), clean up vga16's external name space). Minor fix to ATI
+ driver. (#1742, Marc LaFrance).
+1690. Fix macro expansion in xf86Config.c (#1730, Jens Maurer).
+1689. On Linux, default the use of special or internal malloc's to NO
+ (instead of forcing it to NO). Allow CloseScreen to free wrapper
+ private storage in most servers. Push out backing store initialisation
+ to the callers of the various <framebuffer>ScreenInit()'s. Change
+ m68k's XF68_FBDev to use backing store low-level functions to
+ save/restore the screen during VT switches. Minor fixup to loader
+ message. (#1719, Marc La France).
+1688. Fixes for 24bpp and 32bpp on Matrox Millenium II. This fixes the
+ horizontal stripe for modes using > 4MB (#1715,1716, Doug Merritt).
+1687. Fix build problems on LynxOS and enable keyboard LEDs on LynxOS 2.5.1
+ (1712, Thomas Mueller).
+
+XFree86 3.9Ai (05 June 1998)
+1686. Add rendition directory. This is not included in the build process, yet
+ (#1707, Marc Langenbach).
+1685. Make glint compile on Alpha. Some xtest fixes for Alpha (#1705,
+ Christian Worley).
+1684. xterm patch 77,78, convert to ANSI C (#1702,1706 Thomas Dickey).
+1683. Fix compile problems under OS/2 (#1693, Holger Veit).
+1682. Fix xmag segfault (#1675, Andy Sloane).
+1681. Fix build problem of the static servers on FreeBSD. Fix build problem
+ on SVR4(incomplete). Update PC98 Card Database(#1691, Isao Ohishi,
+ Takaaki Nomura).
+1680. Minor fix to ATI driver clock code. Fix vga16 for xtest-detected
+ problems. Fix up vga16's pixmap printing when enabled by DEBUG. There's
+ no need for XFree86LOADER specifics in mibitblt.c(#1690, Marc La France).
+1679. Fix hw cursor on CT65555 and fix loader problem (#1688,1689 Nozomi Ytow).
+1678. Fix freeing of names when removing modes (#1685, Matthieu Herrb).
+1677. Enable ImageWrite in 24 bpp for C&T HiQV (#1684,1687 Nozomi Ytow).
+1676. Fix unknown symbol type 1e message in a.out loader (#1683,
+ Matthieu Herrb).
+1675. xterm patches 75 and 76. Fix for print-window function, minor cleanups,
+ lots of fixes from other people (see xterm.log.html) (#1681,1682,
+ Thomas Dickey).
+1674. Make vga16 use backing store functions to save/restore the screen on VT
+ switches. Don't call xf86InvalidatePixmapCache when bpp is 1 or 4
+ (#1680, Marc La France).
+1673. Change PIC code to print names of ALL devices capable of displaying
+ video. Return pointer to the last card instead of the first (#1662,
+ Dejan Ilic).
+1672. Add skeleton driver for Tritech Pyramid 3D (#1661, Dejan Ilic,
+ Mark Vojkovich).
+1671. Check additional pci bus in scanpci (Robin Cutshaw).
+
+XFree86 3.9Ah (28 April 1998)
+1670. Xterm patch 74 fix define conflicts and update print support (#1674,
+ T.E.Dickey).
+1669. Xterm patch 73 added print window facility, terminfo updates,
+ conditional include cleanup, debugging trace enhancements, and
+ HP-UX configure updates (#1672 T.E.Dickey).
+1668. Framebuffer fixes leaving valid GC on exit, fix for opaque types
+ (#1669 Marc Aurele La France).
+1667. Add ELF support for AXP platform (#1666 Stuart Anderson).
+1666. PCI function fixes for AXP platform (#1665 Alan Hourihane).
+1665. SiS updates (#1664 Mike Chapman, Mitani Hiroshi).
+1664. Fix CompressAllFonts define use in X11.tmpl (#1663 Matthieu Herrb).
+1663. Xaw updates including more functions for diaplayLists, fixes
+ for simpleMenuWidget, boxWidget, and panedWidget (#1660 Paulo Cesar
+ Pereira de Andrade).
+1662. Xdm seg fault fix (#1658 Matthieu Herrb).
+1661. Tseng PIXMUX updates (#1656 Krajcsovits Gyorgy).
+1660. Mouse driver loop restructuring and additional packet data
+ checks (#1654, Oyvind Aabling).
+1659. PANIX build fix for PC98 platform (#1653, Satoshi Kimura).
+1658. Sync loss on cursor change fix (#1650, Mark Vojkovich).
+1657. Driver line fix, unresolved symbol fix, remove loading of xaavga256
+ at depths greater than 8, glint 24bpp fix (#1645-1649 Alan Hourihane).
+1656. More XF86Setup patches, P9000 symbol fix, PC98 Imakefile sync (#1644
+ Takaaki Nomura).
+1655. Tseng doc, accel sync with 3.3.2, PIXMUX and misc fixes (#1641,1642
+ Koen Gadeyne).
+1654. ISC fix for usleep and glint probe fix for DELTA (#1639,1640 Michael
+ Rohleder).
+1653. Add FreeType code to lib/font/FreeType, but the build-related
+ things haven't been done yet (David Turner, Robert Wilhelm,
+ Werner Lemberg, Mark Leisher, Juliusz Chroboczek).
+1652. Xterm patch 72 activity notification enhancement (#1659, T.E.Dickey).
+1651. Xterm patch 71 buffer overflow fix (#1651, T.E.Dickey).
+1650. Sync I128 server acceleration with 3.3.2 (Robin Cutshaw).
+
+XFree86 3.9Ag (05 April 1998)
+1649. AGX ScrnInfoRec fix, fix compiler warnings for Xprt and loader,
+ fix vgaCloseScreen problem, add new ScreenRec functions to
+ set/get pixmaps and wrapper functions, VC switch to use
+ low-level backing store functions (#1635, Marc Aurele La France).
+1648. xfree98/XF86Setup sync with 3.3.2 (#1632, Takaaki Nomura).
+1647. xfree86/XF86Setup sync with 3.3.2 (#1629,1634 Kazutaka Yokota).
+1646. Back out the following R6.4-related changes:
+ #1169, 1170, 1342 -- version numbering changes,
+ #1167 -- CUP extension,
+ #1225, 1282, 1341 -- EVI extension,
+ #1171-1178, 1198, 1246, 1305 -- Xinerama extension,
+ #1165 -- Xt Resource Configuration Management.
+1645. XAA fixes for xf86bpp (#1633, Alan Hourihane).
+1644. More 3.3.2 syncs, PC98 sync, usleep problem with FreeBSD,
+ SVR4.0 build problem fixes (#1631, Takaaki Nomura).
+1643. Kensinngton Thinking and Expert Mouse fix (#1630, Kazutaka Yokota).
+1642. S3 968 fix (#1628, Kazutaka Yokota).
+1641. Add DoImageWrite for Permedia2 and partial 24bpp acceleration to
+ the glint server (#1627, Alan Hourihane).
+1640. ISC sync with 3.3.2 (#1625,1626, Michael Rohleder).
+1639. Xterm patch 70 including Imakefile fix for logging, "ich"
+ restoration, cursor color fix, "-vb" arg fix, character-set
+ rework, SS2/SS3 control fix, terminfo updates (#1624, T.E.Dickey).
+1638. Add loader symbol for miSetZeroLineBias (#1623, Mark Vojkovich).
+1637. Fix duplicate symbols in s3 server (#1621, Takaaki Nomura).
+1636. glint cleanup for XAA autoload modules (#1620, Alan Hourihane).
+1635. xf86Config fixes for svga and accel servers, extmod load for all
+ depths (#1618,1619, Alan Hourihane).
+
+XFree86 3.9Af (28 March 1998)
+1634. Add 1024x600 to the identified video modes in the chips server
+ (#1617, Nozomi Ytow).
+1633. Resync xfree98 with xfree86 and resync some PC98 files with 3.3.2
+ (#1616, Takaaki Nomura).
+1632. Fix micro typo in chips.sgml (#1615, David Bateman).
+1631. Define defaults for XF86Config file locations. Have make World remove
+ Makefile.bak files. Resync ScrnInfoRec's for the last time (Hope
+ springs eternal). "Externalise" InstalledMaps in all XFree?? servers.
+ Remove reference to DEFAULT_MODULE_PATH in static servers. Deal with
+ some of the warnings produced by gcc by default. Resync ATI driver with
+ the version found in XFree86 3.3.2. Fix loader bug in dealing with XAA.
+ (#1614, Marc La France).
+1630. Don't abort a static server if the Driver statement in the Device
+ section is missing (#1613, Kazutaka Yokota).
+1629. Fix typo in #1606 and improve printing of mouse related messages
+ (#1613, Kazutaka Yokota).
+1628. Build fixes for static S3 and S3V servers (#1613, Kazutaka Yokota).
+1627. Re-add 8x8 trap fill support in XAA (#1612, Mark Vojkovich).
+1626. Add new text replacements to glint server, add packed data modes, tune
+ fifo handling, fix drawing bugs and others (#1609,1611, Mark Vojkovich,
+ Alan Hourihane).
+1625. Add mouse related 3.3.2 changes to XF86Setup (which still doesn't
+ compile) (#1608,1610, Kazutaka Yokota).
+1624. Update xdpyinfo to reflect mouse code changes (#1607, Kazutaka Yokota).
+1623. Merge missing mouse code from 3.3.2 (#1606, Kazutaka Yokota).
+1622. Resync xterm, add missing patches from 3.3.2 (#1605, Thomas Dickey).
+
+XFree86 3.9Ae (22 March 1998)
+1621. Bring over some of the new mouse code from the 3.3.2 tree.
+1620. Link X11 apps against libxpg4 on FreeBSD to get multibyte locale
+ support.
+1619. SVGA/chips. include support for the new 69000 chipset. Fix up the
+ memory probing for the 65554, 65555 and 68554 chips. Add probing for
+ the 64200, 64300 and 69000 chips to SuperProbe. Fix the memory probing
+ for the 65554, etc in SuperProbe. Some docs updates (#1603,1604,
+ David Bateman).
+1618. Fix Mach32 text restoration (#1601, Marc La France).
+1618. Add Rendition V2x00 to vgaPCI.h (#1598, Marc Langenbach).
+1617. xterm patches. improve test for highlightColor so that xterm does not
+ attempt to use that unless it is different from the foreground and
+ background colors. remove ich and ich1 from xterm and xterm-8bit
+ terminfo descriptions. restore 1-pixel overlap of scrollbar border with
+ left edge of window. add a configure option, --enable-logfile-exec.
+ make the ALLOWLOGFILEEXEC code compile & run, if configured. minor
+ documentation nits. correct the problem in xterm with utmp by removing
+ the reset of setuid/setgid before the main event loop (#1525,1571,1599,
+ Thomas Dickey).
+1616. Change s3/svga from using 8x8 pattern fills to 8x8 color expand fills.
+ Add support for S3's type planar 8x8 pattern fills to XAA. Add support
+ for S3's planar 8x8 fills to the XAA stippled trapezoid stuff
+ (#1594,1595,1596,1597, Mark Vojkovich).
+1615. Ensure the correct message for lines at startup (#1591, Alan Hourihane).
+1614. Fix XAA to allow vertical lines using TwoPointLine (#1590,
+ Alan Hourihane).
+1613. Change the xf86orect.c code to always use a hardware filled rect rather
+ than a software one when drawing vertical lines (#1589, Mark Vojkovich).
+1612. Add MICROSOFT_ZERO_LINE_BIAS flag to xaa to indicate that the hardware
+ uses MicroSoft's line bias rules rather than X's. Fix the end point
+ sematics for two point lines. Add TiledFilled Rects via image write.
+ Fix a problem with the CopyArea wrapper syncing when it shouldn't. Fix
+ twopoint line problems with XAA dashed lines. Make sure we alway check
+ for one rect situations when using XAA polygon code (#1575,1576,1577,
+ 1578,1579,1580,1581, Mark Vojkovich).
+1611. Add new MGA acceleration, including image writes and 8x8 pattern trap
+ fills. Go back to two point lines. Add solid filled span replacement.
+ Make PCI retries off for mga by default (need Option "pci_retry" to turn
+ them on). Make hardware cursor work better in doublescan modes. And
+ turn hw cursor on by default (#1582,1583,1592 Mark Vojkovich).
+1610. Removes assumption that we have a Trapezoid function (#1573,
+ Alan Hourihane).
+1609. Fix ImageWrite code at 15bpp by fixing xaa not to rely on xf86bpp, but
+ use the accel structure (#1572, Alan Hourihane).
+1608. Fix problem building resize on BSDI, update manpages, add log
+ xterm.log.html (#1490, Thomas Dickey).
+1607. Small patch to xterm's 8-bit terminal description (#1481, Thomas Dickey).
+1606. Move framebuffer ModuleInit functions to separate C source files.
+ Another fixup to mono's ScrnInfoRec (#1474. Marc La France).
+1605. Loader updates (#1467, Stuart Anderson).
+1604. Ensure window and GC privates are aligned on a sizeof(long) boundary.
+ Minor bug fix to mfb and afb framebuffers. Reinstate building of Xibm
+ server. Move pRotatedPixmap, pCompositeClip, fExpose, freeCompClip from
+ GC privates to the GC structure proper (in preparation for the banking
+ mi wrapper) (#1442,1443,1444,1445,1588 Marc La France).
+1603. xterm fixes for configuration (#1437, Bjorn Helgaas).
+1602. Lots of SVGA/ATI updates. Enforce architectural limits on panning &
+ scrolling. Duplicate recent XF86_Mach64 changes (Bus detection, Chipset
+ detection adjustments, Support for 16MB linear apertures, maxClock
+ settings). First swipe at supporting adapters whose VGA has been
+ disabled. Save and restore more registers on mode
+ entries/switches/exits. Colour map initialization changes to make use
+ of uninitialized entries more obvious. Bug fix to DSP register
+ calculation. Support 15, 16, 24 and 32bpp on integrated controllers.
+ Remove dependence on TimingTab. Include VGA DAC registers in verbose
+ output. Skip sparse I/O probes when PCI configuration space indicates a
+ device has registered a block I/O base. Virtual X rounding adjustments
+ for packed modes. Documentation updates (#1430, Marc La France).
+1601. Clean up ScrnInfo, make vgaCloseScreen call the framebuffer's
+ CloseScreen() function, determine more pricely whether the virtual
+ resolution fits in video memory, minor optimization of cfb's
+ ImageGlyphBlt entry (#1428,1429, Marc La France).
+1600. Fix typo in mga.h (#1418, Tim Rowley).
+1599. Fix some baserom/_baserom confusion (#1407, Gary Barton/Concurrent).
+1598. More fixes from Metro Link and some updates for clients. Remove
+ all but one copy of sdimple.c (#1405,1406, Craig Groeschel).
+1597. Remove unnecessary byte_reversed arrays (#1400, Craig Groeschel).
+1596. Add missing Xarch.h (#1399, Craig Groeschel).
+1595. Add no-listen keyword to xfs (#1397, Topi Miettinen).
+1594. Build fixes for PC98 static build (#1391,1396 Takaaki Nomura).
+1593. Build fixes to loader directory (#1388, Alan Hourihane).
+1592. Some Link Kit fixes (#1384, David Bateman).
+1591. Add zoom initialization and fix blits on T2R (Robin Cutshaw).
+1590. Add support for several new mice, including Kensington ThinkingMouse,
+ ALPS GlidePoint, Genius NetScroll, Genius NetMouse, Genius NetMouse,
+ ASCII MieMouse, Logitech MouseMan+, Logitech FirstMouse+ (#1380,
+ Kazutaka Yokota).
+
+XFree86 3.9Ad (25 January 1998)
+1596. Fix two buffer overflow problems in the X server.
+1595. Fix some libXt VSW5 failures (#1347, 1359-1363, 1365, Kaleb Keithley,
+ Arthur Barstow).
+1594. Change server's default vendor string and release (#1342,
+ Kaleb Keithley).
+1593. Fix problem entering mode_shifted characters with xdm and XKB
+ (#1340, Kaleb Keithley).
+1592. Bump SunOS 4.x libXext rev (#1339, Kaleb Keithley).
+1591. Pick up PCI multimedia/video devices and display devices of all
+ subclasses (not just VGA) in vgaGetPCIInfo().
+1590. Reinstate Xserver/hw/ibm for reference purposes.
+1589. Cirrus and vga256 driver changes to support the PowerPC machines.
+ (1357, Gary Barton/Concurrent).
+1588. Organize xf86_ansic.h/xf86_libc.h/xf86_OSlib.h, and de-mangle xf86*
+ libc calls. Move Probe routine to the beginning of the ScrnInfoRec to
+ match the vgaVideoChipRec. Make the mach32, mach64, mach8, i128, and
+ ibm8514 servers loadable. Use one global byte_reversed array. When
+ SetCursor is called with a null CursorPtr, turn the cursor off. Fix
+ CapNotLast lines and segments in mach64 and xaa. Copy some code from
+ Metro-X 3 to handle panning at 24 bpp on Mach64. Mask the correct
+ number of pitch bits when updating the CRTC_OFF_PITCH register. Use
+ xf86scanpci instead of vgaPCIInfo. Fix tseng driver DPMS bug. Declare
+ and initialize xf86PixmapIndex. (#1356, Craig Groeschel/Metro Link).
+1587. Add xf86Serial functions (#1355, Chris Bare/Metro Link).
+1586. New config file parser, new functions for accessing xf86Info,
+ handle an XQUEUE race condition, make sure XqueQaddr is initialized
+ (1353, Stuart Anderson/Metro Link)
+1585. Build cleanups and fixes to cursor handling for multi screen layout
+ (#1354, Craig Groeschel/Metro Link).
+1584. Add portable and extensible PCI support framework (#1352,
+ Gary Barton/Concurrent).
+1583. Support PowerMAX_OS on Motorola/Concurrent PowerPC machines
+ (#1351, Gary Barton/Concurrent).
+1582. .cf and Imakefile changes to use PpcArchitecture and PpcSvr4Architecture
+ definitions for consistency (#1350, Gary Barton/Concurrent).
+1581. Fix 9397 detection in Trident driver (#1376, Alan Hourihane).
+1580. Add support for the DacSpeed entry to the Mach64 server (#1375,
+ Kevin Martin).
+1579. Fix 16bpp for the Permedia 2 (#1373, Alan Hourihane).
+1578. Fix DPMS for Trident cards (#1372, Alan Hourihane).
+1577. Add Option "no_pci_retry" to option code and the MGA driver (#1370,1371,
+ Mark Vojkovich).
+1576. Add back CyberCont that was removed from Trident driver in 3.9Ac by
+ mistake (#1369, Alan Hourihane).
+1575. Fix ImageWrite code to not read beyond the end of the source in cases
+ of bad alignment (#1368, Mark Vojkovich).
+1574. xterm updates (#1366,1378 Thomas Dickey) including:
+ - change the terminfo entry so that rs1 does a hard reset
+ - modify treatment of hard reset by the xterm program to reset the saved
+ lines
+ - correct hard reset by also resetting user-defined keys.
+ - change the way highlihting is implemented
+1573. Fix PutImage to work with Rops other than GXcopy (#1364, Alan Hourihane).
+1572. Fix clipping in 16bpp on tgui chipsets, fix 32bpp and add transparency
+ (#1345,1346,1349 Alan Hourihane).
+1571. Some updates to stub driver to reflect current layout (#1343,
+ Dejan Ilic).
+1570. Change xdm config to explicitly specify the VT used on OpenBSD (#1337,
+ Matthieu Herrb).
+1569. Build fix for P9x00 driver (#1336,1344 Takaaki Nomura).
+1568. Resync xaa/Imakefile for PC98 (#1335, Takaaki Nomura).
+
+XFree86 3.9Ac (11 January 1998)
+1567. Fix some VSW5 failures in libXt (#1333, Kaleb Keithley).
+1566. xterm updates (#1332, Thomas Dickey) including:
+ - Add xterm support for blinking text. It doesn't actually cause the
+ text to flash, but text with the blink attribute can be displayed in
+ color, using new resources colorBL and colorBLMode.
+ - Corrected a missing save-cursor in the handling of SGR 1048.
+ - Flush the output of the transparent printing after each line.
+ - Correct the modes that are affected by save/restore cursor.
+ - Corrected placement of one of the XSync calls which had the
+ side-effect of writing on the window border when the xterm was
+ resizing from 132 to 80 columns.
+ - Work around an incompatibility of the XKB definition used in xterm
+ versus that symbol from IRIX 6.2's imake definitions (by adjusting
+ the standalone configure script).
+1565. Add detection of Intel TX chips and Pyramid 3D TR25202 to scanpci
+ (#1330, Dejan Ilic).
+1564. Fix xtest related problems on MGA (related to syncing before reading)
+ (#1329, 1334, Mark Vojkovich).
+1563. Possible fix for Millennium II crashing (#1328, Mark Vojkovich).
+1562. Add more careful checking of $HOME/.xsession in the default xdm
+ Xsession script (#1327, Geoff Wing).
+1561. Fix uninitialised variables in decddx (#1326, Kaleb Keithley).
+1560. Fix a typo in the Xlib docs (#1325, Kaleb Keithley).
+1559. Add 8x8 pattern filled 1 rect polygons to XAA. Also included is
+ an 8x8 pattern filled trapezoid function (#1324, 1331, Mark Vojkovich).
+1558. Add more conservative limits for when XAA uses trapezoid fills rather
+ than spans (#1323, Mark Vojkovich).
+1557. Add transparent 8x8 pattern fills to s3/svga (#1322, Mark Vojkovich).
+1556. Xt (VSW5 failures): Xt11/XtCallConverter - Test Purposes 11, 12, 13
+ (#1321, Kaleb Keithley).
+1555. Xt: XtMakeGeometryRequest doesn't emit error if parent != composite
+ (#1320, Kaleb Keithley).
+1554. S3 (svga) ramdac fixes in IBMRGB52x_Init, TI_3020_3025_Init,
+ NORMAL_PreInit, and ATT_409_498_Probe routines, including fixes for
+ the use of the dacSpeeds array (#1319, Craig Groeschel/Metro Link).
+1553. Fixes for Permedia PM2 support to correct 32bpp, and improve things
+ for 16bpp (#1318, Alan Hourihane).
+1552. P9x00 driver (#1317, Joerg Knura).
+1551. Allow xvidtune to be driven by the keyboard (#1315, via Kaleb Keithley).
+1550. Add missing exported symbols to Win32 DLLs (#1314, Kaleb Keithley).
+1549. Detect an extra Trident Cyber chip (#1313, Alan Hourihane).
+1548. Add timeouts to all Tseng "wait for something" functions (#1312,
+ Koen Gadeyne).
+1547. Tseng driver documentation update (#1311, Koen Gadeyne).
+1546. Update xterm man page, configure script and related things (#1310,
+ Thomas Dickey).
+1545. Add a version number to xterm, and make the -version and -help options
+ used before attempting to open the display (#1310, 1316, Thomas Dickey).
+1544. Implement logic to permit xterm to work with proportional fonts.
+ This is done by rendering the characters on a fixed pitch (#1310,
+ Thomas Dickey).
+1543. Fix missing planemask in XAA function (#1309, Mark Vojkovich).
+1542. Fix XAA syncing inconsistencies (#1308, Mark Vojkovich).
+1541. Allow Trident 9397 and later 3D chipsets to work by not using
+ acceleration (#1307, Alan Hourihane).
+1540. Fixes for older Trident Cyber series (#1307, Arthur Tateshi).
+1539. Fix includes for xfwp (#1306, Craig Groeschel/Metro Link).
+1538. Fix for large pixmaps in XINERAMA extension (#1305, Kaleb Keithley).
+1537. Xlib: XGetICValues fails for {preedit,status}Attributes
+ (#1299, Kaleb Keithley).
+1536. Add locale and xkb files for Lithuanian (#1298, Ricardas Cepas).
+1535. Device updates for scanpci (Robin Cutshaw).
+1534. First cut at cleaning up the parallel make dependencies (Robin Cutshaw).
+
+XFree86 3.9Ab (29 December 1997)
+1533. Reorganize the acceleration code in the tseng driver. Fix tseng XAA init
+ problem (#1303, Koen Gadeyne).
+1532. Add support for changing the MClk from the XF86Config file for
+ W32p cards with ICS5341 RAMDAC and for the ET6000 family (#1302,
+ Koen Gadeyne).
+1531. Add option to build xterm without tek4014 emulation. Add option to
+ build xterm with default TERM value other than "xterm". Apply some
+ minor bugfixes to OS/2 version. Fix configure help message and missing
+ quotes in memmove/bcopy configure test (#1297, Thomas Dickey, Darren
+ Heibert).
+1530. Add support for clock setting of the new trident chips (#1294,
+ Alan Hourihane).
+1529. XAA vertical line speedup (#1293, Alan Hourihane).
+1528. Add panning for Permedia and Permedia 2 (#1292, Alan Hourihane).
+1527. Add a few more messages to tseng driver and clean up the use of
+ the different bytes-per-pixel variables. Add "showcache" option
+ (#1300,1301, Koen Gadeyne).
+1526. Fix XAA pixmap cache bug with 16bpp and RGB=555 or 32bpp (#1295,
+ Walter Gadeyne).
+1525. Fix ImageWrite for Tseng (and re-enable it) (#1296, Koen Gadeyne).
+1524. Fix horizontal lines in Tseng driver (#1291, George Krajcsovits).
+1523. Support MUSIC MU9C4910 RAMDAC in Tseng driver (#1290, Koen Gadeyne).
+1522. Fix bad color in hardware linedraw for Tseng (#1290, Koen Gadeyne).
+
+XFree86 3.9Aa (20 December 1997)
+1521. Fix border colours for Trident server (#1289, Alan Hourihane).
+1520. Major update to Mach64 server. Proper identification of the different
+ chips. Support for 16MB boards. Increased max DAC speed settings for
+ newer chips. Support for AGP RagePro cards. Block write mode for
+ RagePro chips. 1600x1200 mode support for VT and newer chips. Use the
+ auxilliary register aperture on chips that support it. Use 16MB memory
+ aperture on PCI Mach64s with integrated controllers.
+ (#1288, Kevin Martin).
+1519. New code for the glint server. Preliminary support for the Permedia 2
+ hardware cursor. Preliminary support for panning the display with
+ multiple modelines for Permedia/Permedia 2. Fix ELSA Permedia 2 boards.
+ Cleanup of glint_init.c. Fix DGA when using software cursor. Addition
+ of code to not save VGA state if the VGA core is disabled.
+ (#1285,1286,1287, Alan Hourihane).
+1518. Fix the "invalid depth" problem with packed 24 (#1284, Andrew Aitchison).
+1517. Fixes to finish keyboard layout (Johan Myreen).
+
+XFree86 3.9z (14 December 1997)
+1516. Fix loss of sync while panning problem and attempt to fix the occasional
+ crashes of the Millennium II by restricting the MGACountRam function
+ to test the first 8MB, only (#1280, Mark Vojkovich).
+1515. Fix XF86Setup to create a (symbolic) link of /usr/X11R6/bin/X when it
+ doesn't exist (#1279, Matthieu Herrb).
+1514. Fix solid trap/rect fill bugain the mga server for the Millennium II
+ that was hurting performance severely (#1277, Mark Vojkovich).
+1513. Reenable BitBlt accelerations for Millennium II (#1271, Mark Montague).
+1512. Fix mmap memory leak in IGS driver. ARM32/NetBSD specific fix for
+ xf86MapInfoMap (#1265, Katrina Maffey).
+1511. Resync change 1474 for PC98 and fix a reference to usleep on SVR4
+ (#1264, Takaaki Nomura).
+1510. Add BLK opaque color expansion for 2164 and change the mga code to use
+ a lookup table for XFree->mga rop conversions (#1261, Mark Vojkovich).
+1509. Fix XAA hardware cursor support for BT485 ramdacs
+ in the S3/SVGA server (#1260, Mark Vojkovich).
+1508. Fix VT switching hang in FreeBSD (#1259, Joerg Wunsch).
+1507. Enable MMIO / linear FB on Cirrus 7548. Experimental patch for screen
+ expansion (640x480 on 800x600 LCD) which doesn't seem to work, yet
+ (#1258, Achim Oppelt).
+1506. Fix gc validation (#1257,1262 Mark Vojkovich).
+1505. Fix SIGSEGV in xf86setup (Dirk Hohndel).
+1504. Extend XF86Setup to allow selecting the modes and the default color
+ depth (Dirk Hohndel).
+1503. Fix build problem on Solaris 2.6/x86 with gcc 2.7.2.3.
+1502. Fix Solaris 2.x + gcc build problem in xfwp (#1272, Takaaki Nomura).
+1501. Xkb{Get,Set}PerClientControls missing from XKBlib.h (#1283,
+ Kaleb Keithley).
+1500. BSD 4.4 sockets not handled correctly in xfwp/transport.c (#1276, 1281,
+ Kaleb Keithley).
+1499. Local connection doesn't work for lbxproxy on AIX (#1275,
+ Arthur Barstow).
+1498. Get fcntl flags in Xtrans before setting them (#1268, Kaleb Keithley).
+1497. Fix 'Xnest -query' on IBM (#1263, Kaleb Keithley).
+1496. Fix X server core dump after disconnecting from a font server
+ (#1256, Arthur Barstow).
+1495. Xserver:Security Policy parsing code returns bogus value on suceess
+ (#1254, M.S. Ramesh).
+1494. Install app-defaults in /var (#1253, Kaleb Keithley).
+1493. Some xfwp fixes (#1252, Arthur Barstow).
+1492. Fix some Win32 problems (#1251, 1255, Kaleb Keithley).
+1491. DPMS was missing from pandix main.c (#1246, Kaleb Keithley).
+1490. Solaris 2.x LOCALCONN updates (#1269 Kaleb Keithley).
+1489. DPMS updates (#1229, Kaleb Keithley).
+1488. KeyPress event doesn't use XKB state when GrabsUseXKBStateMask is set
+ (#1227, Kaleb Keithley).
+1487. Add EVI (Extended Visual Information) server extension (#1225, 1282,
+ Kaleb Keithley).
+1486. Fix some Xmb man pages and specs docs (#1220, 1270, Kaleb Keithley).
+1485. Plugin fixes (#1219, 1221, 1224, 1226, 1247, 1273, Kaleb Keithley).
+
+XFree86 3.9y (6 December 1997)
+1484. Fix some initialization problems in the xkb programs (#1233,
+ Andreas Schwab).
+1483. Fix loader to resolve symbols properly in Xext (#1250, Robin Cutshaw).
+1482. Fix loader on Solaris and enable it for SVR4 (#1248,1249, Robin Cutshaw).
+1481. Fix some problems with T2R support (#1245, Robin Cutshaw).
+1480. Fix rfhcnt calculation and VT swithcing in mga driver. Allow DirectColor
+ on Millennium II cards (#1241,1242,1243,1244, Mark Montague).
+1479. Potential fix for s3/svga cursor support for Ti ramdacs. Remove a
+ mistake from the s3/svga acceleration code (#1237, Mark Vojkovich).
+1478. Switch the MGA driver over to XAA Hardware Cursor. Only support for
+ TVP3026 is included (#1236,1239, Mark Vojkovich).
+1477. Add delayed syncing abd faster arcs ub 8bpp to mga driver (#1235,
+ Mark Vojkovich).
+1476. Fix another SIGSEGV in xterm, where wrong assumptions about the type of
+ widget passed to an action handler were made (#1234, Thomas Dickey,
+ Arfst Ludwig).
+1475. Fix the wraparound problem with the Mach32 cursor and add another seven
+ pixels to the possible width of the cursor (#1232, Bryan Feir).
+1474. Remove vga256/vgainit (#1231, Mark La France).
+1473. Fix a namespace collision in Mach8 server (#1230, Mark La France).
+1472. Fix SIGSEGV when some internal xterm buffers overflowed (#1228,
+ Thomas Dickey).
+1471. Fix HiQV version of ImageWrite in the C&T driver (#1222,1223,
+ David Bateman).
+1470. Yet another attempt to fix packing order for dashed lines (#1217,
+ Mark Vojkovich).
+1469. Build fixes for Xext (#1216,1238 Takaaki Nomura).
+1468. Remove all references to the W32 server (but not the actual server code)
+ (#1215, Koen Gadeyne).
+1467. Complete initial support for Permedia 2 and add some acceleration for it
+ (Alan Hourihane).
+1466. Some more code for supporting the IBM RGB640 in the glint server
+ (Dirk Hohndel).
+
+XFree86 3.9x (23 November 1997)
+1466. Updates for SCO (#1211, 1212, J. Kean Johnston).
+1465. Fix netscape plugin core dump when transfer is interrupted (#1209,
+ Kaleb Keithley).
+1464. Registry updates (#1205, Kaleb Keithley).
+1463. Preliminary imake support for different Linux distributions (#1203,
+ Kaleb Keithley).
+1462. Enable JIS, SJIS, EUC, etc. on X_LOCALE machines (#1201, Kaleb Keithley).
+1461. Linux and HP imake cf updated (#1200, Kaleb Keithley).
+1460. Updates to XINERAMA (#1198, Kaleb Keithley).
+1459. Make the DPMS extension a more "standard" item (ie, its library code
+ is now in libXext) (#1197, Kaleb Keithley).
+1458. xload doesn't need libutil and libkvm on NetBSD and OpenBSD (#1189,
+ Scott Reynolds).
+1457. Separate module-specific and non-module-specific Xserver/Xext code
+ (#1149, Holger Veit).
+1456. OS/2 updates (don't use WIN32 file handling) (#1149, Holger Veit).
+1455. Clean up XAA calls in glint server (#1210, Alan Hourihane).
+1454. Adapt memory detection in I128 server to T2R (#1208, Robin Cutshaw).
+1453. Add DGA to glint server and get xvidtune to work with it (#1207,
+ Alan Hourihane).
+1452. Cleanups and preliminary support for the Trident 3DImage975 and
+ 3DImage985 (#1206, Alan Hourihane).
+1451. Add stipple acceleration to the tseng driver (#1192, Koen Gadeyne,
+ Mark Vojkovich).
+1450. Add better text acceleration to the tseng driver (#1190, Koen Gadeyne).
+1449. Fix HiQV image writes (#1191, David Bateman).
+1448. Remove the need for the VideoMemSave buffers in glint server (#1196,
+ Alan Hourihane).
+1447. Handle bogus base address in vgaPCIInfo for s3/svga (#1194, Mark
+ Vojkovich).
+1446. Fix XF86Setup to work with Tcl/Tk 8.0 and improve support for future
+ mouse protocols in XF86Setup (#1158,1159, Joe Moss).
+1445. Fix DGASetViewPort problem in S3 server (#1157, Harald Koenig).
+1444. Add -U flag to imake (#1156, Chris Demetriou).
+1443. First cut for I128 Revolution support (#1155, Robin Cutshaw).
+1442. Fix packing order for dashed lines (#1154, 1188, Alan Hourihane, Mark
+ Vojkovich).
+1441. Fix joycal.c to work with Linux 2.1.x (#1153, Robin Cutshaw).
+1440. Fix ImageString xtest results. Call miImageGlyphBlt instead of
+ cfbImageGlyphBlt8 (#1152, Alan Hourihane).
+1439. Add overlay support for the IBM RGB526 (disabled)(#1151, Mark Vojkovich).
+1438. Fix setting maxclock in s3/svga (#1151, Mark Vojkovich).
+1437. Print module version in plain text (#1150, Holger Veit).
+1436. Correct change 1390 (#1148, Takaaki Nomura).
+
+XFree86 3.9w (16 November 1997)
+1435. Remove some compiler warnings.
+1434. Fix lcPublic state_depend_encoding test in Xlib (#1181, Kaleb Keithley).
+1433. Fix buffer overrun in lib/X11/omGeneric.c (#1180, Kaleb Keithley).
+1432. Add new XINERAMA extension (#1171-1178, Kaleb Keithley).
+1431. Update man pages for X11R6.4 (#1169, 1170, Kaleb Keithley).
+1430. Add new CUP (Colormap Utilization) extension code (#1167,
+ Kaleb Keithley).
+1429. Add resource configuration management code to libXt (#1165,
+ Arthur Barstow).
+1428. Xkb{Get,Set}PerClientControls not implemented in Xlib (#1164,
+ Kaleb Keithley).
+1427. Fix bug in lbxproxy's detection of synonymous server names (#1161,
+ Arthur Barstow).
+1426. Various xfwp fixes and cleanups (#1103-1107, 1109, 1110, 1140-1144,
+ 1160, 1162, 1163, 1166, 1168, 1179, Arthur Barstow).
+1426. Fix select prototype for HP/UX 10.x (#1102, Kaleb Keithley).
+1425. Fix a 64-bit nit in MakeRootTile (#1080, Kaleb Keithley).
+1424. Export weak symbols in elistgen.sun (#1078, Kaleb Keithley).
+1423. Put back the reference to the xfree68 directory in
+ xkbcomp/symbols/Imakefile.
+1422. Add xkb support for some older HP keyboards (#1077, Kaleb Keithley).
+1421. Fix some typos in the iso8859-1 compose file (#1076,
+ Niels Kristian Bech Jensen).
+1420. Xlib UTF support uses longs, but should use wchar_t (#1068,
+ Kaleb Keithley).
+1419. HP/UX 10 config update (#1066, 1079, Kaleb Keithley).
+1418. Update lbxproxy to use the Xtrans library (#1060, Arthur Barstow).
+1417. Deal with gratuitous Xserver colormap flashing (#1059, Kaleb Keithley).
+1416. LBX-related updates to the Xserver (#1049, Kaleb Keithley).
+1415. Remove Xibm server from the source (#1048, Kaleb Keithley).
+1414. Remove xmh from the core tree (#1043, Kaleb Keithley). Note, only
+ the entry for it in xc/programs/Imakefile is removed here so far, and
+ we may want to move it into our supported contrib.
+1413. Update sgi.cf (#1042, Kaleb Keithley).
+1412. Fix inconsistency with the naming of general man pages and the sections
+ they are installed in (#1040, Kaleb Keithley).
+1411. Fix xrx plug-in build problem on Solaris 2.6 (#1039, Kaleb Keithley).
+1410. Fix Xserver crash when using lbxproxy and xdm-auth-1 (#1038,
+ Kaleb Keithley).
+1409. Fix an infinite loop in CreateVisual() in lbxproxy (#1034,
+ Arthur Barstow).
+1408. locale.alias updates (#1032, Kaleb Keithley).
+1407. Misc very minor TOG updates (#1031, Kaleb Keithley).
+1406. Fix for MaxClients not being defined correctly in the Xserver
+ (#1030, Sekhar Makkapati).
+1405. Fix an Xserver problem related to FreeCursor() in
+ DisposeWindowOptional() (#1026, Kaleb Keithley).
+1404. Add setusercontext support to xdm for FreeBSD (#1025, Kaleb Keithley).
+1403. Use named pipes for local connections with Solaris 2.x (#1011, 1067
+ Kaleb Keithley).
+1402. Fix lost support for non-standard encodings in Xlib (#1005,
+ Kaleb Keithley).
+1401. Fix Xserver crash when colormap of copyfromparent given (#990,
+ Sekhar Makkapati).
+1400. Make lbxproxy try another port when bind fails (#988, Arthur Barstow).
+1399. Remove the Xserver '-config' flag for OSs that don't have tight command
+ line length restrictions (#987, Kaleb Keithley).
+1398. Remove some vararg cruft from the Appgroup library (#986,
+ Kaleb Keithley).
+1397. Fix SecurityLookupIDByClass in Xserver (#1186, Sekhar Makkapati).
+1396. Fix for sample site.def (#1184, Sekhar Makkapati).
+1395. Fix references to LINE_MAX in Xos_r.h (#1182, Sekhar Makkapati).
+
+XFree86 3.9v (9 November 1997)
+1394. Add unrolled text code for the 9 pixel width fonts (#1147,
+ Mark Vojkovich).
+1393. Fix planemask/transparency problems in tseng driver (#1146,
+ Harald Nordgard Hansen).
+1392. Add Fire GL 3000 option for glint server (#1139, Bart van den Broek).
+1391. Remove unnecessary ARM32 code (#1138, Katrina Maffey).
+1390. Fix a crash in XCopyPlane after server reset (#1137, Katrina Maffey).
+1389. Add support for PS/2 Intellimouse (#1136, Tim Goodwin).
+1388. Add a PolyArc replacement for s3/svga in 8bpp when using a linear
+ framebuffer. Add a stippled rect speedup for destinations less than 32
+ pixels wide (#1135, Mark Vojkovich).
+1387. Add read speed benchmark and support for >8bpp modes to dga test
+ program (#1134, Koen Gadeyne).
+1386. Fix dashed lines for vga256 (#1133, Alan Hourihane).
+1385. Enable trapezoid fill on mga (#1132, Radek Kapitan).
+1384. Fix ImageWriteFlags in trident driver (#1131, Alan Hourihane).
+1383. Fix wide line problem in the static server (#1129, Brian Wainscott).
+1382. Fix syncing problems with the scanline routines in XAA (#1128,
+ Alan Hourihane).
+1381. Restructure glint server to call the AccelInit function in a sane
+ manner (#1127, Alan Hourihane).
+1380. Add planemask support for the tridents and add hardware clipping for
+ the Cyber chipsets. Add Cyber 9397 detection (#1126,1130, Alan Hourihane).
+1379. Fix a typo in vgaPCI.h (#1125, Alan Hourihane).
+1378. Fix a problem with setting the maximum clock value on s3 cards at depths
+ other than 8bpp (#1123, Steve Forsythe).
+1377. Fix dashed lines for matrox driver (#1122, Radek Kapitan).
+1376. Use correct arguments to xf86ImageWrite when uploading cursor image to
+ videoram. Units of pixels instead of bytes (#1120, Mark Vojkovich).
+1375. Fix s3/svga cursor location computation error (#1119, Mark Vojkovich).
+1374. Improve GC validation code in XAA (#1117,1118,1121, Mark Vojkovich,
+ David Bateman).
+1373. Add accelerated color expansion for all color depths and for all
+ W32-style chips (#1116, Koen Gadeyne).
+1372. Add Warpnext/Warpprev to twm (#1114, Benjamin Gras).
+1371. One more fix to restore changes to variable types made in change 1347.
+ This should fix MouseSystem mice (#1111,1124,1145, Steve Forsythe,
+ Andrew Aitchison).
+1370. Add missing pm_accel.c.
+1369. Add ImageWrite support to glint server (Alan Hourihane).
+
+XFree86 3.9u (1 November 1997)
+1368. Add support for I128 Revolution to scanpci and SuperProbe (#1108,
+ Robin Cutshaw).
+1367. Compile fixes for ARM32/NetBSD (#1099, Katrina Maffey).
+1366. Change mga to use bresenham lines instead of two point (#1098,
+ Radek Kapitan).
+1365. Add mga stipple code so that it is 256K pixels barrier sensible and
+ even faster than current XAA stipple code (#1097, Mark Vojkovich,
+ Radek Kapitan).
+1364. Move C&T hw cursor into XAA. Re-enable ImageWrite on C&T. Rewrite 32bpp
+ HiQV code (should be almost usable) (#1096, David Bateman).
+1363. Get the ch8398 work in tseng driver at every color depth and any hibit
+ setting (#1095, George Krajcsovits).
+1362. Changes to XAA hw cursor code to better support switching between hw
+ and sw cursor (#1094, David Bateman).
+1361. Fix incorrect parenthesis placement caused by hand-applying part of
+ change 1347 (#1092, Mark Vojkovich).
+1360. Resync PC98 Imakefiles (#1091, Takaaki Nomura).
+1359. Build fix for PANIX (#1090, Takaaki Nomura).
+1358. Fix a duplicate inclusion of <sys/termio.h> on ISC inside xterm/screen.c
+ and update the help text for xterm to correspond with the appropriate
+ commandline switches (#1089, Michael Rohleder).
+1357. Fix some incorrect type modifications in change 1347 (#1087,1088
+ Alan Hourihane, Michael Rohleder).
+1356. Fix mga_xaarepl.c to compile with non-GNU cc (#1086, Robin Cutshaw).
+1355. Clean up vgaPCI.h for Trident (#1085, Alan Hourihane).
+1354. Fix a bug introduced in change 1222 (#1084, Koen Gadeyne).
+1353. Remove amiga/ataritt files from xkbcomp/symbols Imakefile (they have
+ been moved to a subdir in change 1338) (#1083, Takaaki Nomura).
+1352. Update VideoBoard98 (#1081, Takaaki Nomura).
+1351. Add DO_NOT_BLIT_STIPPLES to the xf86AccelInfoRec.Flags (#1070,
+ Marc Vojkovich).
+1350. More work for Permedia 2 support. Still doesn't work (Dirk Hohndel).
+1349. Split acceleration drivers for GLINT and Permedia. Get glint server
+ to work (again) on Fire GL 1000 (Helmut Fahrion).
+1348. Get glint server to work on Fire GL 3000 (Bart van den Broek).
+
+XFree86 3.9t (26 October 1997)
+1347. Add support for ARM32 architecture and IGS CyberPro 2010 support
+ (#1052, Digital Equipment Corporation).
+1346. Multi-display support for lbxproxy (#969-971, 977, 978, Arthur Barstow).
+1345. Remove some misleading 32-bit comments in Xlib (#967, Kaleb Keithley).
+1344. Additional symbols for Japanese 109 key keyboard (#962, Kaleb Keithley).
+1343. Faster bit counting algorithm for Xlib/Xt modifier code (#958,
+ Kaleb Keithley).
+1342. XKB updates for hp ddx (#955, 956, Kaleb Keithley).
+1341. Fix Xaw Text Widget call to XtMalloc(0) (#954, Kaleb Keithley).
+1340. Updates to xrx plugins (#953, 957, 959-961, 963, Kaleb Keithley).
+1339. Use dump instead of nm in elistgen.sun (#922, Kaleb Keithley).
+1338. xkb updates (#920, Kaleb Keithley).
+1337. Fix imake's SPARCcompiler CCompilerMajorVersion detection (#919,
+ Kaleb Keithley).
+1336. Updates related to xkbcomp install (#918, Kaleb Keithley).
+1335. General MS-Win lib fixes (#917, Kaleb Keithley).
+1334. xterm support for -lcurses on HPUX 10.2 (#914, 916, 952, Kaleb Keithley).
+1333. Fix incorrect mode name in xf86config.c.
+1332. Fix text restore problem on some Avance Logic cards (#1072, Thomas
+ Dreibholz).
+1331. WriteBitmap code for MGA driver (#1069, Mark Vojkovich, Radek Kapitan).
+1330. Add a clean rule to remove XKB's .dir files. Add support for newer 3D
+ Rage III adapters to SuperProbe, the Mach64 server and the ATI driver.
+ Fix misuse of DirtyStartup define. Fix Mach64 mode restoration problems
+ in ATI driver. Fix 8MB linear aperture problem in ATI driver. Fix
+ typo's in drivers/s3* Imakefiles. Fix banking globals when a linear
+ aperture is used. Retrofit 3.3.1 vgaPCI code into 3.9s. (#1065,
+ Marc La France).
+1329. Add support for the Microsoft Intellimouse in the XFree86-Misc
+ Extension and XF86Setup (#1063,1064, Takaaki Nomura, Joe Moss).
+1328. Add Scanline ImageWrite support to XAA (#1062, Alan Hourihane).
+1327. Missing Millennium II AGP fixes (#1058, Brian Wainscott).
+1326. XAA hw cursor fix. Delay cursor restoration until after the saved screen
+ is restored (#1057, Mark Vojkovich).
+1325. Fix server to print the clock scale instead of effective clocks when
+ using a clockchip (#1056, Krajcsovits Gyorgy).
+1324. Correct eraser/stylus detection in wacom driver (#1055, Frederic Lepied).
+1323. Fixes for APM driver. HW lines/HW clipping. ROP support. Text accel now
+ uses PAD_DWORD. Bugfix for WaitForFifo() (lost serial interrupts) and
+ ApmSync() (various errors). HW cursor now uses XAA interface. Combined
+ write for many registers (x+y in one longword etc.) (#1054, Henrik
+ Harmsen).
+1322. xterm fixes. Correct a minor placement problem with the right scrollbar.
+ Implement a new set of control sequences for switching between the
+ normal and alternate VT100 screens. Implement the alternate-screen menu
+ entry (#1053, Thomas Dickey).
+1321. Add some reasonable limit for when a trapezoid fill is used rather than
+ using spans (#1051, Mark Vojkovich).
+1320. Add bindist description files for an OpenBSD/sparc binary distribution
+ (#1045, Todd Fries).
+1319. Some fixes and additions to the PCI databases (#1046,1050, Dejan Ilic).
+1318. Add 543x cirrus driver for PowerPC, fix some LynxOS related problems
+ (#1044, Thomas Mueller).
+1317. Add support for ViRGE/GX2 to SuperProbe (Dirk Hohndel).
+1316. Add support for ViRGE/GX2 to SVGA and S3V server (#1041, Harald Koenig).
+
+XFree86 3.9s (15 October 1997)
+1315. Fix segmentation fault in glint driver when server is started with a
+ card without GLINT/PERMEDIA chip (Stefan Dirsch).
+1314. Lots of fixes and additions to glint acceleration (Helmut Fahrion).
+1313. Fix problem with xterm hanging when opening a log file. Add
+ right-scrollbar to xterm (#1037, Thomas Dickey, Michael Rohleder).
+1312. Add GD7555 to vgaPCI.h and fix XF98_SVGA (#1036, Shuichi Ueno).
+1311. Fix a bug with Qword pad support in ImageWrite (#1033, Mark Vojkovich).
+1310. Fix mystique driver and build problem on SVR4.0 (#1029, Takaaki Nomura,
+ Isao Ohishi).
+1309. Fix SuperProbe to correctly detect memory on the Trident 9685 (#1023,
+ Alan Hourihane).
+1308. Add hardware clipping and transparency for the trident chips that
+ support it. Partially implement the 'set_mclk' option, not yet
+ complete, remove the tgui_mclk_66 option, clean up the TV output for
+ 9685 boards. Documentation updates (#1022, Alan Hourihane).
+1307. Add accelerated ImageWrite and a WriteBitmap replacement to the tseng
+ driver (#1021, Mark Vojkovich, Koen Gadeyne).
+1306. Documentation update for tseng driver (#1020, Koen Gadeyne).
+1305. Clear disallowed flags in Options bitmap (#1019, Alan Hourihane).
+1304. Fix XAA hardware cursor for built-in S3 RAMDACs (#1018, Alan Hourihane).
+1303. Use trapezoid fills for some wide lines (#1017, Mark Vojkovich).
+1302. Fix colormap switching problem in svga/s3 (#1016, Mark Vojkovich).
+1301. Fix install problem with xkbcomp (#1014, Robin Cutshaw).
+1300. Fix lnx_jstk.c to work with 2.1.x joystick.h file (#1013, Robin Cutshaw).
+1299. Disable some HTotals in matrox driver that cause vertical stripes (#1010,
+ 1015, Radek Kapitan).
+1298. Improve some bailout messages in tseng driver (#1009, Koen Gadeyne).
+1297. Suppress popen/pclose messages (#1008, Takaaki Nomura).
+1296. Initial support for Millennium II AGP (Dirk Hohndel).
+1295. Fixes to make glint server pass more of xtest (Alan Hourihane).
+
+XFree86 3.9r (30 September 1997)
+1294. Bug fixes to xterm. Change default resource of colorMode to true. Fix
+ 'ech' control. Add resource boldColors and +pc / -pc. Add resource
+ colorAttrMode. Fix conflict between colorULMode/colorBDMode versus ANSI
+ colors. Correct two problems with the optional logging support. Various
+ updates to configure-script macros (#1004, Thomas Dickey).
+1293. Make sure ImageWriteBase gets set with a default value (#1003,
+ Alan Hourihane).
+1292. Replace mktemp() with mkstemp() in xrdb (#1002, Luke Mewburn).
+1291. Don't fail to start if there isn't enough memory for the hw cursor in
+ tseng driver (#1001, Koen Gadeyne).
+1290. Fix the install problem with XF98_SVGA (#1000, Takaaki Nomura).
+1289. Add bresenham lines to tseng driver (#997, Koen Gadeyne).
+1288. Significantly accelerate clipped terminal font performance (#996,998,999,
+ Andrew van der Stock, David Bateman).
+1287. Enable 24bpp for Trident TGUI 96xx (#995, Alan Hourihane).
+1286. Add support for the Trident ClearTV (#994, Alan Hourihane).
+1285. Remove INT64 from XAA text code (#993, Mark Vojkovich).
+1284. XAA hw cursor support for s3/svga. IBM cursor works, other RAMDAC
+ cursors need to be implemented/verified. S3 builtin curser seems
+ to work in 8bpp, but fails in other depths (#992, Mark Vojkovich).
+1283. Some fixes for Unixware 2.1.2 (#989, Steve Forsythe).
+1282. Fix the remaining line drawing problems for the CL-GD5428 and CL-GD754x
+ chips (#985, Corin Anderson).
+1281. Fix build problem (982, Takaaki Nomura).
+1280. Add more acceleration for Permedia (this is partly producing drawing
+ errors and needs much more testing) and remove Trapezoid bug in 500TX
+ support of glint server (Helmut Fahrion).
+1279. Build fixes for XAA hw cursor and updates to glint XAA hw cursor (#983,
+ 984, Alan Hourihane).
+1278. Better color depth support and cleanups for glint server (Helmut Fahrion).
+1277. Add initial support for Permedia 2 chip to glint server (Dirk Hohndel).
+1276. Add support for GLINT MX chip to glint server (Dirk Hohndel).
+1275. Add RIVA 128 to scanpci (Dirk Hohndel).
+
+XFree86 3.9q (19 September 1997)
+1274. Add XF98_SVGA server, update XF98Conf.cpp, VideoBoard98, fix mga driver
+ for PC98 (#980,981, Michio "Karl" Jinbo, Shuichirou Urata).
+1273. Some fixes to glint server (Helmut Fahrion, Stefan Dirsch, Dirk Hohndel).
+1272. Fix for glint_dump_regs and disable accelerated lines for glint
+ (Stefan Dirsch).
+1271. Add XAA hw cursor support and update trident and glint drivers to use it
+ (#973-976,979, Alan Hourihane).
+1270. Several fixes to xterm: fix redraw errors after font changes or resizes,
+ add sunKeyboard resource, correct fg/bg test in the control sequence
+ that replies with the current SGR settings ((#972, Thomas Dickey).
+1269. Several fixes to the xterm standalone configure script (#972,
+ Thomas Dickey).
+1268. Fix to pointer movement constraints (#968, Stuart Anderson).
+
+XFree86 3.9p (15 September 1997)
+1267. Disable Image Write for HiQV chips in C&T driver (#966, David Bateman).
+1266. Add stipple accelerated functions through the ScanlineScreenToScreen
+ function (#965, Alan Hourihane).
+1255. Add ImageWrite support for the Laguna chips in cirrus driver (#964,
+ Corin Anderson).
+1254. Disable the Xserver '-config' option when run set-uid.
+1253. Have the Xservers run xkbcomp under the real user's ID.
+1252. Fix xterm's default handling of the KP_Add key.
+1251. Fix Linux-axp xdm build problem.
+1250. Fix stripping of extension from module names (so that it works OK
+ when there is a '.' in the module directory pathname).
+1249. Fix some problems in the trident driver with the 9685 programmable clock
+ and disable the GE when too little memory is available (#950,
+ Alan Hourihane).
+1248. Fix build problem with non gcc compilers (#948,949, Takaaki Nomura,
+ David Bateman).
+1247. Fix some dangling references and max MClk value in matrox driver (#951,
+ Dirk Hohndel).
+1246. Disable debugging messages in DirectColor support (Andrew Aitchison).
+1245. Fix saving video memory for glint server (Helmut Fahrion).
+
+XFree86 3.9o (9 September 1997)
+1244. Yet another fix for the problems around installing xkbcomp
+ (Michael Rohleder, David Dawes, Dirk Hohndel).
+1243. Add more acceleration for 500TX to glint server (Alan Hourihane).
+1242. Add initial acceleration for Permedia to glint server (Dirk Hohndel).
+1241. Lots of cleanups and fixes to glint server (Stefan Dirsch, Helmut
+ Fahrion, Dirk Hohndel).
+1240. Fix glint server problems on some ASUS motherboards (Stefan Dirsch).
+1239. Add Permedia support to glint server (Helmut Fahrion, Dirk Hohndel).
+1238. Several m68k related fixes (faster pic code, change Atari TT geometry),
+ fixes to not reference the undefined variable XPROJECTROOT, some glibc
+ updates (#947, Andreas Schwab).
+1237. Move some of the improvements that Mark Vojkovich made for the S3 stipple
+ code back into XAA (#945, David Bateman).
+1236. Fix problem with HW cursor disappearing on Cirrus Laguna chips (#943,
+ Corin Anderson).
+1235. Fix 24bpp XAA NonTE image text with RGB_EQUAL (#942, David Bateman).
+1234. Fix BIOS layout issues in matrox drivers. This might make Millennium
+ Rev 3 cards work (#941, Andrew van der Stock).
+1233. Improve the performance of the 24bpp fills on the 6554x machines and
+ hopefully implements a solid fill at 32bpp for the 6555x machines
+ (untested). Some cosmetic changes (#940,944, David Bateman).
+1232. Turn off CPU_TRANSFER_BASE_FIXED in SVGA/S3 driver (#939, Mark Vojkovich).
+1231. Add the correct Enable/DisableIO Ports back into the glint driver (#938,
+ Alan Hourihane).
+1230. Fix trident & mga driver for PC98. Fix XF98Conf.cpp. Resync PC98
+ Imakefiles (#935, Takaaki Nomura).
+1229. Add accelerated Image Write to C&T driver. Attempted fix for the use
+ of TMED DSTN dithering on the 65555 and 68554 chips. Small
+ documentation patch (#934, David Bateman).
+1228. Fix XF86Setup to load XFree86-VidModeExtension (#932, Takaaki Nomura).
+1227. Fix MClk limits for matrox driver (#931, Andrew van der Stock).
+1226. Fix build problem on Solaris (#929, Matthieu Herrb).
+1225. Add DacSpeed to C&T driver (#930, David Bateman).
+1224. Disable acceleration for IMA bus chips in tseng driver (#928,
+ David Bateman)
+1223. Turn Record extension into module and fix problems in XInput joystick
+ module (#927,933, Matthieu Herrb).
+1222. Add support for the ch8398 and ch8398a clockchips to the tseng driver
+ (#913,914 Gyorgy Krajcsovits).
+
+XFree86 3.9n (26 August 1997)
+1221. Lots of small fixes for xterm (#912, Thomas Dickey).
+1220. Add DirectColor visual to Matrox server (#911, Andrew Aitchison).
+1219. Disable 8x8 pattern tiling on W32 (not W32i/p) cards. Fix lowend W32p
+ cards with IMA bus. Modify linear memory code (#910, Koen Gadeyne).
+1218. Fix locale in R6.3, Fix PC98 XKB, Remove xf86ClearIOPortList() and
+ xf86AddIOPorts() from PEGC driver (#908, Takaaki Nomura, Isao Ohishi).
+1217. Remove xf86ClearIOPortList() and xf86AddIOPorts() (#907,909
+ Matthieu Herrb).
+1216. Add ET6100 support to tseng driver (#906, Koen Gadeyne).
+1215. Add wide lines to XAA (#904, Mark Vojkovich).
+1214. Add Chrontel8391CalcClock function (#903, Gyorgy Krajcsovits).
+1213. Fix output of hex numbers in chip revision (#902, Dejan Ilic).
+1212. Add accelerated Bresenham lines to tseng driver at 8bpp (#901,
+ Koen Gadeyne).
+1211. Xlib: XIMStringConversionRetrival should be XIMStringConversionRetrieval
+ (#905, Kaleb Keithley).
+1210. Official fix for potential buffer overflow in XGetErrorDatabaseText
+ (#900, Kaleb Keithley).
+1209. Fix typo in cde.rules (#899, Kaleb Keithley).
+1208. SGI threads patch update (#898, Kaleb Keithley).
+1207. Fix UNSHARED_CXXLIB for SPARCcompiler4.0 (#897, Kaleb Keithley).
+1206. Fix SPARCcompiler CCompilerMajorVersion (#896, Kaleb Keithley).
+1205. Parse junk from export lists better (#895, Kaleb Keithley).
+1204. Removes some dead or unused code in os-support (#893, Matthieu Herrb).
+1203. Remove xf86tmpnam() from libc_wrapper and rewrites xf86tmpfile() to
+ use tmpfile() (#892, Matthieu Herrb).
+1202. Add a separate README.OpenBSD for 3.9 (#890, Matthieu Herrb).
+1201. Move most common extensions into a module (#889, Matthieu Herrb).
+1200. OpenBSD multi-architecture support (#888, Matthieu Herrb).
+1199. Disable disables broken software/hardware cursor switching in s3/svga
+ (#887, Mark Vojkovich).
+1198. Some fixes for PC98. XF86Setup, mga driver, VideoBoards98, Cards98
+ (#886, Takaaki Nomura, Takefumi Tsukada).
+1197. Acceleration fixes for Trident and accelerated ImageWrite (#883,884,885
+ Alan Hourihane).
+1196. Bring the 3.3.1 Trident fixes into 3.9 (#882, Alan Hourihane).
+1195. Add incomplete Rendition detection code to SuperProbe (Dirk Hohndel).
+1194. Add Rendition detection to PCI code (#881, Marc Langenbach, Dirk Hohndel).
+1193. Fix to only build *.dir file for xkbcomp on make install (#880,
+ Michael Rohleder).
+1192. Add ImageWrites for s3/svga (#879, Mark Vojkovich).
+1191. Rename dashed pattern flags (#878, Mark Vojkovich).
+1190. Add ImageWrite support for XAA (#877, Mark Vojkovich).
+1189. Add MGA2164 define to vgaPCI.h (#876, Takaaki Nomura).
+1188. Extend the frame buffer test in glint_dump_regs (Stefan Dirsch).
+
+XFree86 3.9m (13 August 1997)
+1187. Add printing support to xterm (#870, Thomas E. Dickey).
+1186. Fix denial of service attack through xdm double freeing memory (#875,
+ Kaleb Keithley).
+1185. Fix Solaris build problem (#874, Takaaki Nomura).
+1184. Preliminary experimental support for the Millennium II (#852-857,
+ Andrew Vanderstock).
+1183. Recognise the rev 3 Mystique, and hopefully set everything up
+ correctly for it, change MMIO/fb mapping for Mystique rev >=3.
+ (David Dawes)
+1182. Patches to both XAA and the Glint sources that enable the
+ ScanlineScreenToScreen colour expansion (#873, Alan Hourihane).
+1181. Fix problem of xkbcomp not generating .dir files during install
+ (#872, Kaleb Keithley).
+1180. Fix problem with possible denial of service attack using the X server
+ (#867, Kaleb Keithley).
+1179. Update VidModes.sgml to latest version (#871, Eric Raymond).
+1178. Fix I128 support for AXP (#868, Robin Cutshaw).
+1177. Add planemask support to most XAA functions for all tseng chips
+ (#869, Koen Gadeyne).
+1176. Fix text rendering for W32 at 16bpp, always determine bus type, fix
+ bug in XAA color expansion (#865, Koen Gadeyne).
+1175. Fix ET6000 dram speed code, disable 32bpp on ics5301 ramdacs (#864,
+ Koen Gadeyne).
+1174. Clean up RAMDAC handling in tseng driver, extend stg1702 support, and
+ fix problems caused by treating unknown RAMDACs as AT&T compatible
+ (#862, Koen Gadeyne).
+1173. Fix support for linear memory mode on W32p rev a&b (#861, Koen Gadeyne).
+1172. Fix ET6000 black screen problem (#861, Koen Gadeyne).
+1171. Changes to Amiga XKB code (#860, Bernd Ernesti).
+
+XFree86 3.9l (31 July 1997)
+1170. Fix parsing of DPMS parameters in config file.
+1169. Catch a NULL dereference in lib/X11/lcFile.c (#843, Dirk Hohndel).
+1168. Xterm support for compound text cut and paste (#836, Kaleb Keithley).
+1166. Fix some I128 problems reported with PPro CPUs (#834, Robin Cutshaw).
+1165. Disable C&T fill at 32bpp (#831, David Bateman).
+1164. Update VideoBoard98 file (#830, 842 Takaaki Nomura, Isao Ohishi).
+1163. Prevent re-allocation of cfb ScreenPrivateIndex for multi-head
+ server (#829, Stuart Anderson).
+1162. Fix unintended changes in PCI code.
+1161. Fix handling of PS/2 protocol mice with OpenBSD (it doesn't translate
+ to BusMouse protocol like NetBSD does) (#820, Matthieu Herrb).
+
+XFree86 3.9k (29 July 1997)
+1160. Several fixes to xterm. Correct an indexing error in the doublesize
+ character logic. Correct the logic of ShowCursor when it is painting in
+ a doublesize cell. Correct the behavior when switching to doublesize
+ characters and back again. Add cbt (back_tab) to the terminfo
+ description. Correct the logic for disabling xmc. Minor correction to
+ positioning of underlines for small (e.g., 5x8 font size. Add more
+ special-case tokens to the standalone configure script's imake-option
+ filter. Add a '--enable-logging' option for the standalone configure
+ script. Add check and ifdef's for the standalone configure script to
+ allow for building on platforms with X11R6, which lacks Xpoll.h
+ (#769,821, Thomas Dickey).
+1159. Preliminary support for Millennium on PC98 (#825, Shuichiro Urata,
+ Takaaki Nomura).
+1158. update XKB for PC98 (#825, Isao Ohishi).
+1157. Support XF86Setup for PC98 (#825, Takaaki Nomura, Kazunori Ueno).
+1156. PC98 resync (#825, Michio "Karl" Jinbo).
+1155. Add common Imakefiles for some PC98 sub directories (#825,
+ Michio "Karl" Jinbo).
+1154. Add code to fine tune memory access on ET6000 boards and cleanup some
+ W32 specific code that would write to illegal registers on ET6000 cards
+ (#818, Harald Nordgard Hansen).
+1153. Ensure accelerator CRTC registers are unlocked before writing them and
+ horizontal & vertical syncs are not disabled on mode switches (#817,
+ Marc La France).
+1152. Change xsetroot -mod option to count pixels from left to right within
+ each 16-pixel slice, instead of right to left (#817, Marc La France).
+1151. Cleanup declarations for xf86Verbose, xf86ProbeOnly & xf86ProbeFailed,
+ make VGABase XF86Config option recognized by more servers, HSkew wasn't
+ being dealt with correctly in matching modes to clocks, fixup default
+ mode for the generic VGA driver (#817, Marc La France).
+1150. Fix a few bugs in ATI driver, break it up in multiple files, add
+ support for Mach64 accelerator CTRC, which now is used by default, and
+ generic VGA (untested) (#817, Marc La France).
+1149. Fix build problem on Solaris (#810, Dirk Hohndel).
+1148. Re-enable LEFT_EDGE_CLIPPING_NEGATIVE for the HiQV chips and tidy up the
+ ScreenToScreenColorExpand stuff (#808, David Bateman).
+1147. Enable the sw_cursor option and add support for the no_accel option (#806,
+ Joe Moss).
+1146. Avoid source overruns in xf86DrawStippleScanline() and remove the
+ restrictions on TRIPLE_BITS_24BPP, LEFT_EDGE_CLIPPING
+ and LEFT_EDGE_CLIPPING_NEGATIVE_X (#805, David Bateman).
+1145. Allow keywords with underscores in XF86Setup (#802, Harald Koenig).
+1144. Explicitly enable hsync and vsync on Mach64 boards (#799, Marc La France).
+1143. Small fix for norwegian keyboard in xkb (#797, Harald Nordgard Hansen).
+1142. Add 32bpp to HiQV driver and get CopyArea and Solid Fills accelerated
+ in 32bpp (#790,796, David Bateman).
+1141. Fix clock calculation on HiQV chips (#783, David Bateman).
+1140. Fix hardware clipping and get closer to a working 8x8pattern color expand
+ (#781,811, Alan Hourihane).
+1139. Disable C&T HiQV ImageWrite (#780, David Bateman).
+1138. Change how patterns are packed for LINE_PATTERN_MSBFIRST_INCREASING
+ (#779, Mark Vojkovich).
+1137. SVGA/S3 acceleration improvements (#778, Mark Vojkovich).
+1136. Fix xclock problem that shows up on Cirrus 542x chips
+ (#777, Corin Anderson).
+1135. Small fix for C&T driver (#775,776 David Bateman).
+1134. Merge missing ViRGE code from 3.3* into 3.9* (#773, Harald Koenig).
+1133. Support for I128 DRAM cards (#816, Robin Cutshaw).
+1132. PCI updates required for the I128 server (#815, Robin Cutshaw).
+1131. Fix for Xt/Error.c (#813, Kaleb Keithley).
+1130. Make XF86Setup's keyword matching the same as the Xservers (ie,
+ ignore '_', ' ', '\t' in keywords).
+1129. Tseng documentation update (#800, 803, Koen Gadeyne).
+1128. Update to imake's auto GCC PostIncDir detection for OpenBSD
+ (#794, Matthieu Herrb).
+1127. Fix I128 problems (#792, 809, Robin Cutshaw).
+1126. Fix some errors in the symbols/th XKB file (Poonlap Veeratanabutr).
+1125. Don't use EXTRA_DEFINES in Xserver/xkb/Imakefile (#786, Kaleb Keithley).
+1124. Alternate way of fixing the "./" problem in Imake.rules
+ (#785, Kaleb Keithley).
+1123. Install full path in dynamic libraries for SCO (#782, J. Kean Johnston).
+1122. Fix remaining problems with SCO OpenServer 5 support (#772,
+ J. Kean Johnston).
+1121. Fix support for older I128 cards (#771, Robin Cutshaw).
+1120. Add detection for C&T 68554, and fix detection of the 65550 revision
+ numbers (#770, David Bateman).
+1119. Fix STG170x support in tseng driver (#766, Koen Gadeyne).
+1118. Fix linkkit install problem in apm driver (#767, Holger Veit).
+1117. Add more resolutions to xf86config (#767, Holger Veit).
+1116. Add OS/2 diagnostic on network config (#767, Holger Veit).
+1115. Fix EditRes problems that show up on OS/2 (#767, Holger Veit).
+1114. Fix a problem in OS/2's imakesvc.cmd (#767, Holger Veit).
+1113. Fix lockup when the SVGA server dumps core with the MGA driver
+ on some OSs.
+1112. Fix a bug in cfb24GetSpans which can cause a server crash
+ (StarOffice will provoke this).
+1111. Fix the use of a C++ reserved word in xf86vmode.h.
+1110. Reset the DPMS state to ON when re-entering the server's VT.
+
+XFree86 3.9j (12 July 1997)
+1109. Process Xqueue events synchronously to avoid problems with
+ accelerated servers.
+1108. Fix sqrt problems in miarc (#765, Harald Koenig).
+1107. Remove special Tk 4.0 support in XF86Setup and add C code to match the
+ latest vidmode extension changes. Fix a minor bug in the DPMS code
+ (#764, Joe Moss).
+1106. Several small fixes to Xserver/{dix,include,os/,PEX5} (#760-763,
+ Craig Groeschel).
+1105. XKB fixes (#759, Stuart Anderson).
+1104. Fix uninitialized variable (verbose) in scanpci.c (#757, Thomas Mueller).
+1103. Add big endian version of PCI config structure (#757, Thomas Mueller).
+1102. Add cross compile definitions for LynxOS and add static vga server for
+ LynxOS PowerPC (#757, Thomas Mueller).
+1101. Add bindist files for LynxOS (#756, Thomas Mueller).
+1100.
+1099. Add handling for AST onboard Mach32 card (#754, Bryan Feir).
+1098. Fix a problem in Imake.rules that shows up when using Motif.rules.
+1097. Fix MGA lockup on SVR4.0.
+1096. Add missing for Japanese "small TSU" character to the XKB
+ symbols/jp file (#751, Shigehiko Sasaki).
+1095. Fix ET4000/W32i acceleration at 16 and 24bpp, and accelerate colour
+ expansion at 16bpp and 24bpp for the W32p (#747, Koen Gadeyne).
+1094. Fix for I128 rev 2 chips (#746, Robin Cutshaw).
+1093. Fix typo in xf86_libc.h.
+
+XFree86 3.9i (6 July 1997)
+1092. Fix apm HW cursor problem at VT switch, and a problem with
+ screen-to-screen bitblts (#745, Henrik Harmsen).
+1091. VidMode extensions updates, including adding a new function to
+ return the available clocks, and how many more clocks can be programmed,
+ add the HSkew parameter and some reserved fields (this introduces
+ a protocol incompatibility), and fix a bug in the ValidateModeLine
+ function's clock checking (#744, Joe Moss).
+1090. Add port probing to SuperProbe for the Alliance 6410, 6422 and AT24
+ (#743, Joe Moss).
+1089. Add similar ET6300 detection to scanpci and vgaPCI.h.
+1088. Fix SuperProbe's ET6000 memory probe (#742, Koen Gadeyne).
+1087. Add detection for the ET6100 and ET6300 to SuperProbe (#742,
+ Koen Gadeyne).
+1086. Some PCI video cards don't have the expected "IBM" string in the
+ BIOS, so look for the "PCI" string too. Without this, scanning with
+ -nopci fails for some cards (#741, Koen Gadeyne).
+1085. Possible fix for XWarpCursor() not working with the XInput
+ xf86PostMotionEvent() function (#740, Michael Rohleder).
+1084. Add some "test-support" code to xterm, which is not enabled by
+ default (#739, Thomas E. Dickey).
+1083. Fix ET4000W32p RAMDAC detection (backs out most of #717), make
+ the tseng driver use DELAYED_SYNC, and an (unsuccessful) attempt
+ to get CPU-to-screen colour expansion working (#737, Koen Gadeyne).
+1082. Add missing valuator initialisation to the OS/2, SCO and Xqueue
+ MouseProc() functions. This fixes the mouse problems on those OSs
+ (#736, 738, Holger Veit and Richard Coley).
+1081. Fix a misplaced va_end() in the recent XInput code which caused a core
+ dump on OS/2 (#736, Holger Veit).
+1080. Fix SummaSketch bug that shows up with newer XInput code, add
+ a missing conversion_proc, fix misplaced break, and add new config
+ options to the SummaSketch subsection for ActiveArea and ActiveOffset
+ (#735, Steven Lang).
+1079. Fix a problem with xterm's cursor colour versus the background, and
+ remove a duplicate initialisation of the cursor's GC (#734,
+ Thomas E. Dickey).
+1078. Fix XAA's bpp setting at 24bpp (#733, Mark Vojkovich).
+1077. Fix cpp script problem on AIX (#732, Kaleb Keithley).
+1076. Fix xhost core dump that can happen if no hosts are authorised
+ (#731, Kaleb Keithley).
+1075. Glint driver updates (#729, 730, Alan Hourihane).
+1074. Move the solx86usleep() function out of solx86_init.c into a separate
+ file, which should fix the problems addressed by #726.
+1073. Add ANSI-C wrappers (#724, Holger Veit).
+1072. Update recent config and libX11 changes for OS/2 (#724, Holger Veit).
+1071. Fix and enable ET4000W32i acceleration, and fix unmap bug in the
+ ET6000 memory probe (#723, Koen Gadeyne).
+1070. Replace fdflush() in the Summa and AceCad drivers with tcflush
+ (#722, Steven Lang).
+1069. SCO support updates (#721, J. Kean Johnston).
+1068. Add some more dead accents to the 'se' xkb layout (#718, Dejan Ilic).
+1067. Merge in TOG's X11R6.3 public patch 2.
+
+XFree86 3.9h (30 June 1997)
+1066. Don't call seteuid in the server when the real uid is root. This
+ fixes a problem of not getting a core file under some FreeBSD versions.
+1065. Tseng driver cleanups (#717, Koen Gadeyne).
+1064. 'xset dpms 600 0 0' complains about 600 being greater than 0.
+1063. New XInput driver for the AceCad ADVANCEDigitizer (#716, Shane Watts).
+1062. Clean up some problems with the xf86 wrappers (#715, Matthieu Herrb).
+1061. New Xinput driver for MicroTouch TouchPen touch screen (#714,
+ Patrick Lecoanet).
+1060. Changes for E281-2310 and fully compatible controllers in the
+ Elographics driver (#714, Juergen P. Meier).
+1059. Elographics driver updates (#714, Patrick Lecoanet).
+1058. Fix ROP bugs in the svga/s3v driver (#713, Harald Koenig).
+1057. Fix a malloc/free bug which can cause the Xserver to crash when
+ an lbxproxy terminates.
+1056. Change default compression level in lbxproxy (#710, Kaleb Keithley).
+1055. Xt/Error.c update (#708, Kaleb Keithley).
+1054. LibXext cleanups (#707, Kaleb Keithley).
+1053. Config updates (#706, Kaleb Keithley).
+1052. Add PreviousCandidate and MultipleCandidate keysyms (some new Japanese
+ keyboards have these keys) (#705, Kaleb Keithley).
+1051. Fix some xterm bugs (#700, Thomas E. Dickey).
+1050. Initial part of implementing VT100 doublesize characters for xterm
+ (#700, Thomas E. Dickey).
+1049. First stab at adding dlopen() style loader (#712, Matthieu Herrb).
+1048. Add further acceleration to the GLINT server (mostly disabled) (#711,
+ Alan Hourihane).
+1047. Add support for I128 Series II Rev 2 chips (#704, Robin Cutshaw).
+1046. Additions to the apm driver. Add support for AT3D, acceleration for
+ 8,16,32bpp (for AT3D and AT24, filled rectangles, screen-screen bitblts,
+ host-screen color expansion bitblts for text). DPMS support, hardware
+ cursor code (also in 8bpp), use programmable clock, set MCLK to 57.3
+ MHz on AT3D, various bugfixes and cleanups (#702, Henrik Harmsen).
+1045. Fix problems with displaying card READMEs in XF86Setup (#701, Dirk
+ Hohndel).
+1044. Add left-edge clipping to s3_newmmio. There's bug in both the scanline
+ screen->screen and CPU->screen stipple fallback routines though. Both
+ break certain patterns and the screen->screen bug is worse than the
+ CPU->screen one (#694, Mark Vojkovich).
+1043. Enables the XInput modules from 3.2 to be loaded as modules in
+ XF86_LOADER (#693, Matthieu Herrb).
+1042. Add code to have XAA check to see if a stipple can be reduced to an 8x8
+ pattern before banishing it from the pixmap cache on account of it's
+ size (#692, Mark Vojkovich).
+1041. Fix CapNotLast problem in dashed line code (#686, Mark Vojkovich).
+1040. Add stippled fill fallback for SVGA/S3 if the pixmap cache is too small
+ (#685, Mark Vojkovich)
+1039. Fix for xf86initac,c so that drivers can specify their own WriteBitmap
+ functions and fallbacks for non-cachable stippled fills. This also
+ allows usage of both CPU->screen and scanline screen->screen color
+ expansion instead of one or the other (#684, Mark Vojkovich).
+1038. Some Xlib fixes (#687-690, 695-699, Kaleb Keithley).
+1037. XKB updates (#674, 675, 709, Kaleb Keithley).
+1036. Config updates to make use of change 1033 (#673, Kaleb Keithley).
+1035. Fix a typo in the XKB symbols/hu file and add an entry for it in
+ the rules/xfree86.lst file (Peter Soos).
+1034. Fix a bug in Xt/Error.c that can result in partially duplicated
+ error/warning messages.
+
+XFree86 3.9g (20 June 1997)
+1033. Changes to imake to determine LinuxCLib*Version,
+ LinuxBinUtilsMajorVersion and PostIncDir at build time (#673,
+ Kaleb Keithley).
+1032. Fix SEGV in solx86's xf86MapVidMem() when called without first
+ calling xf86LinearVidMem() (David Thompson).
+1031. Fix for pci detection code in S3 server (#683, Harald Koenig).
+1030. Fix problems with rop -1 in S3V server (#679,681,682, Huver Hu, Harald
+ Koenig).
+1029. Fix cache expansion routine for HARDWARE_PATTERN_NOT_LINEAR (#680,
+ Mark Vojkovich).
+1028. Add "no_split_xfer" option to S3 server (#678, Harald Koenig).
+1027. Fix bug in xterm. Logout records should contain '\0' as first char
+ in user name (#676, Alex Belits).
+1026. Fix color problems on S3 cards with Ti3026 for SVGA/S3 (#671,
+ Achim Oppelt).
+1025. Adapt code to future changes in NetBSD's (and OpenBSD's?) mmap
+ semantics (#670, Matthieu Herrb).
+1024. Fix xterm's op termcap entry, and shorten the entry so it fits within
+ the 1024 character limit.
+1023. Actually include changes 963-965.
+1022. Add accelerated server for cards based on 3DLabs GLINT chipsets. This
+ server is known to work on Elsa GLoria L cards on most motherboards.
+ It does not support any other cards at this time. This work was
+ sponsored by S.u.S.E., Elsa, and SNI (Alan Hourihane, Stefan Dirsch,
+ Dirk Hohndel).
+
+XFree86 3.9f (16 June 1997)
+1021. Fix some build problems with 3.9e.
+
+XFree86 3.9e (15 June 1997)
+1020. Add some more I128 acceleration, including pixmap cache, rectangle
+ fills and line drawing (#669, Robin Cutshaw).
+1019. Fix a compile problem that shows up with GLX isn't enabled
+ (#668, Frederic Lepied).
+1018. If the Wacom driver isn't supplied with a value for the Suppress
+ option it is calculated to report motions according to the screen
+ resolution (#668, Frederic Lepied).
+1017. Fix a bug in the XInput Wacom driver which prevented the eraser from
+ working (#668, Frederic Lepied).
+1016. Add a virtual XInput device called "Switch" which sends extended
+ motions when a different device sends a core event (with AlwaysCore
+ enabled (#668, Frederic Lepied).
+1015. Fix behaviour of XInput relative devices. They send events with
+ accumulated valuators not with valuators deltas (#668, Frederic Lepied).
+1014. XInput devices with AlwaysCore enabled send both core and extended
+ events at the same time (#668, Frederic Lepied).
+1014. Move HP's HPkeysym.h (#667, Kaleb Keithley).
+1013. Fix a bad include in FS.h (#666, Arthur Barstow).
+1012. Add the mechanism to acknowledge the new DacSpeed[] values to the
+ svga/s3 driver. Only the Trios use it so far (#665, Mark Vojkovich).
+1011. Fix(?) Truecolor depths for the Ti 3026/3030 ramdacs in the svga/s3
+ driver (#665, Mark Vojkovich).
+1010. Fix a logic bug in the XAA code that checks to see if there is
+ enough room for 8x8 patterns in the pixmap cache (#664,
+ Mark Vojkovich).
+1009. Changes to vga256/vga to allow the NV1 driver to work without
+ requiring any VGA functionality (#663, David McKay).
+1008. Resync the MGA driver with 3.3 (#660, Radoslaw Kapitan).
+1007. Lots of updates to the svga/ati driver (#659, Marc Aurele La France).
+1006. Update support for ATI Rage II+, Rage Pro in the Mach64 server, scanpci,
+ and SuperProbe (#659, Marc Aurele La France).
+1005. Remove man pages for VGA16 and Mono servers (#659,
+ Marc Aurele La France).
+1004. Fix duplicate target in drivers/s3/Imakefile (#658, Robin Cutshaw).
+1003. Fix some Xprt problems (#655-657, Kevin Samborn).
+1002. Fix some DPMS problems, including problems when the DPMS timeouts
+ are smaller than the screensaver cycle time, and problems with the
+ various DPMS setting not being re-initialised at server reset.
+1001. Fix an InfoRec initialisation problem in xfree68/fbdev (#652,
+ Andreas Schwab).
+1000. Fix incorrect links created from nls/XLC_LOCALE to xc/exports
+ (#652, Andreas Schwab).
+ 999. Fix a flaw in a libX11 security fix (#652, Andreas Schwab).
+ 998. Add libc 6 config for Linux/m68k to Linux.cf (#652, Andreas Schwab).
+ 997. Allow depth-specific Dacspeeds to work for the tseng driver
+ (#651, Koen Gadeyne).
+ 996. Tseng driver cleanups (#650, Koen Gadeyne).
+ 995. Allow xterm to start when /etc/termcap is missing, and fix some
+ configure script nits (#649, Thomas E. Dickey).
+ 994. Fix twm crash if interrupted during startup (#644, Wolfram Gloger).
+ 993. Fontlib fixes (#636-640, 642, 646, 648, Arthur Barstow).
+ 992. Add audit logging to xfwp (#623, Kaleb Keithley).
+ 991. Sun/XKB keyboard fix (#621, Kaleb Keithley).
+ 990. Update xrx defaults (#620, Kaleb Keithley).
+ 989. Fontserver fixes (#613, 643, Arthur Barstow).
+ 988. Imake config updates (#610-612, 614-617, 619, 624, Kaleb Keithley).
+
+XFree86 3.9d (10 June 1997)
+ 987. Fix "xaa_no_color_exp" option for scanline-screen-to-screen color
+ expansion (#629, Koen Gadeyne).
+ 986. Add hint how to disable building Xprt to xf86site.def (#627, Koen
+ Gadeyne).
+ 985. Change Linux to use -D_REENTRANT (#644, Wolfram Gloger).
+ 984. Fix C&T driver to be more strict about DClk and MClk limits for HiQV
+ chips (#645, David Bateman).
+ 983. Fix I128 server (#635, Robin Cutshaw).
+ 982. Fix VT switching problems in mga driver (#634, Guy Desbief).
+ 981. Fixes for xterm (missing part of install-rule, incorrect assignment for
+ --enable-color-mode option, unexpected cursor color change while
+ scrolling) (#632,633, Thomas Dickey).
+ 980. Fix a problem where the Tseng memory mapped registers get cleared in
+ vgaScreenInit() when it is clearing the screen as startup. This only
+ happened for 8bpp with linear mode enabled (#630, OEyvind Aabling).
+ 979. Avoid nested asm calls for SVR4.0 (#631, Takaaki Nomura).
+ 978. Fix error messages when loading modules in the static server (#626,
+ Matthieu Herrb).
+ 977. Change svga/s3 into two separate modules s3_pio and s3_newmmio. This
+ doesn't work with the static server at this point. Add linear
+ addressing and 16/24(packed)/32bpp. Add pci_retry option. (#625,
+ Mark Vojkovich).
+ 976. Allow the ChipId and ChipRev values to be overridden from the XF86Config
+ for the Mach64 server.
+ 975. Fix some 1bpp and 4bpp problems (#609, Marc Aurele La France).
+ 974. Changes to allow SuperProbe, Mach64 driver, scanpci and vgaPCI to
+ detect the newer ATI 3D Rage II+ chips (#609, Marc Aurele La France).
+ 973. Allow the server side of the multibuffer extension to compile (#609,
+ Marc Aurele La France).
+ 972. Continue removal of the XF86_VGA16 & XF86_Mono servers (#609,
+ Marc Aurele La France).
+ 971. Add some new keywords to xf86_Config.h (#608, Stuart Anderson).
+ 970. Fix problem building the PC98 loader server (#607, Takaaki Nomura).
+ 969. Fix xdm/Imakefile for OpenBSD (which doesn't have libcrypt)
+ (#606, Matthieu Herrb).
+ 968. Fix default value for xf86bpp (David Dawes, Dirk Hohndel).
+ 967. Some cleanups to tseng driver, re-apply the STG1700 RAMDAC changes and
+ re-introduce some 1/4bpp checks (#605, Koen Gadeyne).
+ 966. Fix a few typos in tseng.sgml (#605, Koen Gadeyne).
+ 965. Automagically select the correct protocol for PS/2 mice at startup
+ with XF86Setup (#604, Dirk Hohndel).
+ 964. Fix XF86Setup to follow links that point to non-existing files (so that
+ it creates /var/X11R6/bin/X if necessary (#604, Dirk Hohndel).
+ 963. Fix XF86Setup to allow reading the right README files for cards using
+ the SVGA server (#604, Dirk Hohndel).
+ 962. Fix small problem with installing the LinkKit (#603, Geert Uytterhoeven).
+ 961. Fix 8x8 pattern cache size checking (#602, David Bateman).
+ 960. Remove old (pre-XAA) acceleration from C&T driver (#601, David Bateman).
+ 959. Two small fixes in C&T driver for "use_vclk1" option and ImageWrites
+ (#600, David Bateman).
+ 958. Add C&T 65555 detection to SuperProbe and SVGA server; treat it
+ basically like a 65550 but attempts to use the TMED features (untested)
+ (#600, David Bateman).
+ 957. Fix build problems in tseng_driver.c (#599, David Bateman).
+ 956. Fix XF86Setup build problem (#598, Takaaki Nomura).
+ 955. Fix yet another fontserver problem (#597, Arthur Barstow).
+ 954. Remove bogus changes to xc/Imakefile (Dirk Hohndel).
+ 953. Fix incorrect define for DGA (Steve Kump).
+
+XFree86 3.9c (3 June 1997)
+ 952. Fix a problem with the HW cursor being drawn in the overscan area
+ with the svga/s3v driver and cleanup some of the register
+ save/restore (#585, Harald Koenig).
+ 951. Disable the banked-mode speedups for the Tseng driver when running
+ in linear mode (#584, David Bateman).
+ 950. Fix for CR53 not being restored unless xf86Verbose > 1 in the svga/s3v
+ driver (#572, Sebastien Marineau).
+ 720. Fix problems restoring some non-standard text modes for the Millennium
+ (#571,573, Radoslaw Kapitan, #574, Ansgar Hockmann).
+ 948. Fix svga/s3v panning at 24bpp (#570, Harald Koenig).
+ 947. Fix S3V panning at 24bpp (#569, Harald Koenig).
+ 946. Fix misleading messages in the svga/s3v driver when the SVGA server
+ is started with a non-ViRGE S3 card (#568, Sebastien Marineau).
+ 945. Alternate S3V 32<->24 bpp translation to avoid unaligned traps
+ on Alpha platforms (#567, Harald Koenig).
+ 944. Disable 8x8 pattern fill when less than 8 scanlines are available
+ in the XAA pixmap cache (#566, David Bateman).
+ 943. Fix a screen restore problem for the Mystique when the server is
+ started with '-probeonly' (#559, Radoslaw Kapitan).
+ 942. Turn the monitor back on after DPMS has done its thing for
+ OSs where the input devices are not selectable (558, Jack Thomasson).
+ 941. Fix some incorrect ROP definitions in the C&T driver (#557,
+ David Bateman).
+ 940. Fix some text font corruption for the S3 Trio64 (#549,554 Harald Koenig).
+ 939. XF86Setup carddata updates (#547, Koen Gadeyne, #552, Matthieu Herrb).
+ 938. Modify xon to use the fully qualified hostname on Linux (#544,
+ Burchard Steinbild, Dirk Hohndel).
+ 937. Exclude ROPs with no source from XAA CopyPlane functions (#538,
+ David Bateman).
+ 936. Mach32 updates, including accepting '-bpp 15' and increasing the
+ 16bpp clock limit for the 68875 ramdac to 80MHz (#536, Bryan Feir).
+ 935. PC98 doc updates (#535, Takaaki Nomura).
+ 934. Fix for an S3V server problem at 16bpp introduced in change 650
+ (#532, Huver Hu).
+ 933. Further fix for Mystique problems when VT switching (#531,
+ Radoslaw Kapitan).
+ 932. Fix a blit bug with the ViRGE chip in the svga/s3v driver which
+ shows up with xv rubber-banding (#529, Sebastien Marineau).
+ 931. Fix a blank screen problem when switching back to the Xserver
+ from a text VT with the Mystique (#520, Radoslaw Kapitan).
+ 930. Some minor Tseng code cleanups (#519, Koen Gadeyne).
+ 929. Add a timeout to the MGA Sync() function (#518, Radoslaw Kapitan).
+ 928. Map only the amount of video memory present in the MGA driver
+ rather than always 8MB (#516, Radoslaw Kapitan).
+ 927. Disable the HW cursor in the tseng driver when entering DGA mode
+ (#514, Koen Gadeyne).
+ 926. Fix a S3V server text console corruption problem when running at 24bpp
+ (#513, Kevin Brosius).
+ 925. Update NetBSD/OpenBSD docs (#512, Matthieu Herrb).
+ 925. Update Cirrus docs (#509, Harm Hanemaayer).
+ 924. Change Tseng memory mapped registers to volatile (#507, Koen Gadeyne).
+ 923. Disable Tseng 24bpp for CH8398 RAMDAC (#507, Koen Gadeyne).
+ 922. Update docs to reflect change 643 (#507, Koen Gadeyne).
+ 921. Re-enable Tseng 8bpp+linear+accel combination (#507, OEyvind Aabling).
+ 920. Update mga docs (#502, #503, Radoslaw Kapitan).
+ 919. Fix font and LUT corruption on VT switch for the svga/s3v driver
+ (#497, Harald Koenig).
+ 918. Fix some acceleration bugs in the TGUI driver (#495,496, Alan Hourihane).
+ 917. Updates to the I128 server for Alpha platforms (#494, Robin Cutshaw).
+ 916. Fix a Mystique colour problem when switching VTs (#488, Guy Desbief).
+ 915. Fix a bug in Mystique memory detection (2MB was detected as 4MB)
+ (#482, Radoslaw Kapitan).
+ 914. Merge in simple dashed horizontal and vertical line drawing in the
+ S3V server into s3line.c, and use this for 24/32bpp (#474, Huver Hu).
+ 913. Modify the S3V server to advertise a 32 bits-per-pixel pixmap
+ format to clients, and translate to/from packed 24bpp when accessing
+ the framebuffer. This allows a lot of clients which didn't know
+ how to handle the 24 bits-per-pixel pixmap format to work
+ (#474, Huver Hu).
+ 912. Start cleanup of depth/bitPerPixel usage in the SVGA server. xdpyinfo
+ should now report the correct information (#472, Mark Vojkovich).
+ 911. Change chiprounding from 128 to 64 in 8bpp for the Mystique, which
+ allows 1600x1200x8 on 2MB boards (#467, Radoslaw Kapitan).
+ 910. Position the tseng accel scratchpad area correctly (#461, Koen Gadeyne).
+ 909. Fix a problem with the W32 server that causes it to hang with
+ W32i cards (#456, Koen Gadeyne).
+ 908. Save the initial state of bit 7 of CR58 in the S3, S3V servers and
+ svga/s3v driver, and change the "ras_precharge" option to allow it
+ to be turned on or off (#458, Harald Koenig).
+ 907. Enable the clockchip in the tseng driver by default when a suitable
+ RAMDAC/clockchip is found (#448, Koen Gadeyne).
+ 906. Fix text mode restore with ViRGE (#443, Harald Koenig).
+ 905. Add CH8398 probing to XF86_W32 (#439, Kurt Olsen).
+ 904. Add STG1702 probing to XF86_W32 (#434, Stuart Lamble).
+ 903. Fix blitbug widths in SVGA/S3V and S3V servers, enable the hardware
+ cursor in doublescan mode in SVGA/S3V server, fix the 24bpp problem in
+ SVGA/S3V server when mode switching (#432, Sebastien Marineau).
+ 902. Disable 24bpp on the STG1700, new "default" linear memory base for W32p
+ cards, fix STG170x problems (#430 Koen Gadeyne).
+ 901. Add MODULEVENDORSTRING to the ModuleVersionInfo (#423, Stuart Anderson).
+ 900. Finetuning for Miro 80SV support. Add "no_pci_disconnect" Option
+ (for some Alpha boxes, Alphastation255 and UDB) (#416, Harald Koenig).
+ 899. Fix several problems with the tseng driver. Don't allow pixmux modes
+ in the VGA16 or MONO server (it doesn't work), disable the combination
+ 8bpp + linear + acceleration, fix maximal pixel clock for W32p, fix
+ cut'n'paste bug where CRTC 0x31 was restored incorrectly, update the
+ XF86_SVGA manual pages (#414,415, Koen Gadeyne).
+ 898. NetBSD and OpenBSD doc updates (#412, Matthieu Herrb).
+ 897. LynxOS documentation updates (#411,537 Thomas Mueller).
+ 896. LynxOS microSPARC fixes (#410, Thomas Mueller).
+ 895. Small fixes for dacspeed and set_mclk code in the S3V server (#401,
+ Harald Koenig).
+ 894. Fix text mode restauration in S3V server (#400, Harald Koenig).
+ 893. Some misc bug fixes (#395, Harald Koenig).
+ 892. Change clock limits for S3 /DX and /GX chips to 170/170/135 based
+ on information from S3 (#395, Harald Koenig).
+ 891. Add detection and higher clock limits for MELCO S3 ViRGE card
+ (#395, Harald Koenig).
+ 890. Add set_mclk for S3V and S3/Trio64 (#395, Harald Koenig).
+ 889. Add support for specifying DACSpeeds separately for 8/16/24/32bpp
+ (#395, Harald Koenig).
+ 888. Fix module handle leak in LoaderOpen (#393, Eric Nygren).
+ 877. Add Mach8 and 8514 to loader server (#387,394, Hans Nasten).
+ 876. More 68k loader updates (#380, Alan Hourihane).
+ 875. Some updates to the S3 server (#374, Harald Koenig).
+ 874. Fix some hangs on C&T 65550/65554 (#370, David Bateman).
+ 873. Several OS/2 fixes: Add the creation of host.def if not present. Get
+ errno declared correctly. Add missing commandline options (#403,405
+ Holger Veit).
+ 872. Fix a problem in the tseng driver which was causing it to fail at >8bpp
+ with the STG1700 RAMDAC (#594, Koen Gadeyne).
+ 871. Tseng doc updates (#594, Koen Gadeyne).
+ 870. Enable shadow passwords by default for xdm on Linux-Elf.
+ 869. Fix Xrm buffer overflow in Xprint ddx (#591, Kaleb Keithley).
+ 868. Fix for incorrect handling of negative values in cfb (#586, Harald
+ Koenig).
+ 867. Fix for fontserver accessing NULL pointer (#587, Arthur Barstow).
+ 866. A better fix for change 862 (#590, Kaleb Keithley).
+ 865. Fix the incorrect resetting of the HW cursor hotx/hoty values at
+ VT switch in most servers/drivers that support HW cursor
+ (based on #582, OEyvind Aabling, #588, Dejan Ilic).
+ 864. Fix for Xlib/Xt buffer overflows which can be triggered by long
+ $LANG and related environment variables (#576, Alex Belits).
+ 863. Cards db updates (#583, Dirk Hohndel, Harald Koenig).
+ 862. Fix for NULL dereference in XtOpenApplication/XtAppInitialize.
+ This also makes these functions behave as documented (ie, exit
+ when the display open fails).
+ 861. Some man page updates.
+ 860. Refine change 856 to take into account that some forms of 8x8
+ pattern fill only need one scanline in the XAA pixmap cache
+ (#581, David Bateman).
+ 859. Remove some unneeded <locale.h> includes in libXp and XKB (libX11)
+ (#579, 580, Kaleb Keithley).
+ 858. Fix a problem that can cause xfs to crash after running for a while
+ (#578, Arthur Barstow).
+ 857. Fix a problem with xfs that meant it could be killed by interrupting
+ one of its clients (#575, Arthur Barstow).
+ 856. Disable 8x8 pattern fill when less than 8 scanlines are available
+ in the XAA pixmap cache (#566, David Bateman).
+ 855. Fix some sgml problems in fbdev.sgml (#564, Matthieu Herrb).
+ 854. Cards db updates (#548, Koen Gadeyne, #552, Matthieu Herrb,
+ #555, Harald Koenig).
+ 853. Make the TGA server us the same black/white pixel defaults as the
+ others, and make it honour the flippixels flag (#551, Alan Hourihane).
+ 852. Updates for the VGADriverDoc sample stub driver (#546, Harald Koenig).
+ 851. Fix uninitialised variables in xeyes which can cause it to crash
+ on Alpha platforms (#546, Harald Koenig).
+ 850. Fix a problem where XAA calls accel text functions with a ROP that
+ has no source by rechecking the text function when the ROP is changed
+ in the gc (#543, David Bateman).
+ 849. Fix an xterm autoconf problem (#541, Thomas E. Dickey).
+ 848. Add support for ICD2061 programmable clock in the pvga1 driver,
+ as used by Diamond Speedstar 24X cards (#539, Torsten Duwe).
+ 847. Fix XAA cap style problem with thin lines that shows up with the
+ MGA driver (#540, Radoslaw Kapitan).
+ 846. Update the Cards db for ViRGE cards (#534, Sebastien Marineau).
+ 845. PC98 doc updates (#530, Michio "Karl" Jinbo).
+ 844. Implement the Get/SetViewPort() functions in the VidMode extension
+ (these were already documented).
+ 843. Fix some client/server protocol mismatches in some newer VidMode
+ extension functions, and allow new clients to not fail with
+ servers that don't have these fixes. The extension version has
+ been bumped to 0.8.
+ 842. Allow xconsole to handle regular files (it could in our R5-based
+ releases, but this was lost when we moved to R6).
+ 841. Updates of tgetent for terminfo vs termcap for resize (#527,
+ Thomas E. Dickey).
+ 840. Add aixterm-style 16 colour support to xterm (#527, Thomas E. Dickey).
+ 839. Make sure the port number is printed in host byte order in Xserver
+ AUTH warning messages (#525, Marc W. Eichin).
+ 838. Stop xterm from setting the TERMCAP environment variable when
+ using terminfo (#523, Mark W. Eichin).
+ 837. Remove '.' from DefaultUserPath (#517, Per Fogelstrom).
+ 836. Add more ET6000-based cards to the Cards db, and make ET6000 and
+ ET4000w32i/p cards point to the SVGA server instead of the W32 server
+ (#515, Koen Gadeyne).
+ 835. Remove '-m486' from the default gcc options.
+ 834. Add detection of other variants of the Cyber9385 to the trident
+ driver and SuperProbe (Arthur Tateishi and Alan Hourihane).
+ 833. Change the SVGA server to tell DGA clients that the memory available
+ is InfoRec.videoRam rather than ChipLinearSize (which is often
+ too large).
+ 832. Cards db updates (#511, Harm Hanemaayer).
+ 831. Fix LynxOS inconsistent TERMCAP use by xterm and resize ($504,
+ Thomas Mueller).
+ 830. Fix a duplicate declaration in imConv.c that shows up when building
+ without XKB support, and remove a "Const" from the declaration
+ (#505, David A. Koontz).
+ 829. Remove all local symlinks for 'make clean' in lnxLib.rules.
+ 828. Add an autoconf configuration script for xterm. This isn't used
+ in the standard build process, but is useful when building xterm
+ standalone (#500, Thomas E. Dickey).
+ 827. Fix a problem in the RECORD server extension where the last ClientDied
+ is never flushed (#498, Kaleb Keithley).
+ 826. Fix array bounds problem in dixutils.c (#493, Kaleb Keithley).
+ 825. Fix Xserver crash in SHAPE extension (#492, Kaleb Keithley).
+ 824. Fix typos in NetBSD.cf and OpenBSD.cf (#491, Takaaki Nomura).
+ 823. Update sun.cf with the version numbers of more recent Sun ProWorks
+ compilers (#489, William Austin).
+ 822. TOG fix for the lib/X11 -xrm buffer overflow (#487, Kaleb Keithley).
+ 821. XInput doc updates (#486, Frederic Lepied).
+ 820. Fix SuperProbe's memory size detection for the ATI 264VT-B, 264GT-B,
+ 264LT and above, and fix SuperProbe's detection of the 264LT
+ (#481, Marc Aurele La France).
+ 819. New entries for the Monitors db (#478, collected by Andrew Vanderstock).
+ 818. Enable building support for the NetBSD/OpenBSD/Solaris aperture
+ drivers by default.
+ 817. Have postinst.sh optionally install a link in /usr/bin to rstartd.
+ 816. Change the name of the saved ids feature test macro in xterm to
+ be more accurate.
+ 815. Enable colour in the default XTerm app-defaults file, and include
+ the colour-related resources there.
+ 814. Update SOLX86 docs (#477, Matthieu Herrb).
+ 813. Update the Xservers to check for /dev/xsvc before /dev/fbs/aperture
+ on Solaris (#477, Matthieu Herrb).
+ 812. Fix XAA stipple ScreenToScreen colour expansion, and fix a problem
+ with stipples when ONLY_TRANSPARENCY is flagged (#476, David Bateman).
+ 811. Fix Xlib ctstowcs parser mishandling charset escape sequences in
+ COMPOUND_TEXT (#470, Kaleb Keithley).
+ 810. Fix the -ar1 and -ar2 Xserver flags breaking XKB auto-repeat (#469,
+ Kaleb Keithley).
+ 809. Add a backward-compatibility option to disable the recent XtMalloc
+ changes (#468, Kaleb Keithley).
+ 808. Bump the revision number of SuperProbe (#462, Koen Gadeyne).
+ 807. Add ICS5341 and ISC5301 SDAC/Gendac detection to SuperProbe (#462,
+ Koen Gadeyne).
+ 806. Fix negative offsets in pixmap during stipple fill (#460,
+ Radoslaw Kapitan).
+ 805. Fix the layout of the mouse protocol buttons in XF86Setup. XF86Setup
+ now requires Tk version 4.1 or later (#459, Matthieu Herrb).
+ 804. Install rstartd in /usr/X11R6/bin rather than in /usr/bin.
+ 803. Fix a DGA addressing problem in the S3 server (#457, Mark Vojkovich).
+ 802. Remove the part of the PCI config-type detection that seems to switch
+ some Neptune-based machines from type 1 to type 2.
+ 801. xtest update for OpenBSD (#455, Matthieu Herrb).
+ 800. Only show Xinput initialisation messages once (#454, Matthieu Herrb).
+ 799. Add support for the IntelliMouse protocol to xf86config and XF86Setup.
+ 798. Fix a problem in the Xservers where the DPMS timer code can cause
+ select() can get called with a negative timeout value (and get stuck
+ in an infinite loop) (#453, Van Jacobson).
+ 797. OS/2 updates (including docs) (#452, Holger Veit).
+ 796. Doc updates (#450, Matthieu Herrb).
+ 795. Fix the trident driver to make virtual resolutions work for the
+ TGUI96xx/Cyber chips and make 32bpp available to these chips too.
+ Also, update the clock code for these chips to allow higher
+ resolutions (#386, Alan Hourihane).
+ 794. Disable the svga/s3v register dumps except for xf86Verbose > 1.
+ 793. Fix the svga/s3v driver Probe() to not falsely assume a ViRGE card
+ is present in some circumstances.
+ 792. Add some new entries for the ServerFlags section to allow some
+ control of the code used to determine the PCI config type on
+ Intel platforms.
+ 791. Fix handling of the "line" parameter for the scroll-forw/scroll-back
+ actions in xterm, and add entries to the XTerm app-defaults to
+ use buttons 4 and 5 (as generated by the wheel on the IntelliMouse)
+ for scrolling.
+ 790. Add debugging messages to the PCI probe code. These are enabled
+ when xf86Verbose > 2. Also, try scanpci's method of detecting PCI
+ config type 1 when the other method fails.
+ 789. Fix DeviceButtonMotion (#437, George Sachs).
+ 788. Fix for SuperProbe dumping core on NetBSD (#433, Matthieu Herrb).
+ 787. Fix fbdev.c and update documentation (#428, Geert Uytterhoeven).
+ 786. mga/README updates (#419, Radoslaw Kapitan, #431, Guy Desbief).
+ 785. xtest fixes, and updates for Linux (Harald Koenig).
+ 784. MGA doc updates (#447, Guy Desbief).
+ 783. Fix the Xt TopLevelShell's XtNiconic resource (Sekhar Makkapati).
+ 782. Tseng doc updates (#445, Koen Gadeyne).
+ 781. Tseng doc updates (#421, Harald Nordgard Hansen).
+ 780. Change the behaviour of XtMalloc, XtCalloc and XtRealloc when
+ Malloc0ReturnsNull is set to YES so that they conform to the
+ Xt spec (#444, Kaleb Keithley).
+ 779. Fix for buffer overflows in libX11's GetDatabase(). This can be
+ used to exploit setuid programs linked against libX11
+ (#442, Harald Nordgard Hansen).
+ 778. Doc updates (#441, Takaaki Nomura).
+ 777. Doc updates (#440, Thomas Mueller).
+ 776. Modify some messages in the svga/s3v driver (#443, Harald Koenig).
+ 775. Undo change 623; the post dividers were incorrect (#435, Marc Aurele
+ La France).
+ 774. Move the Tk/Tcl include dirs after all the others in the XF86Setup
+ Imakefile to make sure they don't cause installed X headers to be
+ incorrectly used.
+ 773. Add CH8398 RAMDAC detection to SuperProbe (#418, Kurt Olsen).
+ 772. Fix an error in xterm's vt220 emulation: the DECUDK is only supposed
+ to be interpreted for _shifted_ function keys (#384, Thomas E. Dickey).
+ 771. Patch to GLX comment/example in xf86site.def (#409, Henry Worth).
+ 770. Improve handling of screen pitch for accelerated C&T driver (#407,
+ David Bateman).
+ 769. Add support for the Miro 80SV to the S3 server (#406, Harald Koenig).
+ 768. Fix bmtoa, smproxy, twm, xsm and Xprint to use mkstemp, if available,
+ to avoid the mktemp() race condition (#404, Matthieu Herrb).
+ 767. Several updates XInput: Add always core feature to mouse driver. Add zone
+ configuration for the wacom driver (TopX, TopY, BottomX, BottomY). Add
+ KeepShape option for the wacom to respect the ratio of width/height
+ |of the screen. Add multiple active zones on the same tablet. Add
+ checks not to send core button events when multiple devices control the
+ core pointer. Fix problem in the mouse driver not sending the button id
+ in extended events. (#402, Frederic Lepied).
+ 766. More modes for xf86config and XF86Setup database (#397, Koen Gadeyne).
+ 765. Fix name of GLX stub library (#389, Henry Worth).
+ 764. Renumber option flag definitions to allow more space in the various
+ categories.
+ 763. Fix problems with DGA on 4/8MB Millenniums (#390, Radoslaw Kapitan).
+ 762. Fix Mystique display problems and dim text font after exit problems
+ (#378,379, Guy Desbief).
+ 761. Rewrite clock restoring procedure for mga driver (#385, Radoslaw Kapitan).
+ 760. More modes for XF86Setup database (#372, Koen Gadeyne).
+ 759. Fix typos in NetBSD.cf (#363, Takaaki Nomura).
+ 758. Add a ModuleInit function to libxaa.a (#362, J. Kean Johnston).
+ 757. Fix a NULL dereference in xf86Config.c on OSs that don't support
+ dlopen() loading for the static servers (#361, Thomas Mueller).
+ 756. Fix a problem with references to the GLX stub libraries in
+ Xserver/Imakefile that affects building static servers
+ (#361, Thomas Mueller).
+ 755. Allow most of the extensions in Xext to be dynamically loaded (in
+ a single module) (#360, Matthieu Herrb).
+ 754. Allow the DBE extension to be dynamically loaded (#359, Matthieu Herrb).
+
+XFree86 3.9b (4 May 1997)
+ 753. Add BuildPC98Servers as an easy way to enable/disable building
+ all PC98 servers.
+ 752. Build Xvfb by default to help pick up build problems.
+ 751. Make 'makedepend' understand '-U' on the command line.
+ 750. Some fix-trackers from TOG, includes:
+ lib/Xi: missing error message (#352 -- we already had this fix)
+ lib/X11: long font paths can garbage heap (#353)
+ fix potential memory leak in xinput ProcXGetDeviceMotionEvents (#354)
+ fix unmatched quotes in comments (and other stuff?!?) (#355)
+ config updates (#356)
+ lib/X11: when IMS dies the library closes all open IMs (#357)
+ lib/X11: When doing XSetICValues and IMS returns ERROR, library core
+ dump (#358).
+ 749. Clean up the GLX for the static-linked servers (#351, Henry Worth).
+ 748. Fix SCO Open Server build problem (#348, J. Kean Johnston).
+ 747. Add an option to allow VClk1 to be used as the programmable clock
+ with C&T 65550 and 65554 chips (#346 Daniel Bischof, Andreas Heitmann
+ and Thomas Landgraf).
+ 746. Remove trailing ',' at the end of InfoRec initialisations, which
+ was hiding potential compiler warnings (#343, Koen Gadeyne).
+ 745. Replace the ChipClockScaleFactor field with ChipClockMulFactor and
+ ChipClockDivFactor to allow for non-integer factors required in
+ some cases (#343, Koen Gadeyne).
+ 744. Fix some 'make' problems that show up on NetBSD and OpenBSD, and clean
+ up BSD 4.4 -specific make stuff in the config/cf directory
+ (#342, #344, Matthieu Herrb).
+ 743. Add better error/warning messages for the aperture driver code for
+ NetBSD/OpenBSD (#341, Matthieu Herrb).
+ 742. Block choosing interleave mode for the Mystique, and set maxPixelClock
+ for the Mystique (#338, Radoslaw Kapitan).
+ 741. Add ability to set MCLK for the mga driver in XF86Config (#338, #339,
+ Radoslaw Kapitan).
+ 740. Fix some problems with XAA DELAYED_SYNC and the software cursor and
+ backing store -- new wrappers are added (#337, Sebastien Marineau).
+ 739. Re-enable HW cursor for Millennium, and implement looping over
+ MGAIdent when checking the Chipset (#336, Radoslaw Kapitan).
+ 738. Remove some assumptions about burst modes from the C&T ImageWrite
+ function (#335, David Bateman).
+ 737. Matrox Mystique driver support, which should work fine with
+ acceleration disabled (#334, Guy Desbief).
+ 736. Fix for double-height MGA hw cursor when using interlaced modes
+ (#333, Radoslaw Kapitan).
+ 735. Explicit syncing of the blitter at the end of the C&T XAA primitives
+ is no longer needed since delayed syncing is off by default
+ (#332, David Bateman).
+ 734. Use the source pitch for colour CPU to screen operations in the C&T
+ driver (#332, David Bateman).
+ 733. Fix writing the 16bpp planemask to the chip in the C&T driver
+ (#332, David Bateman).
+ 732. Stop reserving 1kb of video memory when the accelerator is disabled
+ for the Tseng driver (#331, Stuart Lamble).
+ 731. Fix Trident 96xx/Cyber series for snow on the screen and fix
+ acceleration issues (#330, #349, Alan Hourihane).
+ 730. C&T doc updates (#329, David Bateman).
+ 729. Fix a bitblt bug for 8bpp, widths 49..56 in the s3v driver (#328,
+ Sebastien Marineau).
+ 728. Add filled trapezoid support to the s3v driver (#328,
+ Sebastien Marineau).
+ 727. Add caching of often-used ViRGE registers (#328, Sebastien Marineau).
+ 726. Add hw cursor support for the SVGA s3v driver (#328, Sebastien Marineau).
+ 725. Add a new kind of XAA pixmap cache slot which is used to hold mono
+ 8x8 patterns for chips which have PROGRAMMED_BITS (#327,
+ Sebastien Marineau).
+ 724. Fix XAA pixmap cache invalidation after a VT switch (#327,
+ Sebastien Marineau).
+ 723. Fix lockup problem in SVGA s3v driver, and some cleanups (#326,
+ Harald Koenig).
+ 722. Fix MGA hw cursor not displaying after switching resolutions
+ (#325, Radoslaw Kapitan).
+ 721. Fix text colour problems for ViRGE/VX, a rectfill and bitblt bug
+ for virtual width == 2048, and avoid some more bad hardware lines in
+ the S3V server (#324, Harald Koenig).
+ 720. Move chipset independent hw-cursor stub from mga_dac3026.c to
+ mga_hwcurs.c (#322, Radoslaw Kapitan).
+ 719. Fix a build problem in osPexFont.c, and add a ModuleInit function
+ for libxf86cache.a (#321, Michael Rohleder).
+ 718. Fix a 32bpp Millennium DAC initialisation typo (#318, Radoslaw Kapitan).
+ 717. Loader support for m68k (#317, #323, Alan Hourihane).
+ 716. Fix copyright and remove RCS idents in xf86_ldext.h (#316,
+ Matthieu Herrb).
+ 715. Fix some NonTE text problems, and back out change #690 (#315,
+ David Bateman).
+ 714. Add initialisation of GlxInitVisualsPtr to loadmod.c (#313, Henry Worth).
+ 713. Don't build libX11 for BuildServers only unless building the Xnest
+ server (#312, Marc Aurele La France).
+ 712. Remove extraneous line in xf86text.c (#311, Harald Nordgard Hansen).
+ 711. Restore changes accidentally backed out of xfree86.cf in 3.9a
+ (includes #310, #313, #320, #326).
+ 710. Open /dev/tty0 instead of /dev/console on Linux to find the first
+ free VT.
+
+XFree86 3.9a (17 April 1997)
+ 709. Add delayed syncing as an optional flag for XAA. This is now
+ currently enabled only in the S3 driver (#308, Mark Vojkovich).
+ 708. Several fixes to TE and NonTE fonts. The server now passes CH06
+ drwimgstr, drwimgst16, drwstr, drwstr16, drwtxt and drwtxt16 xtest tests
+ (#305,307, Sebastien Marineau).
+ 707. Add Latin2 Type1 fonts (Peter Soos).
+ 706. Add Latin2 bdf fonts (Petr Kolar).
+ 705. Add SubsequentDashedTwoPointLine to XAA (#296, Mark Vojkovich).
+ 704. Add a Hungarian XKB symbols file (Peter Soos).
+ 703. Add support for Microsoft Intellimouse (#304, Thomas Vogler).
+ 702. Add ViRGE/VX support to SVGA/S3V server; this isn't really working, yet
+ (#299,301, Harald Koenig).
+ 701. Add memory, FIFO, and PCI retry options to SVGA/S3V server (#293,300,
+ Sebastien Marineau).
+ 700. Add support for 15bpp and 32bpp to SVGA/S3V server. 32bpp only with
+ very limited acceleration (#293,300, Sebastien Marineau).
+ 699. Only build libX11 while doing BuildServersOnly if Xnest is enabled (295,
+ Harald Koenig).
+ 698. Disable color expansion with planemask at 24bpp in chips driver (#303,
+ David Bateman).
+ 697. Fix small bug in SVGA/S3 dash line code (#302, Mark Vojkovich).
+ 696. Allow trident 96xx chips to restore text mode (#298, Alan Hourihane).
+ 695. Fix virtual resolutions for trident driver at 24bpp (#298, Massimiliano
+ Ghilardi).
+ 694. TGUI driver updates for PC98 (#297, Akio Morita)
+ 693. Fix building PC98 modules, resync PC98 Imakefile (#297, Takaaki Nomura).
+ 692. Fix ch8398 ramdac command byte for 8bpp in tseng driver (#294,
+ Krajcsovits Gyorgy).
+ 691. Fix NonTE fonts in XAA (#292,309 David Bateman).
+ 690. Disable XAA matchcommon logic to fix problem with grayed out fonts
+ (#291, David Bateman).
+ 689. Fix sis driver for 8x8 color expand pattern fill pattern flags and XAA's
+ new synching policy (#290, Xavier Ducoin).
+ 688. LynxOS updates (#289, Thomas Mueller).
+ 687. Enable 1bpp and 4bpp for the chips driver (#288, David Bateman).
+ 686. Jump version number to document that this is the branch working towards
+ XFree86-4.0.
+
+XFree86 3.2At (14 April 1997)
+ 685. Fix ImageText fallback (#287, David Bateman).
+ 684. Some fixes for NonTE text. Add FixedBase support. Add TRIPLE_BITS24BPP
+ support. Fix CPU_TRANSFER_PAD_QWORD problem. Fix possible loss of a few
+ pixels at the end of NonTE text strings (#286, David Bateman).
+ 683. Fix compile problem with USL compiler (#283, David Bateman).
+ 682. Updates to mga_reg.h for Mystique (Guy Desbief).
+ 681. Add ATT20C49x RAMDAC support for 16 and 24bpp modes to tseng driver.
+ Make ET6000 hardware cursor use closest available color instead of
+ refusing to change colors when it can't find an exact match. Fix
+ another W32i linear mode bug. Change ET6000 pixel clock limits as per
+ Tseng's recommendations (=much lower than we had before). fix a BUG in
+ the ET4000 "standard set-of-clocks" code. Use ChipClockScaleFactor.
+ (#282, Koen Gadeyne).
+ 680. Fix and re-enable 8x8 pattern color expansion (!=24bpp) for Alpine cards
+ Fix CPUToScreen color expansion for 24bpp mode, fix determining the BG
+ color in 24bpp color expansion routines (#281,285, Corin Anderson).
+ 679. Various Cirrus fixes and additions. Fix HAVE_546X() macro for Laguna
+ support. Add support for CL-GD5480. Disable Alpine XAA color expansion
+ code. Fix 32bpp Alpine mode bug. Overload {slow,med,fast}_dram options
+ to set Rambus BCLK on Laguna chips. Remove Sync()'s in laguna_acl.c.
+ Removed unnecessary, dead, and/or dumb code in cir_driver.c. Add clock
+ values for 150MHz through 229MHz dot clocks. Set clock limits correctly
+ for Laguna chips. (#280, Corey Anderson).
+ 678. Fix problem in xf86gcmisc.c that could cause a segfault (#279,
+ Mark Vojkovich).
+ 677. Fix problems with NonTE text in XAA (#278, David Bateman).
+ 676. Fix loader under SVR4.0.4 (lstat,fstat,mknod)(#277, Richard Coley).
+ 675. Speedups for dashed lines in SVGA/S3 (#276, Mark Vojkovich).
+ 674. Allow building Xnest with BuildServersOnly (#275, Marc Aurele La France).
+ 673. Fix vga16 and banked vga2 without also breaking either of the loader or
+ static servers. Remove obsolete directories and other extraneous junk.
+ Remove mi's dependence on mfb. LoaderFixups is no longer needed. Add
+ xf86InitViewport to the symbol table. Combine vga2/mfb & vga2/mfb.banked.
+ (#274 Marc Aurele La France).
+ 672. More layout cleanups in matrox driver (#273, Radek Kapitan).
+ 671. Fix LinkKit to build loader (#272, Takaaki Nomura).
+ 670. Fix some Alpha problems (#270, Robin Cutshaw).
+ 669. Add MemClk field to all drivers (#270,271 Robin Cutshaw, Sebastien
+ Marineau).
+ 668. Fix server crashes in C&T driver caused by delayed syncing (#269, David
+ Bateman).
+ 667. Fix problems with PEX modules (#268, Takaaki Nomura).
+ 666. Fix some problems in XAA benchmarks and Trident Cyber support (#266,267,
+ Alan Hourihane).
+ 665. Add Mystique to scanpci (#264, Guy Desbief).
+ 664. Fix problems with delayed syncing (#263, Mark Vojkovich).
+ 663. Fix LinkKit and cirrus driver (#262, Takaaki Nomura).
+ 662. Fix I18N bug (#261, Nagao Tadaaki).
+ 661. First steps to get loader on SCO (#260, J. Kean Johnston).
+ 660. File structure changes for mga driver (#259, Radek Kapitan).
+ 659. Add stubs to load GLX extension (#228,246, Henry Worth, Dirk Hohndel).
+
+XFree86 3.2As (09 April 1997)
+ 658. Several fixes and enhancements for the cirrus driver. Fix the crash that
+ showed up in 3.2A with MMIO on some chips at 16bpp. Enable the 8x8
+ pattern fill code for different chips. Reorganize the BitBLT feature
+ checks in the accelerated driver, and make it compatible with the new
+ delayed syncing in XAA.Fix the > 85 MHz dot clock mode on the
+ CL-GD5436/46. Detect all DRAM configurations that are possible on the
+ CL-GD5446. Add code to handle the 7555 (no detection).
+ (#258, Harm Hanemaayer).
+ 657. Fix Bresenham line bug in trident/9440 driver (#257, Alan Hourihane).
+ 656. Add trapezoid acceleration to tseng driver (disabled), disable W32 hw
+ cursor, remove redundant warning message about "Wrong Cursor Color Tried"
+ (#256, Koen Gadeyne).
+ 655. Add mga dashed lines (#255, Andrew Vanderstock).
+ 654. Add more flexible way of loading and initializing extensions (#253,
+ Matthieu Herrb).
+ 653. Fix bugs in the S3V server concerning rectfill with scan line width of
+ 2048 and with lines (#251,252, Harald Koenig).
+ 652. Add option "set_memclk" (#249, Sebastien Marineau).
+ 651. Fix hangs in svga/s3v server, fix some bugs, add planemask support to
+ most accelerated primitives and start accelerated lines (#249, Sebastien
+ Marineau).
+ 650. Fix XAA to force ROP to GXcopy for XDrawImageString (#249, Sebastien
+ Marineau).
+ 649. Change "unsigned long" to CARD32 in dashed line support (#248,
+ Mark Vojkovich).
+ 648. Add Matrox Mystique to vgaPCI.h (Guy Desbief).
+ 647. Fix building XF98_EGC (#247, Takaaki Nomura).
+ 646. Fix some problems with delayed syncing in the C&T driver (#245, David
+ Bateman).
+ 645. Add dashed line support for SVGA/S3 (#243, Mark Vojkovich).
+ 644. Add dashed line support for XAA (#242,244, Mark Vojkovich).
+ 643. Fix some fill problems in S3V server (#241, Harald Koenig).
+ 642. Several fixes to C&T driver that rearrange code in XAA FillRect code to
+ work around bug in HW cursor, add ImageWrite function, use the 8x8
+ pattern where possible to simulate a planemask, add preliminary support
+ for vga2 and vga16 and temporary fix for Syncing problems in new XAA code
+ (#239, David Bateman).
+ 641. Further LinkKit changes (#238, Takaaki Nomura).
+ 640. Small fix for LinkKit (#237, David Bateman).
+ 639. Fix twm double-frees (#236, John Hawkinson).
+ 638. Include missing patch for change 601.
+ 637. Update Compaq vgaVideoChipRec (1bpp,4bpp,15bpp,32bpp) (#234, Gerry Toll).
+ 636. Fix Linkkit (#233, Takaaki Nomura).
+ 635. Fix broken console restore for 4bpp driver (#232, Marc Aurele La France).
+ 634. Add S3 chipset override code to SVGA/S3 server (#231, Harald Koenig).
+ 633. Start converting XF86Setup to use the loader (#230, Joe Moss).
+ 632. Correct DCLK limits for S3V server (#229, Harald Koenig).
+ 631. Add STG1702 to SuperProbe (#227, Stuart Lamble).
+ 630. Small fix for syncing in XAA color expansion (#225, Mark Vojkovich).
+ 629. Resync PC98 server (#224, Takaaki Nomura).
+ 628. Add stg1702 auto probing to the tseng driver (#223,#226, Stuart Lamble).
+ 627. Fix 4bpp for PC98 (#222, Takaaki Nomura).
+
+XFree86 3.2Ar (28 March 1997)
+ 626. Remove the old driver subdirectories.
+ 625. Fix setting of CRTC[22] on VGA compatibles (#220, Marc Aurele La France).
+ 624. Fix vga16 & banked vga2; don't remap *fb's endtab. Use the correct
+ banking functions, displayWidth handling (#219, Marc Aurele La France).
+ 623. Change Mach64 to use the known extended post-divider setting on the
+ 3D Rage II (#218, Marc Aurele La France).
+ 622. Lots of changes to the SVGA/ATI driver, including 3D Rage II support,
+ memory type detection (#217, Marc Aurele La France).
+ 621. Clean up internal allocator a bit, and make it log more information
+ (when enabled) (#216, Marc Aurele La France).
+ 620. Fix misuse of UseInstalled in the .cf files for BSD derivatives.
+ Make LinkKit use the same default CCOPTIONS as the main build.
+ Remove redundancy in svr4.cf (#215, Marc Aurele La France).
+ 619. Add newer ATI chipsets to SuperProbe (#214, Marc Aurele La France).
+ 618. Fix color expansion and pixmap cache in trident driver (#212,213,
+ Alan Hourihane).
+ 617. Change XAA to delay syncing (#211, Mark Vojkovich).
+ 616. Fix OS/2 naming problem in Xserver Imakefile and XAA 8x8 pattern
+ rotations and flag checking inconsistency (#210, Sebastien Marineau).
+ 615. Add SVGA/S3V driver (#210, Sebastien Marineau).
+ 614. Add Sigma Designs REALMagic to SuperProbe (#209, Harald Koenig).
+ 613. Merge Trio64V2/Aurora64V+/PLATO changes into S3/SVGA driver (#208,
+ Harald Koenig).
+ 612. Fix building XF98_EGC (#207, Takaaki Nomura).
+ 611. Add ImageWrite to s3/svga and prepare driver for upcoming XAA changes;
+ the s3/svga server no longer does cursor blocking, users of Xqueue
+ might have to use the Option "sw_cursor" (#206, Mark Vojkovich).
+ 610. Fix 8 bit DAC handling in SVGA server (#205, Mark Vojkovich).
+ 609. Add better support for linear memory on W32i cards (#204, Koen Gadeyne).
+ 608. Add HORIZONTAL_TWOPOINTLINE to XAA (#203, Alan Hourihane).
+ 607. Add autoloading of libxf86cache to Mach32 & Mach64 server and compile
+ ServerInit() and ModuleInit() only for the LOADER (#202, Takaaki Nomura).
+ 606. Add support for Cirrus CL-GD5464BD, CL-GD5465 (#201, Corin Anderson).
+ 605. Documentation updates and improved memory bandwidth handling in tseng
+ driver (#200, Koen Gadeyne).
+ 604. ViRGE/DX support for S3V server (#199, Harald Koenig).
+ 603. Some fixes to Trio64V+ & Trio64V2 (#198, Harald Koenig).
+ 602. Recognize 1MB on ViRGE (using an illegal setting) (Alan Hourihane).
+ 601. Fix and enhance handling of unresolved symbols in loader (#196, Harald
+ Koenig).
+ 600. Fixes and Additions for XF86Setup (#194,195, Joe Moss).
+ 599. Fix SuperProbe for W32 chipsets (#191, Koen Gadeyne).
+ 598. Fix building the static S3 server (#188-190, Harald Koenig).
+ 597. Fix undefined symbols in the pex5 module (#187, Matthieu Herrb).
+ 596. Fix autoloading modules in the S3 server for PC98 (#186,197 Takaaki
+ Nomura).
+
+XFree86 3.2Aq (23 March 1997)
+ 595. Fix building static XF86_S3 (#185, Harald Koenig).
+ 594. Enable loader on OpenBSD (#184, Matthieu Herrb).
+ 593. Add missing files for NV1 (change 591).
+
+XFree86 3.2Ap (22 March 1997)
+ 592. Fix screen problems with C&T at 24bpp (#182, Nozomi Ytow).
+ 591. Add NV1 acceleration (#181, David McKay).
+ 590. Add Trio64V2 170/110/60MHz support to S3 server (#180, Harald Koenig).
+ 589. Automagic loading of modules for old S3 server (#178,179 Harald Koenig).
+ 588. Automagic loading of modules for PC98 servers (#177, Takaaki Nomura).
+ 587. Fixes to blitter and hw cursor handling in C&T driver (#176, David
+ Bateman, Egbert Eich).
+ 586. Add Elsa handling to S3/SVGA and Trio64V2/DX/GX, ViRGE/DX/GX and PLATO/PX
+ to SuperProbe, scanpci, S3, S3V and S3/SVGA servers (#174,175,
+ Harald Koenig).
+ 585. Build fix for Xprt, Xnest and Xvfb (#172, Takaaki Nomura).
+
+XFree86 3.2Ao (18 March 1997)
+ 584. Fix/add IBM RGB528 support and add ELSA eeprom detection (only
+ for IBM ramdacs right now) (#170, Harald Koenig).
+ 583. Fix linking problem of XF86_LOADER for Linux/a.out (#170,171, Harald
+ Koenig, Xavier Ducoin)
+ 582. Fix several problems with loader and static server that were caused
+ by change 567 (Dirk Hohndel).
+ 581. Fix bad 400x300 mode line (#165, Koen Gadeyne).
+ 580. Finer W32 chipset detection (#165, Koen Gadeyne).
+ 579. Tseng documentation updates (#165, Koen Gadeyne).
+ 578. Fix unresolved strlen in PEX and XIE (#164, Takaaki Nomura).
+ 577. Fix changes of NEC480 to PEGC (#163, Michio "Karl" Jinbo).
+ 576. Fix building of XF98_LOADER (#163,169, Michio "Karl" Jinbo,
+ Takaaki Nomura).
+ 575. Fix building of normal X servers for PC98 (#163, Takaaki Nomura).
+ 574. Fix building P9000 module (#160, Takaaki Nomura).
+ 573. Add S3/SVGA color expansion (#161, Mark Vojkovich).
+ 572. Fix problems with "dac_8_bit" in svga server (#159, Mark Vojkovich).
+ 571. Fix ET6000 hardware cursor (#158, Harald Nordgard Hansen).
+ 570. Changes to NetBSD + BSD Elf library configuration (#157, Chris G.
+ Demetriou).
+ 569. Fix for the SVGA/S3 hardware cursor (Xavier Ducoin).
+
+XFree86 3.2An (15 March 1997)
+ 568. Build fixes in order to get a clean compile on Linux and FreeBSD
+ (not for PC98, though). The servers still don't work quite as
+ they should.
+
+XFree86 3.2Am (12 March 1997)
+ 567. First attempt to get a universal SVGA server that statically links
+ in all drivers except those from the accel directory. Links ok and
+ seems to work at >=8bpp, but has bit ordering problems for 1,4bpp.
+ (David Dawes, Dirk Hohndel).
+ 566. Fixes for Trident Cyber chipsets (#154,155, Alan Hourihane).
+ 565. Fixes for OS/2 (more IHaveModules and drive letters in ModulePath),
+ get Mach64 to work again (#153, Holger Veit).
+ 564. Cleanups and improvements to tseng hw cursor code (#152, Koen Gadeyne,
+ Harald Nordgard Hansen).
+ 563. Add pci_retry option to tseng driver (#151, Dejan Ilic).
+ 562. Change NEC480 to PEGC, resync of SuperProbe/Imakefile (#150, Takaaki
+ Nomura).
+ 561. Add hardware cursor to MGA driver (#149, Xavier Ducoin).
+ 560. Make tseng driver handle 1/4/8bpp at runtime (#145, Koen Gadeyne).
+ 559. Make apm driver loadable (#146, Joe Moss).
+ 558. Fix some cross compilation problem for XAA on OS/2 (#144, Sebastien
+ Marineau).
+ 557. Fix some 24bpp problems for ViRGE and cfb (#144, Sebastien Marineau).
+ 556. Move cursor area to top of vidmem for ViRGE (#144, Sebastien Marineau).
+ 555. Really fix mono/Imakefile and fix PEX struct dirent problem (#143,
+ Matthieu Herrb).
+ 554. Add handling for S3-style 8x8 pattern fill to XAA; fix s3/svga
+ accordingly (#141, Mark Vojkovich).
+ 553. Fix OS/2 problems; disable cross compiling Xprt, Xvfb, Xnest (#140,
+ Holger Veit).
+ 552. Include some fix trackers, fixing problems with sunLib.tmpl, hp.cf,
+ memory leak in xdm: xdmcp.c manage(), Imake.rules, zlib 1.0.4, AltGR
+ not working in Xlib (#131,132,135-139).
+ 551. Reapply change 536 for the new drivers (#130, Mark Vojkovich).
+ 550. Enable loader for NetBSD and fix a few typos (#127-129, Takaaki Nomura).
+
+XFree86 3.2Al ( 7 March 1997)
+ 549. Fix a.out loader for FreeBSD (#126, Takaaki Nomura).
+ 548. Add the BT-848 to scanpci (#121, Dejan Ilic).
+ 547. Change the way dynamic loading of vga2. vga16, vga256 modules is done
+ (just one module per driver for all color depths, all the drivers are
+ moved to xfree86/drivers) (#122-124, Alan Hourihane, Dirk Hohndel).
+ 546. Add support for 3DLabs GLINT chipsets to scanpci and SuperProbe, start
+ working on a 2D server for Elsa Gloria L (Dirk Hohndel, Stefan Dirsch).
+
+XFree86 3.2Ak ( 4 March 1997)
+ 545. Make Mono drivers loadable and clean up some of XF86_LOADER; this
+ change replaces some of the things done in change 537 (#119, H.J. Lu).
+ 544. Fix char alignment in COFF loader as well (#120, Thomas Mueller).
+ 543. Fix short alignment in COFF loader and add missing entry to SYMENT
+ (#118, Michael Rohleder).
+ 542. Build fix for libc_wrapper.c on ISC (#117, Michael Rohleder).
+ 541. Add Module Version to Mach32 server (#117, Michael Rohleder).
+ 540. Add smarter handling of unresolved symbols in the loader (#116,
+ Sebastien Marineau).
+ 539. Fix problem in OS/2 loader (#115, Sebastien Marineau).
+ 538. Add module versioning and auto loading to S3V server (#114, Sebastien
+ Marineau).
+ 537. Change name of Screen Section to "XFree86".
+ 536. Set correct clipping rectangle for SVGA/S3 (#112, Mark Vojkovich).
+ 535. Fix a problem in trapezoid solid fill code (not sure if this fixes
+ the problems that caused change 533 to be disabled) (#110,
+ Mark Vojkovich).
+ 534. Add 'Doublescan' support to MGA driver (#109, Radoslaw Kapitan).
+ 533. Add trapezoid solid fill acceleration to MGA driver; disabled as it
+ doesn't draw correctly at this point (#109, Radoslaw Kapitan).
+ 532. Remove MgaAccelSwitch (#108, Radoslaw Kapitan).
+ 531. Improve SolidFill speed on C&T65545/6/8 (#107, Nozomi Ytow).
+ 530. Fix libc_wrapper.c build problem on SVR4 (#106, Takaaki Nomura).
+ 529. Fix VGA16 driver (#105, Thomas Mueller).
+ 528. Fix Compaq AVGA driver (#104, Ming Yu, Joseph Pfeiffer, Gerry Toll).
+ 527. Add more comments to MGA driver (#103, Radoslaw Kapitan).
+
+XFree86 3.2Aj (28 February 1997)
+ 526. Various build fixes for FreeBSD, NetBSD, Linux, Solaris (Dirk Hohndel).
+ 525. Fixes for OS/2 loader and ar code (#100, Sebastien Marineau).
+ 524. Updates to S3/SVGA driver (#99, Mark Vojkovich).
+ 523. Add SubsequentFillTrapezoidSolid to XAA (#99, Mark Vojkovich).
+ 522. First stab at getting VGA16 as loadable module; doesn't work, yet
+ (Dirk Hohndel).
+ 521. Add Mystique register definitions (#98, Guy Desbief).
+ 520. Fix unresolved symbols with loadable ati driver (#96, Thomas Mueller).
+ 519. Add module versioning (#97, Holger Veit).
+ 518. LynxOS doesn't have vfscanf (#95, Thomas Mueller).
+ 517. Fix 499 was missing. It is now included.
+ 516. Remove bogus code in xf86frect.c (#93, Harm Hanemaayer, Harald Nordgard
+ Hansen).
+ 515. Build fixes for FreeBSD (#92, Takaaki Nomura).
+ 514. Restructure RAMDAC handling in tseng driver and add 16/24bpp support
+ for STG1703 (#91, Koen Gadeyne).
+ 513. Tseng HW cursor state save/restore (#91, Dejan Ilic).
+ 512. Disable HW cursor on et4000 (#91, Koen Gadeyne).
+ 511. Fix et6000 memory probing (#91, Koen Gadeyne).
+ 510. Fix handling of PCI probe in the tseng driver (#91, Koen Gadeyne).
+ 509. Fix "double-magic" in libc_wrapper.c (#90, Holger Veit).
+ 508. Fix for ET6000 HW cursor (#89, Harald Nordgard Hansen).
+ 507. Fixes to MGA driver: remove "nolinear", allow overriding MMIO address
+ as IoBase in XF86Config, remove obsolete files (#88, Radoslaw Kapitan).
+
+XFree86 3.2Ai (25 February 1997)
+ 506. Fix libc_wrapper.c for LynxOS, where stdin/out/err isn't a valid
+ initializer (#87, Thomas Mueller).
+ 505. Updates to SiS driver: fix setting MemBase, allow some XAA functions
+ in 8bpp even without linear mode, support DPMS (#86, Xavier Ducoin).
+ 504. Disable the stream display fetch length control for Trio64V2
+ (#85, Xavier Ducoin).
+ 503. Update SuperProbe for sis86c202 and sis86c205 (#84, Xavier Ducoin).
+ 502. Allow ModulePath to have multiple elements; use heuristic to find the
+ module if only part of the exact filename is specified; allow subdirs
+ of the module directory to be searched (Dirk Hohndel).
+ 501. Change loader code so that ModuleInit is a magic function name that
+ indicates the init function for a module. ServerInit now is the function
+ used to get the initial ScrnInfoRec; change all modules to follow these
+ naming conventions (Dirk Hohndel).
+ 500. Fix missing fsetpos/fgetpos in ISC (#78, Michael Rohleder).
+ 499. Fix elfloader to recognize .data1 and .rodata1 sections
+ (#82, Steve Forsythe).
+ 498. Add readdir family of functions to libc_wrapper (#81, Holger Veit).
+ 497. Add crosscompilation support for OS/2 (#81, Holger Veit).
+ 496. Add loadable module support for P9000 (#80, Erik Nygren).
+ 495. Fix error message in loader (#79, Matthieu Herrb).
+ 494. Workaround for a bug in 68k GNU binutils (#77, Geert Uytterhoeven).
+ 493. Add new xf86_libc.h to make porting to the new style loader
+ architecture easier. Adapt PEX5 using the new header file (Dirk Hohndel).
+ 492. Fixes for a.out loader (#74-76, Matthieu Herrb).
+ 491. More fixes for libc_wrapper.c (#73, Michael Rohleder).
+
+XFree86 3.2Ah (23 February 1997)
+ 490. Some a.out loader updates for Linux/a.out (#72, Harald Koenig).
+ 489. Add support for cross compilation of modules in the Imake rules
+ (#71, Holger Veit).
+ 488. Add a subset of xf86stdio functions to libc_wrapper.c (#71, Holger Veit).
+ 487. Make the I128 driver loadable (#65,66,70, Robin Cutshaw).
+ 486. Fix et4000 driver compile problems for vga2 and vga16
+ (#69, Koen Gadeyne).
+ 485. Fix 8x8 patterns for TGUI chips (#68, Alan Hourihane).
+ 484. Fix direct reference to memset() (#67, Harald Nordgard Hansen).
+ 483. Gnu parallel make update for loadable server (#64, H.J. Lu).
+ 482. Include the summasketch support explicitly in xf86Xinput.c when
+ not using dynamic modules (#63, Christer Nilsson).
+ 481. Loader support for OS/2-style a.out (#62, Sebastien Marineau).
+ 480. Fix nested asm calls in tseng_cursor.c (#61, Takaaki Nomura).
+ 479. Add a timeout to the C&T blitter wait loop, and reset the blitter
+ when this happens (#60, David Bateman).
+ 478. Add missing imake patch for massaging the results of parse_utsname()
+ (#57, Chris Demetriou).
+ 477. Don't define DoLoadableServer yet for non-Intel Linux platforms.
+ 476. Don't refer to the PEX init function in loadmod.c when PEXEXT isn't
+ defined (as is the case on Alpha platforms) (#56, Alan Hourihane).
+ 475. Fix references to usleep on SVR4 (#61, Takaaki Nomura).
+ 474. Fix references to snprintf on SVR4 (David Dawes).
+ 473. Fix some compile problems on FreeBSD (David Dawes).
+
+XFree86 3.2Ag (19 February 1997)
+ 472. Fix Imakefiles and loader problems on OS/2 (#53, Sebastien Marineau).
+ 471. Fix problems with ISC and the Mach32 module (#55, Michael Rohleder).
+ 470. Fix Xnest and Xvfb when DoLoadableServer is YES (Dirk Hohndel).
+ 469. Clear up multiplex support on 96xx and display error message when
+ requested resolution exceeds available memory with the accelerator
+ engine (#52, Alan Hourihane).
+ 468. Let Trio64V2 use newmmio driver (#49, Tom Angert).
+ 467. First cut for ET6000 hardware cursor (#48, Dejan Ilic).
+ 466. Some xf86 wrappers (#47, Craig Groeschel).
+ 465. Convert PEX and XIE to be loadable with the new style loader
+ (Dirk Hohndel).
+ 464. Clean up configuration files to distinguish old and new style
+ loading of extensions (Dirk Hohndel).
+ 463. Add DPMS support (off mode only) to the P9000 server
+ (#9, Karl Anders Oygard).
+ 462. Add PCI probing to the P9000 server (#9, Karl Anders Oygard).
+ 461. Resync PC98 Imakefiles.
+ 460. Enable the loadable server for LynxOS AT (#46, Thomas Mueller).
+ 459. Better fix for XF86Setup compile problems (David Dawes).
+
+XFree86 3.2Af (17 February 1997)
+ 458. Fix XF86Setup/Imakefile (#45, Harald Nordgard Hansen).
+ 457. Fix xdm/Imakefile for ISC (Michael Rohleder).
+ 456. Fix problem with S3V and W32 modules (Dirk Hohndel).
+ 455. Move module rules from xf86.rules to Imake.rules, and when building
+ a module, install a link to it in xc/exports/lib/modules/ (David Dawes).
+ 454. Start Elf loader for Linux/Alpha; doesn't work, yet (#44, Alan Hourihane).
+ 453. Hide cursor in S3/SVGA when DGA is active (#43, Mark Vojkovich).
+ 452. a.out loader for module loading (#42, Matthieu Herrb).
+ 451. Extend OS support layer to cover some libc functions and update all
+ drivers to use the internal functions (Dirk Hohndel).
+
+XFree86 3.2Ae (16 February 1997)
+ 450. Add -showunresolved flag to server.
+ 449. Add sourceAddress option to xdm (#41, Christos Zoulas).
+ 448. Fix cfb8line (#40, Jeff Anton).
+ 447. Turn pixmap cache in SVGA/S3 server back on and switch over to XAA for
+ lines and segments (#39, Mark Vojkovich).
+ 446. Fix COFF header file (#38, Stuart Anderson).
+ 445. Better XKB russian keyboard support (#36, Andrey A. Chernov).
+ 444. Fix an X11R6.3 problem with SCO 5 build (#35, Alan Hourihane).
+ 443. Fixes for Trio64V2 (#35, Tom Angert, Harald Koenig, Xavier Ducoin).
+ 442. avoid nested asm calls which cause compile errors on PANIX(SVR4) (#31,
+ Takaaki Nomura).
+ 441. Resync LinkKit (#26, Takaaki Nomura).
+ 440. Fix some build problems when not using the new loader code
+ (on FreeBSD) (David Dawes).
+ 439. Stop S3 and S3V server from overwriting CR11 (#30, Harald Koenig).
+ 438. Fix banking code in S3/SVGA driver (#29, Thomas Mueller).
+ 437. Fix DPMS code for C&T (#28, David Bateman).
+ 436. Enable left edge clipping for HiQV chips (#28, David Bateman).
+ 435. Stop C&T probe from printing out messages for non C&T chips (#28,
+ David Bateman).
+
+XFree86 3.2Ad (14 February 1997)
+ 434. Merge Metro Link loader code and make all SVGA drivers and S3, S3V
+ server loadable (Metro Link, Dirk Hohndel).
+ 433. Avoid installing CVS admin files when doing 'make install' for rstart
+ (#25).
+ 432. Resync xfree98/SuperProbe/Imakefile.
+ 431. Fix for 'xset r rate' and XF86MiscSetKbdSettings() for some OSs (#24).
+
+XFree86 3.2Ac (12 February 1997)
+ 430. Fix problem with system #define Control on LynxOS (Thomas Mueller).
+ 429. FreeBSD 2.2 doesn't need libz (Takaaki Nomura).
+ 428. Another attempt at left edge clipping for HiQV chips (still disabled
+ by default) (David Bateman).
+ 427. DPMS in C&T is now enabled even when no monitor is detect (David Bateman).
+ 426. Additional fixes for 65530/35 linear addressing (untested) (Egbert Eich).
+ 425. Fix for the 16/24 bpp corruption in RIGHT2LEFT blits in the C&T driver
+ (Egbert Eich).
+ 424. Fix LinkKit and XF98_TGUI server (Takaaki Nomura).
+ 423. Reenable xsetpointer, xsetmode, xsetxkbmap in programs/Imakefile.
+ 422. Encapsulate arguments in C&T header files (Nozomi Ytow).
+ 421. Documentation updates for ET4000, mostly about 16/24/32bpp (Koen Gadeyne).
+ 420. Fix VGA2 and VGA16 that were broken in 394/395 and reenable them
+ (Koen Gadeyne).
+ 419. Improved resolution switching and 24bpp handling in S3V (Kevin Brosius).
+ 418. Matrox detection in SuperProbe (Alan Hourihane).
+ 417. Fix bug in the Type1 font code (H.J. Lu).
+ 416. Autoprobe Viper PCI and DPMI support for P9000 (Karl Anders Oygard).
+ 415. Use fill rect solid for horizontal lines on S3 (Mark Vojkovich).
+ 414. Add 8bit dac support to MGA (Mark Vojkovich).
+ 413. Add make -j support for gnu make (H.J. Lu and Craig Groeschel).
+
+XFree86 3.2Ab (11 February 1997)
+ 412. Some fixes for Linux/m68k (Geert Uytterhoeven).
+ 411. Add XAA S3 driver to the SVGA server (Mark Vojkovich).
+ 410. Add a flag argument to the ValidMode functions (Dirk Hohndel).
+ 409. Implemented (but disabled) left edge clipping for color expansion for
+ HiQV chips (David Bateman).
+ 408. 8x8 mono pattern fills for HiQV chips (David Bateman).
+ 407. DPMS support for C&T driver (David Bateman).
+ 406. Scanpci for Alpha (Robin Cutshaw).
+ 405. Fix clock clock limits for trident driver (Alan Hourihane).
+ 404. 9420/9430 acceleration - not tested, only partial, too (Alan Hourihane).
+ 403. DPMS support for the Trident driver (Alan Hourihane).
+ 402. 24/32bpp support for Trident chipsets (Alan Hourihane).
+ 401. Trident support for the Alpha platform (Alan Hourihane).
+ 400. Add DPMS to et4000 driver of the SVGA server (Harald Nordgard Hansen).
+ 399. Fixes and addition to the acceleration for W32 and ET6000 (Koen Gadeyne).
+ 398. Chrontel RAMDAC support for W32 in SVGA server (Kurt Olsen).
+ 397. Hardware Linedraw support for ET6000 and ET4000W32p (Koen Gadeyne).
+ 396. Add memory bandwidth as a concept to the W32 RAMDAC code (Koen Gadeyne).
+ 395. Move W32/ET6k clock setting functions into tseng_clock.c. This together
+ with change 394 breaks the W32 server and the et4000 driver in the
+ VGA2 and VGA16 server (all those are disabled by default for now)
+ (Koen Gadeyne).
+ 394. Move RAMDAC support from W32 server in SVGA server and added
+ accelerated 16/24/32 bpp support for ET4000/W32p (Koen Gadeyne).
+
+XFree86 3.2Aa (10 February 1997)
+ 393. Much additional acceleration for the HiQV chips (David Bateman).
+ 392. Print the PCI retry setting in MGA server (Radoslaw Kapitan).
+ 391. OpenBSD fixes (Matthieu Herrb).
+ 390. Small fix for doc naming.
+ 389. Fix 24bpp clock limit for ViRGE (Harald Koenig).
+ 388. Fix 16bpp 6554x 8x8 pattern fill problem (David Bateman).
+ 387. Fix core dump in C&T driver (Egbert Eich).
+
+XFree86 3.2A (28 January 1997)
+ 386. Updates to the OS/2 pipe xtrans code (Sebastien Marineau).
+ 385. Update the max clock for the TGUI ProVidia 968x (Alan Hourihane).
+ 384. Disable memory interleaving before restoring the text font info
+ for the MGA driver. This fixes font corruption that shows up
+ in Alpha platforms (Jay Estabrook).
+ 383. Fix some document formatting problems.
+ 382. Enable MMIO by default for TGUI chips when acceleration is enabled.
+ It can be disabled with the "no_mmio" option.
+ 381. Fix problems with the Trident driver in 16-colour mode (Alan Hourihane).
+ 380. Back out change 370 because it is obsoleted by change 373.
+ 379. Fix 369 was missing, and is now included.
+ 378. OS/2 updates (including documentation) (Holger Veit).
+ 377. Add bitblt acceleration for 16 and 32bpp for the I128 server
+ (Robin Cutshaw).
+ 376. Tseng doc update (Koen Gadeyne).
+
+XFree86 3.2y (26 January 1997)
+ 375. I128 accel fix (Robin Cutshaw).
+ 374. Update Japanese version of documentation to 3.2 (Kazuyuki Okamoto).
+ 373. Fix 8x8 pattern acceleration for ET6000 (Koen Gadeyne).
+ 372. Fix an optimisation/volatile problem with the I128 accel code
+ (Robin Cutshaw).
+ 371. Fix the clearing of video memory in the SVGA server when the linear
+ base address has been offset (Jay Estabrook).
+ 370. Disable 8x8 pattern acceleration for ET6000 (Harald Nordgard Hansen).
+ 369. Fix stippled/tiled lines (segments) (Harm Hanemaayer).
+ 368. Update the LinkKit for recent I128 server changes (Takaaki Nomura).
+ 367. Fix display of 8bit characters in xterm (when in VT100 mode)
+ (Thomas E. Dickey).
+ 366. m68k server updates (Geert Uytterhoeven).
+ 365. Matrox doc updates (Andrew Vanderstock).
+ 364. Update Mach64 docs (Kevin Martin).
+ 363. Fix a ELSA Winner 2000PRO/X-8 initialisation problem that shows up
+ after running a certain other X server (Harald Koenig).
+ 362. Fix a PC98 TGUI problem when using XAA colour expansion (Kazunori Ueno).
+
+XFree86 3.2x (23 January 1997)
+ 361. Remove some XAA debugging messages (David Bateman).
+ 360. Preliminary I128 bitblt acceleration using XAA (Robin Cutshaw).
+ 359. NetBSD doc updates (Matthieu Herrb).
+ 358. Fix a problem with specifying the chipset as "et6000" with the W32
+ server (Koen Gadeyne).
+ 357. Fix for XAA bitmap problem which showed up with the C&T driver, and
+ With this fixed, change 339 has been backed out (David Bateman).
+ 356. Update clock limits for the PC98 TGUI server (Akio Morita).
+ 355. PC98 documentation update (Akio Morita).
+ 354. Tseng doc updates (Koen Gadeyne).
+ 353. Add NO_PLANEMASK to the Tseng XAA colorexpansion flags (Koen Gadeyne).
+ 352. LynxOS doc updates (Thomas Mueller).
+ 351. Fix some unaligned access problems with pixmap data that show up on
+ Alpha platforms (Jay Estabrook).
+ 350. Fix a problem with passing the depth/weight specified on the
+ server command line in some situations (Harald Koenig).
+ 349. Add support for the S3 Aurora64V+ programmable clock, which is slightly
+ different from the Trio64 (Harald Koenig).
+ 348. Blank the screen before turning off the sync signals for the WD90C24
+ DPMS support (Brad Bosch).
+ 347. Change 341 was missing, and is now included.
+ 346. Don't accelerate XAA functions which use source bitmap data when
+ the rop is GXclear, GXnoop, and GXset (as well as GXinvert)
+ (Harm Hanemaayer).
+ 345. S3V doc updates (Kevin Brosius).
+ 344. S3 doc updates (Harald Koenig).
+ 343. Remove some experimental code in XF86Setup that was causing it
+ to fail when starting the first server (Joe Moss).
+
+XFree86 3.2w (22 January 1997)
+ 342. Update the xset man page for the DPMS additions.
+ 341. Updates to TGUI acceleration, to hopefully fix some problems that
+ show up with xtest (Alan Hourihane).
+ 340. Add recognition of some other TGUI Cyber chipset codes (Alan Hourihane).
+ 339. Enable 8x8 mono pattern fills for C&T 65545, and limit colour expansion
+ to GXCOPY_ONLY to avoid some crashes when running things like
+ xengine and xdvi (David Bateman).
+ 338. Fix various Chips & Tech display problems for 6554x, 65550 and
+ 64300 chips (Egbert Eich).
+ 337. Fix some XAA-related xtest errors (Harm Hanemaayer).
+ 336. Enable the "no_accel" flag for the ET6000 (Koen Gadeyne).
+ 335. When the "et6000" chipset is specified, use the port-probed value
+ for the membase rather than getting it from the PCI info (Koen Gadeyne).
+ 334. Tseng documentation updates (Koen Gadeyne).
+ 333. Cirrus documentation updates (Harm Hanemaayer).
+ 332. Add README.SiS (Xavier Ducoin).
+ 331. Temporary workaround for Mode_switch problems when using XKB and
+ Latin1 charset (Matthieu Herrb).
+
+XFree86 3.2v (20 January 1997)
+ 330. Added rules to use FreeBSD's sgmlfmt tool to format Linuxdoc/sgml
+ docs -- but this needs more work.
+ 329. Blank the screen before setting a DPMS mode (Leonard N. Zubkoff).
+ 328. Fix sync disabling for DPMS for the S3 (and S3V) server (Robert Wilhelm).
+ 327. Change the .name parameter of the S3V server to "S3V" (Kevin Brosius).
+ 326. Improve S3V 24bpp mode switching (still has some problems)
+ (Kevin Brosius).
+ 325. Disable 32bpp for the S3V server (not supported) (Kevin Brosius).
+ 324. Fix S3V aspect ratio problem at 24bpp (Kevin Brosius).
+ 323. Fix rotation direction of 8x8 mono patterns in XAA (David Bateman).
+ 322. XAA updates (see xaa/NOTES for details) (Harm Hanemaayer).
+ 321. Another fix for 5446 clocks higher than 85 MHz (Harm Hanemaayer).
+ 320. When a clocks line is specified in the XF86Config file for the
+ cirrus driver, ignore it rather that insisting on its removal
+ (Harm Hanemaayer).
+ 319. Remove artificial limit for LCD dot clock for Cirrus 754x chips
+ (Harm Hanemaayer).
+ 318. Fix a problem with default cirrus MMIO operation (Harm Hanemaayer)
+ 317. Improved acceleration support at 24bpp for the Ark driver
+ (Harm Hanemaayer).
+ 316. Ark documentation updates (Harm Hanemaayer).
+ 315. Enable "slow_dram" in the tseng driver for cards below W32i
+ (Koen Gadeyne).
+ 314. Fix a tseng driver typo (missing braces) which was causing linear
+ mode to incorrectly disable acceleration for the ET6000 (Dejan Ilic)
+ 313. Fix a tseng driver bug which was causing a system hang because
+ "fast_dram" wasn't completely disabled (Dejan Ilic).
+ 312. Fix a tseng driver bug which causes a server crash when the chipset
+ "et6000" is specified for the SVGA server (Koen Gadeyne).
+ 311. Some more W32i accel code, but disabled because it doesn't yet
+ work (Koen Gadeyne).
+ 310. Fix for ET6000 24bpp MULBPP optimisation (Harald Nordgard Hansen).
+ 309. Tseng documentation updates (Koen Gadeyne).
+ 308. Cirrus documentation updates (Corin Anderson).
+ 307. Updates for TGUI96xx hw cursor (8bpp, 16bpp), and PC98 TGUI card
+ list (Akio Morita).
+ 306. Fix build TGA compile problem and xdm build problem on Linux/Alpha
+ (Robin Cutshaw).
+
+XFree86 3.2u (19 January 1997)
+ 305. Only show the "extension not loaded" messages for the first
+ server generation.
+ 304. Don't allow DPMS to be switched if the Xserver's VT isn't active
+ (Leonard N. Zubkoff).
+ 303. Implement DPMS "off" support for the WD90C24, for LCD, CRT or both
+ (Brad Bosch).
+ 302. Add a missing DPMSExtension #ifdef in os/WaitFor.c (Corin Anderson).
+ 301. Fix an XAA bug with mono patterns, SCREEN_ORIGIN, and PROGRAMMED_ORIGIN
+ (Corin Anderson).
+ 300. Implement monochrome pattern fill for Cirrus Laguna chips
+ (Corin Anderson).
+ 299. Disable "fast_dram" for the ET6000 because it can cause serious
+ problems (Koen Gadeyne).
+ 298. Disable "power saving" in the Tseng driver because the current
+ way of doing it causes memory corruption (Koen Gadeyne).
+ 297. Disable linear mode and acceleration for Tseng chips that have
+ not been tested or which are not supported (Koen Gadeyne).
+ 296. Add some code to treat the ET6000 slightly differently when the
+ chipset is specified in the XF86Config file, to help the case
+ when another (disabled) PCI video card is detected (Koen Gadeyne).
+ 295. Use triple-buffering for colour expansion in the tseng driver
+ (Koen Gadeyne).
+ 294. Make some variables in the tseng driver static (Koen Gadeyne).
+ 293. Remove some asm stuff in the tseng driver, and add a C optimised
+ MULBPP calculation (Koen Gadeyne).
+ 292. Disable XAA framebuffer concurrency in the tseng driver, which
+ hides most of the text corruption problems (Koen Gadeyne).
+ 291. Man page (DPMS) and documentation (MGA) updates (Leonard N. Zubkoff).
+ 290. Fix invalid modelines in XF98Conf.cpp (Takaaki Nomura).
+ 289. Add checking of mode size against video memory requirements to the
+ Mach32 and Mach64 servers.
+ 288. Fix GXnor and GXnand ROP definitions for the TGUI driver.
+ 287. Update for Linux a.out libX11's jump_ignore (Harald Koenig).
+ 286. Fix (?) TGA server link problem.
+
+XFree86 3.2t (18 January 1997)
+ 285. Update W32 docs (Dirk Hohndel).
+ 284. Recognise "noaccel" and "slow_dram" options in the ET4000 driver
+ (Dirk Hohndel).
+ 283. Fix problem with not truncating pixel values in the MGA driver
+ (Dirk Hohndel).
+
+XFree86 3.2s (18 January 1997)
+ 282. Fix a problem with xdm's sessreg and utmp on Linux (Leonard N. Zubkoff).
+ 281. Fix a plane-enable bug for Cirrus 754x (Corin Anderson).
+ 280. Don't use teblt code for depths other than 8 for Cirrus 754x
+ chips (Corin Anderson).
+ 279. Implement programmable pattern offset using XAA, add support for
+ plane masks and fix sum bugs for Cirrus Laguna chips (Corin Anderson).
+ 278. Don't check the PCI command FIFO for Cirrus Laguna chips
+ (Corin Anderson).
+ 277. Add XAA support to the SiS driver. The old code can be reverted
+ to at runtime with the "noaccel" option (Xavier Ducoin).
+ 276. Add recognition of XAA options as valid options for the SVGA
+ server (Alan Hourihane).
+ 275. Add "please report" messages when S3 Trio64V2, Trio64UV+ or
+ Aurora64V+ chips are detected (Harald Koenig).
+ 274. Add undocumented options to XF86Config to allow a numerical ChipID
+ and ChipRev to be specified (used by the S3 and S3V servers)
+ (Harald Koenig).
+ 273. Attempt to fix false detection of RGB524 ramdac as RGB528
+ (Harald Koenig).
+ 272. Make sure x coordinate doesn't overflow into the y coordinate
+ for some MGA operations (Xavier Ducoin and Radoslaw Kapitan).
+ 271. Don't write high order CRTC vertical bits for Trident chips earlier
+ than TGUI9440AGi (Alan Hourihane).
+ 270. Fix an error in koi8-r charset switching code (Andrey Chernov).
+ 269. Disable acceleration for TGUI Cyber chips (Alan Hourihane).
+ 268. Fix register access in Cirrus 754x LCD size detection (Harm Hanemaayer).
+ 267. Add support for the "no_stretch" option for Cirrus 754x chips
+ (Harm Hanemaayer).
+ 266. Enable MMIO by default for Cirrus 543x/4x chips, and add a "no_mmio"
+ option to allow it to be disabled (Harm Hanemaayer).
+ 265. Disable PCI burst mode on the TGUI by default, but allow it to be
+ turned on with options (Alan Hourihane).
+ 264. Update max clocks for the TGUI 96xx chips (Alan Hourihane).
+ 263. Fix centre/stretch TGUI LCD problems (Alan Hourihane).
+ 262. Add Option "tgui_mclk_66" to force MCLK to 66 MHz (Alan Hourihane).
+ 261. Fix TGUI Cyber detection problems (Alan Hourihane).
+ 260. Flush MGA "direct access read cache" in MgaSync(), which fixes
+ problems reading directly from the framebuffer after accelerated
+ operations (Radoslaw Kapitan).
+ 259. XAA updates (see xaa/NOTES for details) (Harm Hanemaayer).
+ 258. Updates for LynxOS 2.5.0 (Thomas Mueller).
+ 257. Fix xterm text highlighting when the window it partly off-screen
+ (Thomas E. Dickey).
+ 256. Remove the GetSaver/SetSaver functionality from the client
+ side of the XFree86-Misc extension, but leave dummy support in
+ the server side for now to avoid breaking old clients
+ (Leonard N. Zubkoff).
+ 255. Implement hw-specific DPMS support for servers/drivers which already
+ had an old implementation, adding support for Standby mode where
+ possible, and adding a StandbyTime keyword for the XF86Config
+ file (Leonard N. Zubkoff).
+ 254. Fix some problems with the original DPMS extension behaviour
+ (Leonard N. Zubkoff).
+ 253. Possible speedup for S3V polypoint code (Harald Koenig).
+ 252. Disable C&T 65550 acceleration features that weren't present
+ in 3.2 (David Bateman).
+ 251. Fix a C&T 24bpp pattern fill problem (David Bateman).
+ 250. Make the XAA C&T code independent of the old acceleration code
+ (David Bateman).
+ 249. Recognise the Alliance AT24, but treat the same way as a 6442
+ (Joe Moss).
+ 248. Add detection for newer TGUI chipsets to SuperProbe (Alan Hourihane).
+
+XFree86 3.2r (14 January 1997)
+ 247. Use some extra XAA flags in the MGA acceleration (Radoslaw Kapitan).
+ 246. XAA updates (see xaa/NOTES for details) (Harm Hanemaayer).
+ 245. Fix DAC register for > 85 MHz mode on Cirrus 5446 (Harm Hanemaayer).
+ 244. Memory config fix for 2MB Cirrus 7543/8 and fix 754x LCD size detection
+ (Harm Hanemaayer).
+ 243. Fix a problem in Imake.rules that causes problems when using bash
+ (Leonard N. Zubkoff).
+ 242. Fix some server prototyping problems (Thomas E. Dickey).
+ 241. Detect the Trio64UV+, Trio64V2 and Aurora64V+, and handle them
+ as a Trio64V+ (Harald Koenig).
+ 240. Add preliminary support for the ELSA Winner 2000PRO/X-8 (S3 968,
+ IBM RGB528A, 8MB VRAM 250 MHz) (Harald Koenig).
+ 239. Fix retrace waits in the MGA driver (Radoslaw Kapitan).
+ 238. Enable CPUToScreen colour expansion for the TGUI driver (Alan Hourihane).
+ 237. Add an options "lcd_center" to the TGUI driver for Cyber chips
+ (Alan Hourihane).
+ 236. Some S3V updates, including combining s3dline.c and s3dseg.c,
+ moving planemask/colour conversion into a separate module,
+ add FillSolid, improve speed of s3plypt.c, and enable some
+ previously disable functions (Berry Dijk).
+ 235. Updates for ISC support (Michael Rohleder).
+ 234. Disable ExportLists for Solaris versions older than 2.5.
+ 233. Fix for C&T 8x8 pattern fills (David Bateman).
+ 232. LinkKit fix (SiS driver) (Takaaki Nomura).
+ 231. Fix for XAA colour expansion when using FIXED_BASE (Koen Gadeyne).
+ 230. ET6000 accel updates and optimisations (Koen Gadeyne).
+ 229. Add code to the MGA driver to set MCLK based on the values
+ stored in the BIOS and the memory size (Andrew E. Mileski).
+
+XFree86 3.2q (12 January 1997)
+ 228. Make makedepend recognise #warning on all OSs (since we have it
+ in shm.h).
+ 227. Add Digital's DPMS server extension (no device-specific support yet).
+ 226. Fix some compile problems on Solaris x86 2.4 with gcc (James Hawtin).
+ 225. Add prelim support for LCD stretching with the TGUI Cyber chips
+ (Alan Hourihane).
+ 224. Add support for some blitter functions to the SiS driver (not XAA
+ yet) (Xavier Ducoin).
+ 223. Fix HW cursor problems in the SiS driver (Xavier Ducoin).
+ 222. Add 15/16/24bpp support to the SiS driver (Xavier Ducoin).
+ 221. Fix problems with linear mode in the SiS driver (Xavier Ducoin).
+ 220. Programmable clock support for the SiS 205 (Xavier Ducoin).
+ 219. TGUI acceleration updates (Alan Hourihane).
+ 218. Add XAA support for the Chips & Technologies driver (David Bateman).
+ 217. Support for 555 weighting in the MGA driver (Xavier Ducoin).
+ 216. TGUI clock fix (Alan Hourihane and Massimiliano Ghilardi).
+ 215. VGA server compiler warning fixes (Thomas E. Dickey).
+ 214. LinkKit fixes (Takaaki Nomura).
+ 213. XAA updates (see xaa/NOTES for details) (Harm Hanemaayer).
+ 212. The item 203 fix was missing. It is included now.
+ 211. Modify Cirrus 754x LCD size detection (Harm Hanemaayer).
+ 210 Add support for pattern offset for the Cirrus 5446 (Harm Hanemaayer).
+ 209. Fix non-MMIO operation for the Cirrus 5446 (Harm Hanemaayer).
+ 208. Fix font cache problem introduced in 3.2p (Takaaki Nomura).
+
+XFree86 3.2p (8 January 1997)
+ 207. XAA support for the Cirrus Laguna chips (Corin Anderson).
+ 206. Modify the PF1-PF4 coding in the xterm termcap/terminfo, and add an
+ interim xterm-vt220 description to accommodate the old and new styles
+ (Thomas E. Dickey).
+ 205. Combine the coding for foreground and background colours in xterm
+ into a single byte (Thomas E. Dickey).
+ 204. Some optimisations and transparent 8x8 pattern tiling for the ET6000
+ driver (Koen Gadeyne)
+ 203. Parallel make fix for lbxproxy (Robin Cutshaw).
+ 202. LinkKit fixes (David Bateman).
+ 201. Defining XF86ExpireServer to YES in host.def allows easy enabling
+ of server expiry.
+ 200. The item 176 fix was missing. It is included now.
+ 199. Fix an Xlib problem with non-8859-1 locales (Kaleb Keithley).
+ 198. Set default hsync and vsync polarity for the MGA driver in the same
+ way as other servers (Leonard N. Zubkoff).
+ 197. Fix sync polarity in MGA driver (Radoslaw Kapitan).
+ 196. Add DGA support to the MGA driver (Mark Vojkovich).
+ 195. Some xterm cleanups (Thomas E. Dickey).
+ 194. Implement DECSTR (soft terminal reset) for xterm (Thomas E. Dickey).
+ 193. Fix some unaligned accesses in cfb16SegmentSS1RectCopy() on Alpha
+ (Harald Koenig).
+ 192. 8x8 colour expand patterns for MGA (Radoslaw Kapitan).
+ 191. Fix various compiler warnings in the S3 server (Thomas E. Dickey).
+ 190. Fix TRANS_ENABLE definition for the TGUI driver (Alan Hourihane).
+ 189. Fix a problem with the location of ident lines in the tclIndex file
+ (Joe Moss).
+
+XFree86 3.2o (5 January 1997)
+ 188. Add MIPS/Arc support to build the S3 server on OpenBSD (Per Fogelstrom).
+ 187. Split OpenBSD config support out into a new OpenBSD.cf file
+ (Matthieu Herrb).
+ 186. Split the retrace wait out into a separate function in the S3
+ server (Mark Vojkovich).
+ 185. Fix a problem with FIFO setting for Mach64 chips with an
+ integrated DAC (Kevin Martin).
+ 184. Fix a pixmap corruption problem that shows up on Mach64 [CVG]T chips
+ (Kevin Martin).
+ 183. Disallow block write mode for [CVG]T Mach64 chips (Kevin Martin).
+ 182. Fix a problem for Mach64 CT-D cards where the server writes to the
+ wrong I/O address, possibly that of another PCI device (Kevin Martin).
+ 181. Fix Rage II support in the Mach64 server (Kevin Martin).
+ 180. Add preliminary XAA support for the TGA server (Alan Hourihane).
+ 179. Don't compile Xprint/Xrm.c because it is already included in
+ attributes.c (Holger Veit).
+ 178. Various updates for OS/2 (Holger Veit).
+ 177. Fix some typing problems in xf86expblt.c (Alan Hourihane).
+ 176. Fix XAA crash for drivers that don't fill in the ServerInfoRec
+ (Harm Hanemaayer).
+ 175. Add DPMS support for the MGA driver (Leonard N. Zubkoff).
+ 174. Add sync-on-green support to the MGA driver (Leonard N. Zubkoff).
+ 173. Add support for display modes that require more than 4MB on
+ Millennium cards (Leonard N. Zubkoff).
+ 172. Enable acceleration support for the Trident 9320LCD chips
+ (Alan Hourihane).
+ 171. Add parallel make support for the lbxutil Imakefile (Robin Cutshaw).
+ 170. Fix a problem with the Xmark script (Andrew E. Mileski).
+
+XFree86 3.2n (3 January 1997)
+ 169. Fix some xaa build problems on some platforms.
+ 168. Updates to NetBSD.cf, including auto-detection of ELF (Chris Demetriou).
+ 167. Add I128 series II detection to scanpci and SuperProbe (Robin Cutshaw).
+ 166. Fix a problem in sun.cf (Robin Cutshaw).
+
+XFree86 3.2m (2 January 1997)
+ 165. Fix some problems creating Xserver links in XF86Setup (Dirk Hohndel).
+ 164. Update to R6.3 public patch 1.
+ 165. XAA updates (Harm Hanemaayer).
+ 163. Fix problems with out-of-date cirrus_acl.c (Harm Hanemaayer).
+ 162. Move all default settings from xf86site.def to xfree86.cf, and leave
+ xf86site.def containing only commented out definitions.
+ 161. Fix 'make install' problems in xkbcomp.
+ 160. Fix some ZLIB problems.
+
+XFree86 3.2l (31 December 1996)
+ 159. Tseng acceleration updates (Koen Gadeyne).
+ 158. Add config support for using the system's standard version of libz
+ when it exists (Chris Demetriou).
+ 157. Add rules for ELF shared libraries on BSD (Chris Demetriou).
+ 156. Recognise __alpha__ as AlphaArchitecture for NetBSD, and treat
+ __alpha__ the same way as __alpha is various part of the code
+ (Chris Demetriou).
+ 155. Update NetBSD config file (Chris Demetriou).
+ 154. Add code to dynamically recognise NetBSD versions in imake, and
+ add defines to allow massaging of the information returned by
+ uname Chris Demetriou).
+ 153. Fix inconsistent usage of malloc/xalloc/Xalloc in the Xprt server.
+ 152. Fix segfault at startup of clients linked with libICE on SVR4.0
+ 151. Add detection for the 250MHz ramdac used on the PowerDoc Edition
+ variant of the Matrox Millennium (Dirk Hohndel).
+ 150. Fix some compile/cpp warnings (Marc Aurele La France).
+ 149. Add support to makedepend for the '^' and '? :' operators
+ (Marc Aurele La France).
+ 148. Change GZIP to GZIPCMD in Makefiles because of a conflict with
+ an environment variable used by gzip (Marc Aurele La France).
+ 147. Fix make depend problem for xdm-shadow (Marc Aurele La France).
+ 146. Update Linux a.out support for R6.3 (Harald Koenig).
+ 145. Trident doc updates (Alan Hourihane).
+ 144. TGUI solidfill updates (Alan Hourihane).
+ 143. XC fixes.
+
+XFree86 3.2k (28 December 1996)
+ 142. Fix a problem introduced in 3.2i which causes the S3 server to crashed
+ for cards with a Ti3026.
+ 141. Updates for GNU libc on Linux, and fix some compile warnings
+ (H.J. Lu).
+ 140. Updated Russian XKB layout (Andrey Chernov).
+ 139. Workaround for KOI8-R problem in XmbLookupString(). The change
+ is to XLC_XLOCALE/koi8-r (Andrey Chernov).
+ 138. Fix some problems with the server build on Alphas (Jay Estabrook).
+ 137. Avoid a server hang in the et4000 driver (Koen Gadeyne).
+ 136. Add some more acceleration for ET4000 chips (Koen Gadeyne).
+ 135. Fix server crash when chipset "et6000" is specified (Koen Gadeyne).
+ 134. Cleanup of vgaHW.c (Marc Aurele La France).
+ 133. In the vga2 server, use the bank size, not the aperture size, to
+ decide between banked and non-banked support (Marc Aurele La France).
+ 132. Fix to FIFO depth calculation in the Mach64 server
+ (Marc Aurele La France).
+ 131. Fix some problems with the width of the pixmap used by the VGA servers
+ when the server's VT isn't active (Marc Aurele La France).
+ 130. Major ati SVGA driver updates (Marc Aurele La France).
+ 129. Fix Xserver/Imakefile problem that sometimes causes problems with
+ cfb24 not being built (Marc Aurele La France).
+ 128. Fix some compiler warnings (including a problem with the ScreenInfoRec
+ initialisation in the I128 server) (Marc Aurele La France).
+ 127. Updated PC98 TGUI support (Akio Morita).
+ 126. Add MMIO support to the TGUI driver, and remove MCLK limits
+ (Alan Hourihane).
+ 125. Add pa, Sf, Sb capabilities to the xterm termcap.
+ 124. Add Tcl interfaces for the new vidmode functions (Joe Moss).
+ 123. Complete the implementation of XF86VidModeAddModeLine() (Joe Moss).
+ 122. Some more s3init.c cleanups (Mark Vojkovich).
+ 121. XC fixes.
+ 120. More R6.3-related updates.
+
+XFree86 3.2j (26 December 1996)
+ 119. Integrate X11R6.3 (pre-release) source base.
+
+XFree86 3.2i (20 December 1996)
+ 118. Some general cleanups (Stuart Anderson, Dirk Hohndel).
+
+XFree86 3.2h (20 December 1996)
+ 117. Fix a "void * used in arithmetic" warning in lnx_video.c.
+ 116. Allow the XInput "AlwaysCore" feature to be controlled dynamically
+ via an "integer feedback" (Frederic Lepied).
+ 115. Fix TGUI clock programming problems (Alan Hourihane).
+ 114. Fix clock scaling with ClockChip "cirrus" (Harm Hanemaayer).
+ 113. Fix some compile problems on SVR4 (Takaaki Nomura).
+
+XFree86 3.2g (19 December 1996)
+ 112. Separate the function prototypes out of xf86_OSlib.h (Stuart Anderson).
+ 111. Fix for change 97 (which was causing a server startup problem)
+ (Harald Koenig).
+ 110. Enable accelerated copy plane for 24bpp in XAA.
+ 109. Fix some compile problems related to the recent Cirrus changes.
+
+XFree86 3.2f (18 December 1996)
+ 108. Enable the XAA driver for cirrus chips with a BitBLT engine and
+ the driver for Laguna family chips (Harm Hanemaayer).
+ 107. Modify the support for dot clocks > 85 MHz on the 5436/46
+ (Harm Hanemaayer).
+ 106. Fix 24bpp support for the CL-GD5430 (Harm Hanemaayer).
+ 105. Add optimized support for the CL-GD5446 to the XAA driver
+ (Harm Hanemaayer).
+ 104. When a PCI cirrus chip is detected, enable linear addressing by default
+ (Harm Hanemaayer).
+ 103. Better LCD control settings for CL-GD754x for different LCD sizes,
+ and improve 754x LCD type detection (Harm Hanemaayer).
+ 102. Modify CRT FIFO threshold setting for the CL-GD7548 (Harm Hanemaayer).
+ 101. Don't treat the CL-GD7543 as an Alpine-family chip (Harm Hanemaayer).
+ 100. XAA updates (see the NOTES file in the xaa directory for details)
+ (Harm Hanemaayer).
+ 99. Support for sharing the core pointer between multiple XInput devices
+ (Frederic Lepied).
+ 98. XAA support for the ET6000 (Koen Gadeyne).
+ 97. Fix an S3 server crash caused by an off-by-one access when displaying
+ images (Harald Koenig).
+ 96. Updates to LynxOS support for 2.5.0 (Thomas Mueller).
+ 95. Add a "pc104" XKB layout for keyboards with the extra "Windows" keys
+ (Joe Moss).
+ 94. Fix for problem clearing "chordmiddle" flag from XF86Setup (Joe Moss).
+ 93. Ti3026 clock programming updates for the MGA driver (Andrew E. Mileski).
+ 92. A general s3init.c cleanup and modularization. This isolates
+ ramdac register save/restore functions, and moves them into
+ s3ramdacs.c (Mark Vojkovich).
+ 91. Fix S3 server lockup due to vsync wait when power-saving mode is
+ active (Xavier Ducoin).
+ 90. PC98 LinkKit updates (Takaaki Nomura).
+
+XFree86 3.2e (12 December 1996)
+ 89. Fix some TGUI clock programming problems (Massimiliano Ghilardi).
+ 88. Disable <ctrl><alt><backspace> when in DGA mode (Mark Vojkovich).
+ 87. Fix some XAA-related server link problems (Marc Aurele La France).
+ 86. Fix some LinkKit problems (David Bateman and Takaaki Nomura).
+ 85. Fix some more implicit typing in function declarations (Andreas Schwab).
+ 84. Add some more ELSA cards to the Cards file (Harald Koenig).
+ 83. Fix the ICS5342 clock limit (Harald Koenig).
+ 82. Fix typos in the mga Alpha support.
+ 81. Fix a typo in the XThrStub Imakefile (H.J. Lu).
+ 80. Resync the PC98 Imakefiles (Takaaki Nomura).
+
+XFree86 3.2d (9 December 1996)
+ 79. Updates to SCO Open Server 5 support (Tom Angert and J Kean Johnston).
+ 78. Add support for Linux C library version 6 (GLIBC), and fix some
+ prototype problems (H.J. Lu).
+ 77. Add Alpha support for the mga driver (SVGA server), and generic
+ driver (Mono/VGA2 server) (Jay Estabrook).
+ 76. Fix s3ReadImageBanked() with a planemask (Harald Koenig).
+ 75. Add fast bitblt support for the mga driver (Radoslaw Kapitan).
+ 74. Allow probing of the Bt485 when an S3 968 is detected (Mark Vojkovich).
+ 73. Fix an integer overflow in the S3V server when drawing long lines
+ (Harald Koenig).
+ 72. Add detection of the Alliance ProMotion chips to SuperProbe
+ (Joe Moss).
+ 71. XAA updates (including disabling non-TE text acceleration)
+ (Harm Hanemaayer).
+ 70. Fix pixmap support in XAA (Harm Hanemaayer and Alan Hourihane).
+ 69. Update the device-specific XF86Config parsing support to report
+ unknown keyword and options (Egbert Eich).
+ 68. Add another check for the fb base address in the S3 server
+ (Harald Koenig).
+ 67. Fix some typos in the SuperProbe Imakefile (Harald Koenig).
+ 66. Update the AXP/IO Jensen support (David Mosberger).
+ 65. Add code to the S3 server to recognise the ELSA 1000PRO/X
+ (Harald Koenig).
+ 64. Fix an initialisation problem for Diamond ViRGE/VX cards, which
+ causes a lockup (Harald Koenig).
+ 63. Add support for the STREAMS processor to the S3V server (Kevin Brosius).
+ 62. Fix a problem in xf86bench.c for OS/2 (Holger Veit).
+ 61. Some mga line fixes (Radek Kapitan).
+ 60. Chips & Technologies driver updates (includes support for the
+ 64200 and 64300 WinGine series of chips, and the 65525 and 65535
+ chips) (David Bateman and Egbert Eich).
+ 59. Fix some problems with the new S3 probe code (Mark Vojkovich).
+ 58. Allow xterm to output 8-bit characters in VT100 mode (Matthieu Herrb
+ and Thomas Dickey).
+ 57. Add a return value to XF86DGAGetVideo() (Mark Vojkovich).
+ 56. Add missing write_mem_barrier definitions (Harald Koenig).
+ 55. Fix some compile problems with 3.2c.
+
+XFree86 3.2c (24 November 1996)
+ 54. Fix some potential buffer overflows in SuperProbe, and don't
+ install it setuid root (Marc Slemko).
+ 53. Add support for driver-specific parsing of the XF86Config file's
+ Device section (Egbert Eich).
+ 52. Fix S3 virtual resolution handling problem introduced in 3.2a
+ (Mark Vojkovich).
+ 51. Add a '-nolisten' flag to the X server to allow disabling of
+ a transport type (Nathaniel D. Daw).
+ 50. Update Imake.rules to do better error recovery for missing
+ directory or Makefiles (Thomas E. Dickey).
+ 49. Add REP (repeat) control for xterm (Thomas E. Dickey).
+ 48. XAA updates (Harm Hanemaayer).
+ 47. Add required changes for the PC98 servers to build using XAA
+ (Takaaki Nomura).
+ 46. Fix an unaligned access in cfb (Harald Koenig).
+ 45. Add support for Alpha Jensen (EISA) using sparse memory MMIO
+ (Martin Ostermann).
+ 44. Add working "newmmio" support for AXP (Harald Koenig).
+ 43. Add some memory barriers to the ViRGE server for AXP (Harald Koenig).
+ 42. Reset the ViRGE (but not ViRGE/VX) GE while reading the BIOS to avoid
+ text font corruption (Harald Koenig).
+ 41. Change the S3 ViRGE default base address when PCI config registers
+ can't be accessed (mainly for AXP) (Harald Koenig).
+ 40. S3 ViRGE/VX fix (Harald Koenig).
+ 39. Patch for mk68 servers (Geert Uytterhoeven).
+ 38. Add detection for the S3 Aurora64V+ and Trio64UV+ (Harald Koenig).
+ 37. Replace the truncated files in xterm/tektests with full versions
+ (from color_xterm) (Thomas E. Dickey).
+ 36. Add some more MGA line code (Andrew Vanderstock).
+ 35. Add some MGA macros, especially for access type setting
+ (Radoslaw Kapitan).
+ 34. Add MGA screen-to-screen color expansion (not used yet)
+ (Radoslaw Kapitan).
+
+XFree86 3.2b (20 November 1996)
+ 33. Fix some compilation problems with 3.2a.
+ 32. Fix DGA fb mapping for SVR4 (Richard Coley).
+ 31. Fix Hercules mono driver text bug (H.J. Lu).
+
+XFree86 3.2a (18 November 1996)
+ 30. Bump default FreeBSD version to 2.1.6.
+ 29. TGUI driver updates for PC98 (Akio Morita).
+ 28. Fix trident driver compile problem with VGA2 and VGA16 servers
+ (Takaaki Nomura).
+ 27. XAA support for the Trident driver (Alan Hourihane).
+ 26. Add VT52 emulation to xterm (Thomas E. Dickey).
+ 25. Fix a missing resets to groundstate in xterm (Denis Auroux and
+ Thomas Dickey).
+ 24. Improve overflow problem in XAA internal benchmarking
+ (Akio Morita).
+ 23. XAA support for the mga driver (Radoslaw Kapitan and the Matrox team).
+ 22. XAA support for the Cirrus BitBLT and Laguna chips (but not enabled
+ yet) (Harm Hanemaayer).
+ 21. XAA support for the ARK driver (Harm Hanemaayer).
+ 20. A new acceleration interface (XAA) for the SVGA server (Harm Hanemaayer).
+ 19. S3V s3plypt.c changed to use GE, but is slower so still disabled
+ (Harald Koenig).
+ 18. Change the S3V GE reset to avoid lockups (Harald Koenig).
+ 17. Add WaitIdle() at the end of S3V accel routines to avoid screen
+ corruption from direct fb access while the GE is still active
+ (Harald Koenig).
+ 16. Remove unsupported option flags from the S3V server (Harald Koenig).
+ 15. Allow large S3 cursors by switching to SW cursor when required
+ (Harald Koenig).
+ 14. Fix S3 frame buffer probing and memory leak (Harald Koenig).
+ 13. Fix S3 ReadImage with a planemask (when ReadImageNoMem can't be used)
+ (Harald Koenig).
+ 12. S3 line and text fixes (Harald Koenig).
+ 11. Fix DGA colourmap problems in the W32 server.
+ 10. Fix a problem with realloc usage in xrdb for some older OSs
+ (eg, SunOS 4.x) (Wolfgang Rupprecht).
+ 9. Fix an xrdb malloc problem (Michael Lipp).
+ 8. Fix xload problems on Solaris 2.5 (David Thompson).
+ 7. Fix xload problem for most BSD OSs that was introduced in 3.2, and
+ fix some problems in the BSDI-specific code (Matthieu Herrb).
+ 6. Modify the external ClockProg support to allow for programmable
+ clocks (ie, no clocks line) (Egbert Eich).
+ 5. Fix W32p rev C and rev D PCI ids (Koen Gadeyne).
+ 4. Fix a problem which causes a server crash on PANIX/PC98 when using
+ the XFree86-Misc extension (Takaaki Nomura).
+ 3. S3 server probe cleanup (Mark Vojkovich).
+ 2. Fix XF86Setup compile problem on Solaris (Robin Cutshaw).
+ 1. Patches for OS/2 support (Holger Veit).
+
+XFree86 3.2 (26 October 1996)
+1079. Fix a bug in xgc that can cause a SEGV (Takaaki Nomura).
+1078. README and FreeBSD doc updates (Takaaki Nomura).
+1077. RELNOTES updates, and some updates to the preinst and postinst scripts.
+1076. Tell xf86config about the S3V server.
+1075. Fix some typos in XF86Setup.
+1074. Fix a problem with XF86Setup that shows up when there is no
+ <Xroot>/bin/X link present.
+1073. Fix a test restoration problem with the ali driver.
+1072. NetBSD and Solaris doc updates (Matthieu Herrb).
+1071. Cirrus doc updates (Harm Hanemaayer).
+1070. Prevent Oak probe from falsely detecting some Avance Logic chips.
+
+XFree86 3.1.2Zd (24 October 1996)
+1069. Fix a problem with the TGUI driver disabling linear mode when the
+ OS doesn't support it.
+1068. Fix an image stipple problem in the S3, Mach8, Mach32 and 8514 servers
+ (Harald Koenig).
+
+XFree86 3.1.2Zc (24 October 1996)
+1067. Mach64 doc updates (Kevin Martin).
+1066. Xvfb shouldn't depend on cfb24 (Geert Uytterhoeven).
+1065. Update contrib to R6.1.
+1064. C&T doc updates (David Bateman).
+1063. Fix an image stipple problem in the S3V server (Harald Koenig).
+1062. Doc updates (Takaaki Nomura).
+
+XFree86 3.1.2Zb (23 October 1996)
+1061. Fix some NV1 problems, including clock selection problems and
+ pixel corruption problems (David McKay).
+1060. Fix some bad random() prototypes for Linux (Harald Koenig).
+1059. Fix NeqnCmd definition in NetBSD.cf (Matthieu Herrb).
+1058. Chips&Tech doc updates (David Bateman).
+1057. Cards db update for Chips&Tech (David Bateman).
+1056. Some updates to the "supported" contrib clients (Harald Koenig).
+1055. VGADriver doc updates (Stuart Lamble).
+1054. LynxOS doc updates (Thomas Mueller).
+1053. Fix a problem in mgaFillBoxSolid() (Radoslaw Kapitan).
+1052. Fix a serious probe bug in the MGA driver which causes a crash on
+ non-PCI machines (Egbert Eich).
+1051. Fix a serious probe bug in the NV driver (David Bateman).
+
+XFree86 3.1.2Za (21 October 1996)
+1052. Some documentation updates (Dirk Hohndel).
+1051. A few cleanups that have no affect on function (Harald Koenig).
+1050. Fix a problem in XF86Setup (Harald Koenig).
+
+XFree86 3.1.2Z (20 October 1996)
+1049. Update XF86_SVGA man page (Harm Hanemaayer).
+1048. Update Linux README (Dirk Hohndel).
+1047. Fix some mono/4bpp problems introduced by recent ET6000 changes
+ (Koen Gadeyne).
+1046. Updates to the Cards database (Harald Koenig).
+1045. Fix xdpyinfo core dump when the XInput extension is not available
+ (Frederic Lepied).
+1044. Fix SuperProbe mis-detection of S3 ViRGE (Harald Koenig).
+1043. S3V README (Harald Koenig).
+1042. Resync some PC98 Imakefiles (Takaaki Nomura).
+1041. Update XF86Setup card list features, and add 1152x864 video modes
+ (Harald Koenig).
+
+XFree86 3.1.2Gq (19 October 1996)
+1040. Some updates to use the native setlocale() in the GNU libc used
+ by Linux/Alpha/ELF (Ulrich Drepper, Harald Koenig).
+1039. MGA README (Andrew Vanderstock and Dirk Hohndel).
+1038. Fix REQUIREDLIBS problem with dynamic xie.so (Alan Hourihane).
+1037. Update man page versions (Takaaki Nomura).
+1036. Add xf86VTSema checks to the MGA server, move blitter init to
+ HWRestore, and wait for drawing engine before enter/leave VT
+ (Radoslaw Kapitan).
+1035. TGA and Trident doc updates (Alan Hourihane).
+1034. Remove an unused TGA server file (Alan Hourihane).
+1033. Update to the Chips&Tech screen corruption fix (Egbert Eich).
+1032. Fix a typo in the Chips&Tech driver which prevents the "hw_clocks"
+ option from working (David Bateman).
+1031. Move the SVGA 'mx' driver to after the 'chips' driver, because its
+ probe causes problems for the chips driver. Also, fix a problem
+ in the 'mx' probe where it writes to a register without first saving
+ its contents.
+
+XFree86 3.1.2Gp (18 October 1996)
+1030. Fix the cursor colour not being correctly set in 15/16/32bpp modes
+ on the CT, ET, VT and GT chips (Kevin Martin).
+1029. Change Mach64 block_write behaviour. Assume that block write mode is
+ initialised by the BIOS, but still allow it to be turned on or off
+ explicitly in the XF86Config (Kevin Martin).
+1028. Set the extended display FIFO LWM bit on the Mach64 CT-D (Kevin Martin).
+1027. Fix the retrace wait in mach64AdjustFrame() (Kevin Martin).
+1026. Delete Mach64 doublescan modes for chipsets that don't support any
+ accelerated doublescan modes (Kevin Martin).
+1025. Set Mach64 display FIFO setting to the values supplied by ATI for
+ various chipset/memory type/memory size/bpp combinations (Kevin Martin).
+1024. Fix some MGA accel problems (Radoslaw Kapitan).
+1023. FreeBSD and NetBSD doc updates (Takaaki Nomura).
+1022. Fix some Mach32 16bit font display problems (Bryan Feir).
+1021. Add support for the ICS1562 clockchip used by the DEC TGA (Harald
+ Koenig).
+1020. Make WaitQueue wait for three more free slots than requested to
+ allow a safety margin in case of coding bugs (the ViRGE will lock
+ up the PCI bus when the FIFO is full) (Harald Koenig).
+1019. S3V fixes for some XTEST errors, and remove debug and unused code
+ (Harald Koenig).
+1018. Preliminary support for the Trident Cyber 938x chipset (Alan Hourihane).
+1017. Update the max clock for the Cirrus 754x with LCD enabled, and
+ deal more gracefully when a clock line is encountered (Harm Hanemaayer).
+1016. Add/implement XF86DGAGetViewPortSize() and add an extra argument
+ to XF86DGAViewPortChanged() which indicates the number of pages
+ being used when multi-buffering (Harm Hanemaayer).
+1015. Move the setting of the XF86DGADirectColormap flag into
+ XF86DGAInstallColormap() so that apps which use this function but
+ don't explicitly set the flag will work correctly.
+
+XFree86 3.1.2Go (17 October 1996)
+1014. Add xterm-r6 entries to the xterm termcap and terminfo files. These
+ are compatible with the standard X11R6 version of xterm.
+1013. Chips&Tech driver updates, including: add an option to deal with
+ LCD panel size problems, add an option to use an 18bit bus for some
+ TFT laptops, allow imageblt to be disabled, support sync-on-green
+ for the 65550, improve some screen scrambling problems, add DGA
+ support, fix 24bpp acceleration problems, fix HW cursor colouring
+ problems, update docs (Egbert Eich, David Bateman, Nozomi Ytow,
+ Marc de Courville, Jens Mauer, Adam Sulmicki).
+1012. BlankDelay settings for ViRGE (non-VX) (Harald Koenig).
+1011. More S3V ROPs for planemask simulation for BLTs (not used yet)
+ (Harald Koenig).
+1010. S3V fix for some image ops (Harald Koenig).
+1009. LynxOS microSPARC updates (Thomas Mueller).
+1008. OS/2 updates (Holger Veit and Sebastien Marineau).
+1007. TGA server updates, including disallow interlace modes, parse /proc/pci
+ output to find the memory base address (Alan Hourihane).
+1006. Add a DGA flag (XF86DGADirectColormap) to control when the colourmap
+ is in the exclusive control of XF86DGAInstallColormap(). This allows
+ older DGA clients which don't use XF86DGAInstallColormap() to work
+ as before.
+1005. Fix mmap in libXxf86dga for FreeBSD 1.1.5.
+1004. Fix a typo in xf86writepci() which causes it to return without doing
+ anything (URATA Shuichiro).
+
+XFree86 3.1.2Gn (16 October 1996)
+1003. Fix a problem with the ospex Imakefile regarding the building of
+ a non-shared library.
+1002. Increase the listen(2) backlog value in Xtranssock.c.
+1001. VidMode extensions updates (Joe Moss).
+1000. Add QueryDirectVideo and ViewPortChanged functions to the DGA
+ extension (Harm Hanemaayer and Mark Vojkovich).
+ 999. Fix a problem where parts of lines incorrectly appear black with the
+ S3V server (Berry Dijk).
+ 998. Fix some S3V problems that show up when running xtest (Harald Koenig).
+ 997. Change MGAAdjustPitch to choose a pitch for which acceleration is
+ possible (Ansgar Hockmann).
+ 996. Fix some server compile warnings (Thomas E. Dickey).
+ 995. Set HasPoll to YES for NetBSD 1.2 and OpenBSD. This solves the
+ fundamental problem select has with the width of a fd_set
+ (Matthieu Herrb).
+ 994. Use modified ROPs and colour bit patterns to simulate the planemask
+ where possible in the S3V line code (Harald Koenig).
+ 993. Report the Wacom function/macro button as key events (Frederic Lepied).
+ 992. Initial DSP programming of Mach64 VT-B and GT-B implemented, but not
+ enabled yet (Kevin Martin).
+ 991. Mach64 CT, ET, VT, GT clock programming changed to be more accurate.
+ Previously it used integer arithmetic, now it uses floats (Kevin Martin).
+ 990. Mach64 VT-B and GT-B extra clock divisors (3,6,12) implemented
+ (Kevin Martin).
+ 989. Fix Mach64 VT-B and GT-B memory detection (Kevin Martin).
+ 988. Updates for LinkKit and SVR4 README files (Takaaki Nomura).
+ 987. Add a MGAWAITFIFOSLOTS macro for use with accel functions
+ (Andrew Vanderstock).
+ 986. Fix for MGA line colour that works at all depths (Andrew Vanderstock).
+ 985. Add a wait for retrace to the end of most Adjust functions when DGA
+ mode is active (Mark Vojkovich and Harm Hanemaayer).
+ 984. Fix a typo in XF86Setup, and change the vsync parameters of some
+ of the default monitor types (Harm Hanemaayer).
+ 983. ET6000 support for linear memory and 16/24/32bpp in the SVGA server
+ (Koen Gadeyne).
+ 982. OpenBSD no longer defines __NetBSD__ in their cpp (Matthieu Herrb).
+ 981. OpenBSD/NetBSD doc updates (Matthieu Herrb).
+
+XFree86 3.1.2Gm (13 October 1996)
+980. Set foreground colour for MGA line code (Ansgar Hockmann).
+979. Add weight 555 support for the Cirrus 5464 (Corin Anderson).
+978. Fix Cirrus HAVE546X macro to detect the 5464 (Corin Anderson).
+977. Updates to Cirrus docs and Cards database (Corin Anderson).
+976. Add detection of the ARK2000MI to SuperProbe (Harm Hanemaayer).
+975. Cirrus updates, including fix MMIO for the Cirrus 5446, update some
+ DAC register values, disallow clocks line and change max clock for
+ LCD displays (Harm Hanemaayer).
+974. Add some sanity checks for potential VT problems in the cirrus and
+ ARK drivers (Harm Hanemaayer).
+973. Fix for LynxOS microSPARC (Thomas Mueller).
+972. Update the LynxOS docs for 3.2 (Thomas Mueller).
+971. Change the various malloc/free calls in the XKB code to use the
+ XkbMalloc/XkbFree equivalents (Joe Moss).
+970. Update the Wacom driver to support the new stylus with two side
+ buttons. The second side button is reported as button 4
+ (Frederic Lepied).
+969. Update the LinkKit to build the SVGA and I128 servers, and update the
+ LinkKit README (Takaaki Nomura).
+968. DGA support for the W32 server (Koen Gadeyne).
+967. Resynch some PC98 Imakefiles (Takaaki Nomura).
+966. LinkKit updates for a PC98-only LinkKit (Takaaki Nomura).
+965. Add some missing bits to the MGA solid box fill patch (Radoslaw Kapitan).
+964. Fix a typo in SuperProbe that would result in incorrect chipset
+ reporting for some Cirrus chips (Harm Hanemaayer).
+
+XFree86 3.1.2Gl (10 October 1996)
+963. PC98 doc updates (Michio "Karl" Jinbo).
+962. Add some solid box fills to the MGA driver (Radoslaw Kapitan).
+961. Cirrus and Ark doc updates (Harm Hanemaayer).
+960. Apply 959 to the Mach32 server.
+959. Ignore clipping boxes completely to the left of right of each glyph
+ for the S3, Mach8 and 8514 servers (Hans Nasten).
+958. LinkKit fixes for PC98 (Takaaki Nomura).
+957. Fix Imakefile problem related to dynamic loading for PC98
+ (Michio "Karl" Jinbo).
+956. ViRGE/VX update (Harald Koenig).
+955. Add power_saver support to the TGA server (Alan Hourihane).
+954. Some more line/seg updates for S3V (Harald Koenig).
+953. Fix some problems with the previous S3V planemask patch (Harald Koenig).
+952. Add code to read the MGA card information from the BIOS. This
+ allows the RAMDAC type/speed to be determined (Andrew E. Mileski).
+951. Disable 24/32bpp for S3V server because it doesn't work yet.
+950. Driver for NVidia NV1 / SGS-Thomson STG2000 (David McKay).
+
+XFree86 3.1.2Gk (8 October 1996)
+949. Use cfb code in the S3V server when the planemask is non-trivial
+ (Harald Koenig).
+948. More line/seg fixes for the S3V server (Harald Koenig).
+947. Fix XORing text (and other ROPs) for the S3V server (Harald Koenig).
+946. Force 1-cycle EDO mode for the ViRGE/VX (Harald Koenig).
+945. Disable the font and pixmap caches in the S3V server (not implemented).
+944. Apply 943 to the Mach32 and S3V servers.
+943. Ignore clipping boxes completely above or below the displayed text
+ for the S3, Mach8 and 8514 servers. This improves performance
+ when a window is partly covered by a shaped window (Hans Nasten).
+942. Resync PC98 Imakefiles, and update documentation (Michio "Karl" Jinbo).
+941. Some LinkKit changes to prevent conflicts between the xf86 and xf98
+ linkkits when doing a combined build/install.
+940. Fix for keycodes/xfree98 (Takefumi Tsukada).
+939. LinkKit support for PC98 servers (Takaaki Nomura).
+938. Fix MGA 24bpp problems (Ansgar Hockmann).
+937. Fix a potential memory interleave problem and spurious warning messages
+ in the Cirrus driver (Corin Anderson).
+
+XFree86 3.1.2Gj (6 October 1996)
+936. Build PEX, XIE as dynamically loaded modules by default where it is
+ supported.
+935. Fix some S3gendac interface changes (Koen Gadeyne).
+934. Fix a lex warning for reconfig (Koen Gadeyne).
+933. Fix a ROP problem in the W32 solid fill code (Koen Gadeyne).
+932. Dynamic PEX, XIE extension support for Linux/ELF.
+931. 24bpp packed support for the MGA driver (Ansgar Hockmann).
+930. Fix the way the list of clocks is derived for the Cirrus driver
+ (Harm Hanemaayer).
+929. Fix problems with 16bpp for a 1MB Cirrus 5434 (Harm Hanemaayer).
+928. Fix for xdm indirect query for ISC (Michael Rohleder).
+927. Remove virtual size check in the mach32ValidMode (Michael Rohleder).
+926. Fix a typo in lib/Xbsd (Michael Rohleder).
+925. Fix "nolinear" mode in the MGA driver (Radoslaw Kapitan).
+924. Add memory detection to the MGA driver (Radoslaw Kapitan).
+923. Update NetBSD/OpenBSD docs (Matthieu Herrb).
+922. Add OpenBSD/mips config support (Per Fogelstrom, Matthieu Herrb).
+921. Update OpenBSD version to 2.0 (Matthieu Herrb).
+920. Updates to the S3 ViRGE line code (Harald Koenig).
+919. Updated ViRGE/VX support (Harald Koenig).
+918. TGA server shouldn't report DGA support (Alan Hourihane).
+917. Alpha-related config updates (Harald Koenig).
+916. Updates to Cirrus probing in SuperProbe (Harm Hanemaayer).
+915. Fix a Cirrus bitmap overrun problem (Harm Hanemaayer).
+914. Fix Cirrus FIFO settings for 5436/5446 (Harm Hanemaayer).
+913. Fix Cirrus HW cursor colours at 32bpp (Harm Hanemaayer).
+912. Fix 24bpp support for Cirrus 54xx (Harm Hanemaayer).
+
+XFree86 3.1.2Gi (3 October 1996)
+911. SCO updates. SCO5 is now the only supported version (there are
+ still problems to be resolved though) (J. Kean Johnston).
+910. LinkKit updates and related cleanups (Marc Aurele La France).
+909. Updated code to program the Ti3026 clock in the MGA server
+ (Andrew E. Mileski).
+908. Preliminary S3 ViRGE/VX support (Harald Koenig).
+907. Fix S3 PCI read burst disable problem (Harald Koenig)
+906. Fix SuperProbe memory reporting for the S3 ViRGE, ViRGE/VX, and
+ separately report off-screen memory (Harald Koenig).
+905. Fix MGA interleave and 32bpp problems (Radoslaw Kapitan).
+904. Fix a RD_MASK problem that shows with 928 cards (at least on some
+ PC98 servers) (Michio "Karl" Jinbo, Harald Koenig).
+903. Allow xterm to be statically linked with libtermcap on Linux
+ (Dirk Hohndel).
+902. Fix screen save/restore on VT switch for the TGA server (Alan Hourihane).
+901. Chips&Tech updates, including a fix for line acceleration
+ problems (David Bateman).
+900. VidMode extension changes/enhancements (not complete yet) (Joe Moss).
+899. S3 ViRGE solid line code (Harald Koenig).
+898. S3 ViRGE updates, including using cfb calls for non-implemented
+ functions (Harald Koenig).
+897. Fix for a line drawing problem in the Cirrus driver (Harm Hanemaayer).
+896. Ark driver updates, including fixes for FIFO settings, HW cursor at
+ 16/32bpp, virtual panning at 24bpp, and enable BitBlt acceleration at
+ 32bpp (Harm Hanemaayer).
+895. LynxOS microSPARC updates (Thomas Mueller).
+894. Add support for Japanese 106 key keyboards on PANIX. This is enabled
+ with the 'panix106' keyword in the Keyboard section (Takefumi Tsukada).
+893. README.SVR4 update (Takaaki Nomura).
+892. ValidMode function for Mach32 (Bryan Feir).
+891. Fix a Mach32 problem with VT switch screen save/restore when the
+ virtual width is less than 1024 (Bryan Feir).
+890. Updated NetBSD aperture driver (Matthieu Herrb).
+889. Allow the PEX and XIE server extensions to be built as dynamic modules
+ (FreeBSD and NetBSD so far). (Matthieu Herrb).
+
+XFree86 3.1.2Gh (29 September 1996)
+888. Replace virtualX by displayWidth where appropriate in many SVGA drivers.
+887. Fix virtual width/pitch checking/setting for the MGA driver.
+886. Solid line acceleration for the MGA driver (Dirk Hohndel).
+885. Improve the way scanline pitch restrictions are implemented for the
+ SVGA server.
+884. Set default W32 black/white pixel values the same as for the other
+ servers.
+883. Fix some W32 stipple problems (Glenn Lai).
+882. Allow "mclk" as a synonym for "s3mclk" (Harm Hanemaayer).
+881. Adjust mode timings in the ARK driver when required for 24bpp operation
+ and for HW cursor operation (Harm Hanemaayer).
+880. Some MGA driver cleanups.
+879. Fix selection of interleave mode for MGA (Ansgar Hockmann).
+878. Add "fifo_conservative" option for the ARK driver (Harm Hanemaayer).
+877. Possible fix for ICS5342 MCLK calculation in the Ark driver
+ (Harm Hanemaayer).
+876. Fix max clocks when ClockChip "cirrus" is used (Harm Hanemaayer).
+875. XF86Setup updates (see XF86Setup/CHANGELOG for details) (Joe Moss).
+874. LCD code for Cyber9320 in PC98_TGUI server (X98 core team).
+873. Fix typos in pc98_tgui.{c,h} (X98 core team).
+872. PC98 Imakefile updates (X98 core team).
+871. PC98 documentation updates (X98 core team).
+870. New Chips&Tech accelerations, including: multiple depth ImageGlyph
+ and PolyGlyph for 65545, 8bpp CopyPlane1to8 for 65545, 8bpp
+ FillRectTransparentStippled32 and FillRectOpaqueStippled32 for 65545,
+ modified simple BitBlt and Solid fill for 65550, stipple and tile
+ functions for 65550 (Egbert Eich, Xavier Ducoin, David Bateman).
+869. Chips&Tech driver fixes, including: improve stability of
+ suspend/resume, fix DSTN screens with 65550, reduce the size of
+ MMIO regions, fix PCI burst mode, disable line acceleration because
+ it can cause a server crash in rare circumstances (Egbert Eich,
+ Xavier Ducoin, David Bateman).
+868. Make the Cirrus fifo options work for the 546x chips (Corin Anderson).
+867. Support for the Cirrus 5464 (Corin Anderson).
+866. Add a hook to the SVGA server to allow drivers to specify a display
+ width (pitch) which is different from the virtual width. This
+ is required for some Cirrus chipsets (Corin Anderson).
+865. 24bpp packed pixel Cirrus support (Harm Hanemaayer and Corin Anderson).
+864. Work around a problem on NetBSD/OpenBSD where dlsym() searches for
+ the symbol in the whole executable rather than just in the modules
+ specified (Matthieu Herrb).
+863. Add an X server and config/imake support for LynxOS microSPARC 2.4.0
+ (Thomas Mueller).
+862. Remove stale fb shared memory before dying on LynxOS (Thomas Mueller).
+861. Work around a popen/pclose bug on LynxOS in the server XKB code
+ (Thomas Mueller).
+860. Work around a bash problem on LynxOS which affects rstart/Imakefile
+ (Thomas Mueller).
+859. Solid vertical and horizontal lines for the S3 ViRGE server (Berry Dijk).
+858. Fix max clock for TGA (Alan Hourihane).
+857. Fix for TGA VT switching problems (Alan Hourihane).
+856. Add code to detect the ViRGE/VX (Dirk Hohndel).
+
+XFree86 3.1.2Gg (26 September 1996)
+855. Preliminary support for the Matrox Millennium (MGA 2064W)
+ (Radoslaw Kapitan, Andrew Vanderstock, Dirk Hohndel).
+
+XFree86 3.1.2Gf (25 September 1996)
+854. Mach32 documentation (Bryan Feir).
+853. Improve Mach32 ramdac probing in SuperProbe (Bryan Feir).
+852. Fix xf86writepci() prototype (Alan Hourihane).
+851. TGA server and documentation updates (Alan Hourihane).
+850. Fix missing argument in the QueryBestSize functions in the SVGA server
+ (Harm Hanemaayer).
+849. Another fix for usage of XInput defines, and make initext depend on
+ ICONFIGFILES (Marc Aurele La France).
+848. Improve reliability of detecting Mach64 cards in SuperProbe, the
+ Mach64 server and the ati driver (Marc Aurele La France).
+847. Complete s3im.c for s3_virge (Harald Koenig).
+846. Fix s3_virge framebuffer detection (Harald Koenig).
+845. Fix s3_virge compile problems when using a compiler other than gcc.
+844. Missing patch to vgaCmap.c for item 842 (Harm Hanemaayer).
+
+XFree86 3.1.2Ge (24 September 1996)
+843. Add Trio/ViRGE clock support to the "s3_svga" driver. This is still
+ incomplete, and for development use (Harald Koenig).
+842. Add vgaGetInstalledColormaps() and support for 8-bit colour components
+ to the SVGA server (Harm Hanemaayer).
+841. ARK driver updates, including: fix problems with BitBlts at 24bpp,
+ fix hw cursor at 8bpp, fix some ZoomDAC problems, and add support
+ for 8-bit colour components (dac_8_bit) at 8bpp (Harm Hanemaayer).
+840. Fix some typos in compiler.h (Harald Koenig).
+839. Initial ViRGE s3im.c, and remove unneeded s3linear.h and bank switching
+ (Harald Koenig).
+838. Fix some XInput and XKB defines (Marc Aurele La France).
+837. LinkKit fixes (Marc Aurele La France).
+836. Add ARK Logic chipset detection to SuperProbe (Harm Hanemaayer).
+835. Fix a typo in xkbcomp/symbols/de (Thomas Mueller).
+
+XFree86 3.1.2Gd (23 September 1996)
+834. Rename ViRGE driver from s3_generic to s3_virge (Dirk Hohndel).
+833. Don't reference uninitialised s3MmioMem in ViRGE server (Harald Koenig
+ and Dirk Hohndel).
+832. Don't do S3 bug tests for 928 and earlier (Harald Koenig).
+831. ViRGE fixes, including BITBLT and text clipping (Harald Koenig).
+830. Updates to the Cards file for Cirrus and Ark (Harm Hanemaayer).
+829. xf86config updates, including 24bpp support, and making "virtual"
+ optional (Harm Hanemaayer).
+828. Fix trident probe so that it restores all registers it touches
+ (Harm Hanemaayer).
+827. ARK driver updates, including: auto-detect the ZoomDAC and print out
+ the RAMDAC type, use DRAM bandwidth for CRT FIFO setting, don't allow
+ 5-5-5 weight for 16bpp with 1000PV and ZoomDAC, and add sanity check
+ for off-screen CopyWindow (Harm Hanemaayer).
+826. Fix a typo in the TGA server that could cause it to think it has found
+ a valid mode (Alan Hourihane).
+825. Don't try to use -ldl for XF86Setup on non-ELF Linux (Harald Koenig).
+824. Add "slow_dram" option for the W32 server to fix some problems with
+ older cards (Dirk Hohndel).
+
+XFree86 3.1.2Gc (22 September 1996)
+823. XKB data file updates for jp106/jp (Takaaki Nomura).
+822. S3 Virge server (preliminary version) (Harald Koenig).
+821. ARK driver updates, including basic BitBlt acceleration, improved
+ ramdac support, experimental 24bpp support, and max dot clocks take
+ the memory clock into consideration (Harm Hanemaayer).
+820. Minor xdm and xterm changes to allow them to compile on FreeBSD 1.1.5.
+819. Fix Trident probe in SuperProbe so that it doesn't corrupt ET6000
+ display (Koen Gadeyne).
+818. Fix Sierra 1502X RAMDAC handling in the W32 server (Dirk Hohndel).
+817. TGA server for Alpha machines. Not accelerated at this stage
+ (Alan Hourihane).
+816. SuperProbe update for ELSA Gloria (Harald Koenig).
+815. Fix/add 15/16bpp support for S3 805i with AT&T 20C498 (Hermann Lauer).
+814. Improve S3 clipped text performance (Harald Koenig).
+813. Fix a typo in xkbcomp/rules/xfree86 (Joe Moss).
+812. Add detection for the Cirrus 7548, and treat it like the other 754x
+ chips (Harm Hanemaayer).
+811. Change xterm valid-response code in DECRQSS from 0 to 1 to match a
+ real VT420 terminal (Thomas E. Dickey).
+810. Add a resource 'decTerminalID' to control the reporting level of
+ xterm (e.g., VT100, VT220), and use it to implement/correct the
+ DA1, DA2 and DECRPTUI reports (Thomas E. Dickey).
+809. Fix xterm restoration of color for bold/underline color mode
+ (Thomas E. Dickey).
+
+XFree86 3.1.2Gb (15 September 1996)
+808. Update PC98 Imakefiles (Michio "Karl" Jinbo).
+807. Fixes for problems with the PC98 TGUI server (Michio "Karl" Jinbo).
+806. Fix/workaround to avoid DGAInstallColormap() being affected by
+ window managers.
+805. Fix some problems related to the change in the xf86scanpci() interface.
+
+XFree86 3.1.2Ga (14 September 1996)
+804. Implement s3ValidMode() (Mark Vojkovich).
+803. Modify the ValidMode interface in preparation for some VidMode extension
+ changes.
+802. Fix a problem with the XOpenDisplay buffer overflow fix (item 734 below)
+ (X Consortium, Kaleb Keithley).
+801. Fix FIFO setting for Cirrus Alpine (543x, 5446) cards with 1MB
+ (Harm Hanemaayer).
+800. Modify Cirrus asm code to allow PCI burst accesses (Harm Hanemaayer).
+799. Change default for MvCmd to 'mv -f'.
+798. Redo the xf86PCI code, based on that in FreeBSD-current.
+797. Update xf86PCI code to deal with PCI bridges and multi-function
+ devices (Mihoko Tanaka).
+796. Fix a problem with the Sigma L-View driver (and presumably the same
+ problem in the HGC1280 driver (Norbert Berzen).
+795. Add a "Sundeadkeys" XKB variant for European keyboards.
+794. Change the "es" XKB symbols to match a Spanish keyboard (Jon Tombs).
+793. Update Cards database.
+792. Fix panning problem with some Cirrus cards (Corin Anderson).
+791. Map the S3 MMIO area separately (Harald Koenig).
+790. Don't allow S3 newmmio to be selected for chips that don't support
+ it (Harald Koenig).
+789. Fix for Linux/m68k frame buffer device (Geert Uytterhoeven).
+788. Fix detection of some SiS chips.
+787. Turn on 32-bit mode for TGUI chips. This allows PCI burst to be
+ turned on by default. (Alan Hourihane).
+786. Disable 16bpp for the TGUI9320LCD since it doesn't work (Alan Hourihane).
+785. Fix ET6000 problems with the VGA16/Mono servers (Koen Gadeyne).
+784. Speedups for the W32 arc and teblt8 code (Glenn Lai).
+783. Fix W32 line-drawing using the wrong ROP for horizontal and vertical
+ lines (Koen Gadeyne).
+782. Add a new xdm access control keyword "NOBROADCAST" to disable answering
+ broadcasts from specified hosts (Kimmo Suominen).
+781. Make xf86config run the correct server by name rather than trying
+ to run 'X' (Holger Veit).
+780. Change default "gb" XKB symbols (James Hawtin).
+779. Config and documentation updates for LynxOS (Thomas Mueller).
+778. Update XF86Setup's device list for LynxOS (Thomas Mueller).
+777. Fix compile problem when XINPUT isn't defined (James Hawtin).
+776. XF86Setup needs to be linked with -ldl on Solaris (James Hawtin).
+
+XFree86 3.1.2G (3 September 1996)
+775. Fixes for some NECS3 server problems (Naofumi Honda).
+774. Fix some XF86Setup typos.
+773. OS/2 updates (Holger Veit).
+
+XFree86 3.1.2Fc (3 September 1996)
+772. XF86Setup updates (see XF86Setup/CHANGELOG for details) (Joe Moss).
+771. PCI detection for the Alliance ProMotion 6422 (Kent Hamilton).
+770. Documentation updates (Dirk Hohndel, Matthieu Herrb).
+769. Updates for OpenBSD, including support for recent changes to the
+ console drivers (Matthieu Herrb).
+768. Need rint() for ISC and Lynx (Michael Rohleder).
+
+XFree86 3.1.2Fb (1 September 1996)
+767. S3 support for the Diamond SS2410 RAMDAC (eriks).
+746. Fix resize on Linux (for terminfo) (Rik Faith).
+745. Updates to Cyrillic fonts (Andrey Chernov).
+
+XFree86 3.1.2Fa (31 August 1996)
+744. Fix xterm's handling of SGR 22, 24 and 25 in combination with colorUL
+ and colorBD resources. Also noted & fixed reset of colored
+ underline/bold with SGR 0 (Thomas E. Dickey).
+743. Fix a typo in the xterm termcap (Thomas E. Dickey).
+742. Don't allow the "fb_debug" option when newmmio is used (Harald Koenig).
+741. Make sure s3Port59/s3Port5A are initialised before s3Init() is called
+ (Harald Koenig).
+740. Force 64MB alignment of linear FB, even when MemBase is given in
+ the config file (Harald Koenig).
+739. Disable newmmio when "nolinear" is specified, or when linear memory
+ mapping isn't available (Harald Koenig).
+738. Fix C&T driver printing out a line in its probe in cases where a
+ C&T chip hasn't been detected.
+737. Driver for the Alliance ProMotion 6422 (Alliance Semiconductor, and
+ Kent Hamilton).
+736. Make the Ark SVGA driver detect the ARK2000MT, and treat it as an
+ ARK2000PV.
+735. Updates for SCO OpenServer 5 support (J. Kean Johnston).
+734. Fix for a buffer overflow problem in XOpenDislpay (libX11)
+ (X Consortium, Kaleb Keithley).
+733. Some imake/config updates (Dirk Hohndel).
+732. Add a '-nolock' server command line option to disable the X server
+ locking (Roger Wolff).
+731. Scanpci updates: Check general pci-pci bridges, add some more
+ vendor and device IDs, and add a '-f' flag to print out the full
+ information -- otherwise just print the vendor/device name
+ (Mihoko Tanaka).
+730. Updates for ISC (Michael Rohleder).
+729. Fix typo in XF86Setup/mouse.tcl (Thomas Mueller).
+728. Fix malloc problem in TLI xtrans code (Joe Moss).
+727. Fix some WaitQueue problems with the S3 server (Naofumi Honda,
+ Takaaki Nomura, Harald Koenig).
+726. Fix for display problem with Trio64V+ at 16bpp (Harald Koenig).
+725. Fix clock limit arrays for Cirrus 754x chip (Corin Anderson).
+724. Add a "DefaultColorDepth" keyword for the Screen section of the
+ XF86Config (Dirk Hohndel).
+723. Fix problem using non-linear mode with TGUI chips (Alan Hourihane).
+722. Turn off PCI burst write by default for TGUI chips.
+
+XFree86 3.1.2F (27 August 1996)
+721. Update the QuickStart guide with details about using XF86Setup (Joe Moss).
+720. Some XF86Setup updates (Joe Moss).
+719. Avoid a possible malloc/free problem in the xtrans TLI code (Joe Moss).
+718. Some Linux a.out lib updates for libX11, libXt (Harald Koenig).
+717. Fix 32bpp S3 newmmio problem (Harald Koenig).
+
+XFree86 3.1.2Eo (26 August 1996)
+716. Disable 24bpp packed mode in S3 server because it doesn't work properly
+ yet (Harald Koenig).
+715. Don't use newmmio S3 driver by default on Alpha architecture (or
+ for ISC) (need to specify it explicitly in XF86Config) (Harald Koenig).
+714. Fix some incorrect printf-style arguments in xkbcomp (Thomas E. Dickey).
+713. Fix compiler warnings, including uninitialised variables, missing
+ prototypes, etc (Thomas E. Dickey).
+712. XF86Setup updates (Joe Moss).
+711. Fix for some potential buffer overrun problems in libXt and libX11 that
+ can lead to security holes.
+
+XFree86 3.1.2En (25 August 1996)
+710. Build/install the xkbui library regardless of whether XF86Setup is
+ being built.
+709. Fix lots of compiler warnings and related problems when building on
+ Alpha (Richard Henderson).
+708. Fix missing function prototype problem in libXi that causes problems
+ on Alpha platforms (Richard Henderson).
+707. XF86Setup updates.
+
+XFree86 3.1.2Em (24 August 1996)
+706. Swap acute and apostrophe keys in de(nodeadkeys) (Michael Rohleder).
+705. ISC documentation updates (Michael Rohleder).
+704. Chips & Tech documentation update (Egbert Eich).
+703. Chips & Tech driver updates, including a fix for a 65545 PCI problem,
+ and a hack/option for a suspend/resume problem (Egbert Eich).
+702. Major updates to XF86Setup (Joe Moss).
+701. Updates to the Cards database (various).
+700. ATI (SVGA) driver update (Marc Aurele La France).
+699. Cards file update for AGX (Henry Worth).
+698. Fix for a BIOS initialisation problem on some VideoLogic (S3) cards
+ (Harald Koenig).
+697. Fix some 32bpp problems with S3 newmmio (Harald Koenig, Bernd Lind).
+696. Fix some PCI lockups when using S3 newmmio mode (Harald Koenig).
+
+XFree86 3.1.2El (23 August 1996)
+695. NetBSD/OpenBSD doc updates (Matthieu Herrb).
+694. Fix typo in rules/xfree86 (Joe Moss).
+693. Fix some virtual desktop scrolling bugs with the CL-GD5462 in the
+ Cirrus driver (Corin Anderson).
+692. Set BSD (syscons/pcvt) keyboard to K_RAW after establishing the tty
+ settings (was done in the opposite order) (Naofumi Honda).
+691. Fix PCVT_SUPPORT in BSD xf86KbdOn/Off functions (Naofumi Honda).
+690. Add correct handling of PCI connect/disconnect for the PC98 S3 968
+ server (Naofumi Honda).
+689. Fix PCI probing for PC98 machines (Michio Jinbo).
+688. Fix mask used for TGUI fb address when membase is supplied (Michio Jinbo).
+687. Add an xterm option/resource to allow text selection to be shown
+ differently -- ie, only highlight the characters selected when selecting
+ beyond the end of a line (Thomas E. Dickey).
+686. Fix PCI base address for S3 868/968, and newmmio fixes (Harald Koenig).
+685. Fix problem with memory allocation in XKB that could cause the server
+ to crash (Joe Moss).
+
+XFree86 3.1.2Ek (21 August 1996)
+684. Fixes for m68k support (Geert Uytterhoeven).
+683. Naming changes for m68k servers and config options (Geert Uytterhoeven).
+682. Update SuperProbe to identify the amount of memory for a 65550/54,
+ and fix detection of 65545 (David Bateman).
+681. Fix for 65545 PCI problems in the C&T driver (Egbert Eich).
+680. resync os2_select.c (Holger Veit).
+
+XFree86 3.1.2Ej (20 August 1996)
+679. Fix install problem when xkbcomp is linked against shared libs.
+678. Prevent server exit if the mouse device is changed to something
+ unsuitable (Joe Moss).
+677. XF86Setup updates (Joe Moss).
+676. Update XF86Config man page and sample XF86Config file for XKB changes
+ (Joe Moss).
+675. LinkKit fixes (David Bateman).
+674. Chips & Tech driver updates (David Bateman and others?).
+673. xterm bug fixes (Thomas E. Dickey).
+672. PCI probe fix for S3 server (Harald Koenig).
+671. Support for new MMIO style for 868/968/Trio64V+, and MMIO support
+ (with optimised use of memory barriers) for Alpha/AXP. This currently
+ has problems at 32bpp (Bernd Lind, Harald Koenig).
+670. Use POSIX termios for xterm for all Linux systems (Richard Henderson).
+669. Generalise mmap access to DENSE I/O memory for Alpha (Richard Henderson).
+668. 32/64 bit cleanup, especially in server's XIE code (Richard Henderson).
+667. Config updates for Linux/Alpha (Richard Henderson).
+666. Updates for OS/2 (Holger Veit).
+665. Fix problems building XF86Setup with BuildServersOnly set to YES.
+
+XFree86 3.1.2Ei (18 August 1996)
+664. Fix some PC98 Imakefile problems (Michio "Karl" Jinbo).
+663. Linux/m68k support (Geert Uytterhoeven, Martin Schaller, Gary Henderson).
+662. Change the S3 server's handling of situations where mode choices
+ cause problems. It is now less likely to exit in these situations.
+661. Add a -bestRefresh command line option to the X servers to change
+ the mode selection to pick the mode with the best refresh rate when
+ multiple modes of the same name are available.
+660. XF86Setup updates (see XF86Setup/CHANGELOG) (Joe Moss).
+
+XFree86 3.1.2Eh (14 August 1996)
+659. Update Cyrillic fonts (Andrey Chernov).
+658. Add support for the CL-GD5462 to the cirrus driver, and update
+ documentation for recent cirrus driver changes (Corin Anderson).
+657. XF86Setup updates (Joe Moss).
+656. Fix some LynxOS-related typos in the config (Thomas Mueller).
+655. Add a man page for the DGA extension.
+
+XFree86 3.1.2Eg (14 August 1996)
+654 Update Japanese docs (Michio "Karl" Jinbo).
+653 Add XF98_GA968 server for GA-968V4/PCI(S3 968) (Michio "Karl" Jinbo).
+652. Bring the PC98 tree into sync with the main tree, and add XF86Setup
+ (Michio "Karl" Jinbo).
+651. Fix problems with 32bpp sparse mode that were introduced in 3.1.2Eb.
+ Need to check that this fix works OK with 24bpp packed mode.
+650. Fix some compiler warnings (Thomas E. Dickey).
+649. Mods to ct_driver.c so that it will compile on SVR4.0 (no nested
+ asm calls, and work around a code generation problem).
+648. Fix some problems with mouse changes in 3.1.2Ef (Joe Moss).
+
+XFree86 3.1.2Ef (13 August 1996)
+647. ET6000 support for the SVGA and W32 servers. The support in the
+ W32 server is accelerated (Koen Gadeyne).
+646. Add support to xterm for most vt220 and vt320 terminal features
+ (Thomas E. Dickey).
+645. Support for I128 series II cards (Robin Cutshaw).
+644. Wacom driver updates (Frederic Lepied).
+643. Support for core motion history management through mi (Frederic Lepied).
+642. Improved integration of mouse with XInput (Frederic Lepied).
+641. Major updates to XF86Setup (Joe Moss).
+640. Update to latest version of XKB.
+639. Fix broken 32bpp sparse support in S3 server (there are still some
+ problems though, and they are also seen with the Mach64 server).
+
+XFree86 3.1.2Ee (11 August 1996)
+638. Implement ech and ech1 terminal capabilities for xterm (Thomas E. Dickey).
+637. Add blinking cursor support for xterm (disabled for now)
+ (Thomas E. Dickey).
+636. Fix a PEX font struct being freed twice (Richard Henderson).
+635. Make xterm tolerant of applications that allocate the whole colour map
+ (by disabling colour mode if the ANSI colours are set with non fg/bg
+ values) (Thomas E. Dickey).
+634. Allow ISO colour support to be #ifdef'd out in xterm. This allows
+ xterm's memory usage to be significantly reduced when colorMode is not
+ enabled (Thomas E. Dickey).
+633. Reduce flickering during resize for ReverseVideo in xterm
+ (Thomas E. Dickey).
+632. Fix xterm core dump problem on IRIX 5.2 (Thomas E. Dickey).
+631. Update scanpci to detect the #9 I128 series II (Robin Cutshaw).
+630. Preliminary Mach32 ramdac support updates (Bryan Feir).
+629. Document new xterm control sequences (Thomas E. Dickey).
+628. Fix problem introduced in 3.1.2E with software cursor on some non-i386
+ platforms (Thomas E. Dickey and Thomas Mueller).
+627. Support for SCO Open Server 5 (J. Kean Johnston).
+626. Add detection of the S3 ViRGE chip to SuperProbe (and scanpci), and
+ use PCI probing for S3 chipset detection in SuperProbe where appropriate
+ (Harald Koenig).
+625. Add detection of newly supported C&T chips to SuperProbe.
+624. Add a TextClock keyword for the XF86Config to fix problems restoring
+ the text clock with the chips & tech driver (Egbert Eich).
+623. Updates for the LinkKit (Egbert Eich).
+622. Significantly improved driver for Chips and Technologies chipsets.
+ Includes linear addressing (65530 and above), 16/24bpp (65540 and above),
+ programmable clock support (65540 and above), HW cursor support (65545
+ and above), BitBLT acceleration (65545/46 and 48), support for the
+ 65546, 65548, 65550 and 65554 (Nozomi Ytow, Egbert Eich, Ken Raeburn,
+ Xavier Ducoin and David Bateman).
+
+XFree86 3.1.2Ed (10 August 1996)
+621. Fix xterm colour translation problem (Michael Rohleder and
+ Thomas E. Dickey).
+620. xterm termcap/terminfo fixes (Thomas E. Dickey).
+619. Add escape sequences to xterm that act like CDE ddterm's window
+ operations (Thomas E. Dickey).
+618. Set the initial cleared screen colour correctly for the 8514 and Mach8
+ servers to match the default black pixel value and the -flipPixels
+ flag (Hans Nasten).
+617. Add support for LynxOS AT version 2.4.0, and client-only support for
+ LynxOS microSPARC and PowerPC (Thomas Mueller).
+616. Config updates for OpenBSD and NetBSD 1.2 (Matthieu Herrb).
+615. Fix typo in trident driver, and update XFree86 man page (Alan Hourihane).
+614. Fix problems with Trio64V+ video blanking signal. Some undocumented
+ options "trio64v+_bug1" to "trio64v+_bug3" have been added enable/disable
+ parts of the code in case they are required later (Harald Koenig).
+613. Don't require SuperProbe to do the BIOS signature check for VGA cards
+ when the PCI probe detects a VGA card (Koen Gadeyne).
+612. Add ET6000 detection to SuperProbe (Koen Gadeyne).
+611. Add PCI detection of ET6000 to scanpci and SVGA server (Koen Gadeyne).
+610. Update AGX documentation (Henry Worth).
+609. Add DGA support to the AGX server (Henry Worth).
+608. AGX server recognises "fast_vram" and "slow_vram" options as equivalents
+ to "fast_dram" and "slow_dram" (Henry Worth).
+607. 8 bit/RGB DAC mode is now the default for the AGX server where supported
+ (Henry Worth).
+606. Fix initialisation of the Bt481 for AGX-016 based Hercules dual-DAC
+ Graphite cards (Henry Worth).
+605. Fix overscan colour correctly for the AGX server to match the change
+ to the default black pixel value and the -flipPixels flag (Henry Worth).
+604. Update et4000w32.c for ChipHas24bpp in vgaVideoChipRec (Thomas E. Dickey).
+603. Prevent Xserver from exiting when a mouse device can't be opened and
+ the '-allowMouseOpenFail' command line option is used (Joe Moss).
+602. Add CL-GD5446 detection to SuperProbe.
+601. Add support for CL-GD5446 to the cirrus driver (Corin Anderson).
+600. Add PCI detection of Cirrus CL-GD5446 to SVGA server and scanpci
+ (Corin Anderson).
+599. Add a function XF86DGAForkApp() to the dga library, which causes
+ the client to fork, with the parent remaining to clean up after the
+ child exits (Jon Tombs).
+598. Add an InstallColormap function to the DGA extension (Jon Tombs).
+597. Fix broken DGA setviewport on SVGA servers (Jon Tombs).
+
+XFree86 3.1.2Ec (8 July 1996)
+596. XF86Setup fixes and updates (Joe Moss).
+595. Fix some build problems on Solaris due to the positioning of
+ <stdlib.h> includes in xconsole and xwd (William Austin).
+594. Fix a make problem in xfree98/vga16/drivers (Takaaki Nomura).
+593. Add some minor features from ISO 6429 to xterm (Thomas E. Dickey).
+592. Fix for SiS clock programming, and implement HW cursor for SiS
+ (Alan Hourihane).
+591. XInput support for SummaSketch tablets (Steven Lang).
+590. Improve the startup of the Wacom driver (Frederic Lepied).
+589. Fix an XInput bug with extended events reporting the wrong number
+ of valuators (Frederic Lepied).
+588. Fix xterm's utmp usage for Solaris (Christos Zoulas).
+
+XFree86 3.1.2Eb (30 June 1996)
+587. Fix MMIO setting which causes problems with Trio64V+ cards in machines
+ with PCI SCSI controllers (Harald Koenig).
+586. Auto-select the ICD2061A for Diamond Stealth 64 VRAM cards (when
+ a Diamond BIOS, Bt485 and S3 964 are all detected).
+585. Fix a problem with the VGA16 server when Chipset "generic" is specified.
+584. Fix twm/gram.y and fonts/PEX/to_wfont.y problems that show up when
+ using bison-1.25 (Matthieu Herrb).
+583. Move the beta expiry check code into a separate file, and add a command
+ line option to allow the expiry date to be extended when a key is
+ provided.
+582. Preliminary 24bpp packed support for some S3 cards (Harald Koenig).
+581. Add 24bpp (packed pixel) support for cfb (cfb24), and the required
+ hooks for using it with the SVGA server (Shigehiro Nomura and
+ NoZomi Ytow).
+580. Fix some xterm background colouring problems (Thomas E. Dickey).
+579. Allow the PCI burst to be separately turned on/off for read and write
+ for the TGUI chips (Alan Hourihane).
+578. vgaHW.c fix (NoZomi Ytow).
+577. Fix for Mach64 block_write problems introduced in 3.1.2E (Kevin Martin).
+576. An alternate fix to the Makedirectories() rule, which causes only
+ one 'sh -c' to be used (Marc Aurele La France).
+575. Some sanity checks for the trident driver (Alan Hourihane).
+574. Another HSkew fix for the ATI SVGA driver (Marc Aurele La France).
+573. Add 256 colour support to the SiS driver (Alan Hourihane).
+572. Fix a stdlib.h -related problem in xwd (Joe Moss).
+571. Fix a stdlib.h -related problem in xfs/os/utils.h (Takaaki Nomura).
+570. Add a new Xserver configuration utility -- XF86Setup (Joe Moss).
+569. Remove the "-noscale" flag from the Xserver usage message (Joe Moss).
+568. Fix session handling of xdm for *BSD (Peter Wemm).
+
+XFree86 3.1.2Ea (10 June 1996)
+567. xf86config.c update in preparation for the XF86Setup utility (Joe Moss).
+566. Fix some Mach64 problems in the SVGA ati driver (Marc Aurele La France).
+565. Fix the xf86GetClocks prototype (Marc Aurele La France).
+564. Fix MakeDirectories rule (Stephen Hocking).
+563. By default, don't change PCI burst settings for TGUI (Alan Hourihane).
+562. Fix interlaced modes for the SVGA ali driver (Thomas Graichen).
+561. xfs updates for OS/2 (Sebastien Marineau).
+560. Fix some TGUI problems introduced in 3.1.2E (Alan Hourihane).
+559. Fix problems with scanpci on NetBSD (Michio "Karl" Jinbo).
+558. Some cleanups/removal of compiler warnings (Christos Zoulas).
+557. Patch for compiling on BSD/OS 2.1 (Mike Bernson).
+556. Turn off the Xaw3d arrow scrollbar support in xterm by default (it
+ causes xterm to suck CPU), and make it an option/resource
+ (Thomas E. Dickey).
+555. Reinstate the "no_program_clocks" for TGUI9440 chips (Alan Hourihane).
+554. XInput updates, including motion history support for the joystick and
+ elo devices, removing auto link speed detection for the elo -- it is
+ now set with the LinkSpeed XF86Config option, and added acceleration
+ handling for relative devices (Patrick Lecoanet and Frederic Lepied).
+553. Add VGA16 support to the ET3000 driver (Thomas Graichen).
+552. Fix for first button click in a xterm being mistaken for a double
+ click (Kaleb Keithley).
+551. Fix for server crash on Alpha when using the logo screen saver
+ (Manabe Takashi).
+550. xkb datafile updates, including more/better European keymaps, pc102
+ geometry and keycodes (Stuart Anderson, courtesy Metro Link).
+549. Fix xterm problem on *BSD (VMIN initialisation) that would cause
+ rlogin to fail (Matthieu Herrb).
+548. Fix problems when a dynamic module is specified with an absolute path.
+
+XFree86 3.1.2E (13 May 1996)
+547. Fix Trio64V+ problem with DAC entry#255 for color mode 0 (1 8bpp/DCLK)
+ by only using color mode 8 (2 8bpp pixel/DCLK, CR67=10) (Harald Koenig).
+546. Added options to the S3 server to slow down DRAM and EDO DRAM access
+ (Harald Koenig).
+545. Add inlined assembler code to do unaligned access on Alphas
+ (Harald Koenig).
+544. Fix a font corruption problem for Alphas in cfb (Harald Koenig).
+543. Fix sample Xcms.txt colour entries (Harald Koenig).
+542. Fix some problems building the a.out DLL version of libX11
+ (Harald Koenig).
+541. OS/2 updates (Sebastien Marineau).
+540. Fix(?) server crash on keyboard input when using DGA with XKB disabled.
+539. Install xterm termcap/terminfo files in lib/X11/etc for all OSs, not
+ just SYSV/SVR4.
+538. Convert egc_asm.s to the portable assembler format so it can be built
+ on SVR4 (Takaaki Nomura).
+537. Fix Mach64 ghostview scrollbar problem. This may also fix some font
+ corruption problems seen in Netscape (Kevin Martin).
+536. Fix Mach64 ol[v]wm icon problem (Kevin Martin).
+535. Add Mach64 cursor in doublescan mode -- this still has problems
+ (Kevin Martin).
+534. Add Mach64 doublescan mode for low resolution modes (only works so far
+ for the VT chip) (Kevin Martin).
+533. Fix Mach64 264VT support in the Mach64 server (Kevin Martin).
+532. Update the xterm termcap and terminfo descriptions (Thomas E. Dickey).
+531. Fix an xterm bug where XmbLookupString is used even though an
+ IM/IC isn't open/used (Kaleb Keithley).
+530. Fix a clock roll-over bug in xterm (Kaleb Keithley).
+529. Add some new locale aliases used by Solaris 2.5 and some other OSs
+ (Kaleb Keithley).
+528. Fix some potential data overruns with long environment variables in
+ libX11 and libXt which could create security holes in suid root
+ programs like xterm (Kaleb Keithley).
+527. Fix makedepend's handling of long typed defines (eg, 1993L)
+ (Kaleb Keithley).
+526. User alloca on UnixWare (Kaleb Keithley).
+525. Improved fix for removing compiled keymap files (Kaleb Keithley).
+
+XFree86 3.1.2Dj (12 May 1996)
+524. Disable POSIX_TERMIOS in xterm for FreeBSD versions prior to 2.1.
+523. Add a document for XInput (Frederic Lepied).
+522. Have the server remove the compiled keymap file when shutting down
+ (Joe Moss).
+521. Fix problem of XkbListComponents() not listing anything in
+ subdirectories (Joe Moss).
+520. Fix passing of button events for the Joystick (Frederic Lepied).
+519. NetBSD documentation updates (Matthieu Herrb).
+
+XFree86 3.1.2Di (11 May 1996)
+518. Modify xterm to revoke() its pty before opening it on *BSD
+ (Matthieu Herrb).
+517. Fix xterm not sending SIGHUP to its children when it dies on *BSD
+ (Matthieu Herrb).
+516. Fix some problems that were preventing extended Mouse devices from
+ working.
+515. Add "Port" as a synonym for "Device" in the Pointer section.
+514. Fix Makefile dependencies for dynamically loaded XInput modules.
+513. Fix screen saver blanking for Mach64 CT at 16bpp and 32bpp.
+512. Remove the directory components from the XKB parameters in the sample
+ XF86Config files, and from the XF86Config files generated by xf86config.
+511. Fix Mach64 memory mapping bug introduced in 3.1.2Dg.
+
+XFree86 3.1.2Dh (10 May 1996)
+510. Fix for some image problems on VGAWonder V3, V4 and V5 adapters
+ (Marc Aurele La France).
+509. Enable TERMIOS for xterm on Linux/Alpha (Kazushige Goto).
+508. Make the "clkdiv2" option a valid option for most accelerated
+ servers (Koen Gadeyne).
+507. Unified the global function names to use the xf86 prefix in the XInput
+ code (Frederic Lepied).
+506. Add support for motion history for extended input devices (implemented
+ for the Wacom driver) (Frederic Lepied).
+505. Oak documentation updates (Jorge Delgado).
+504. Fix compiler warnings introduced in 3.1.2Dg (Thomas E. Dickey).
+503. OS/2 updates (Sebastien Marineau and Holger Veit).
+502. Fix formatting of xtrans error messages (Holger Veit).
+501. S3 image fixes for Alpha (Harald Koenig).
+
+XFree86 3.1.2Dg (6 May 1996)
+500. X98 updates for PANIX(98) support (X98 core team).
+499. Allow halved clocks to be used with the VGA servers (Koen Gadeyne).
+498. Use same xlfd value rounding for alpha as for i386 (Harald Koenig).
+497. Support for Linux/Alpha (Jay Estabrook, Craig Ruff, Harald Koenig
+ and others?).
+496. Fix autorepeating modifier keys (Kaleb Keithley).
+495. Fix nonMuxMaxClock for S3 864/868 (Harald Koenig).
+494. Make sure that imake, xinit and the XFree86 servers don't inherit
+ a SIGCHLD signal handler of SIG_IGN (Marc Aurele La France).
+493. Fix default HSkew for ATI 28800 cards (Marc Aurele La France).
+492. Fix typo in SuperProbe/PCI.c (Holger Veit).
+491. Colour xterm fixes -- fixes inner border being painted with the wrong
+ colour (Thomas E. Dickey).
+490. More X server prototyping fixes -- mostly for Xserver/Xext
+ (Thomas E. Dickey).
+489. DGA support for the P9000 server (Erik Nygren).
+
+XFree86 3.1.2Df (15 April 1996)
+488. Changes to xf86Config.c in preparation for XF86Setup sharing this
+ code (Joe Moss).
+487. Prevent SuperProbe from falsely detecting non-VGA PCI devices.
+486. Config/Imake support for building LBX (Holger Veit).
+485. OS/2 updates (Holger Veit and Sebastien Marineau).
+484. Add support for the I128 8MB board with the IBM528 RAMDAC (Robin Cutshaw).
+483. Add prototyping for Xserver/dix, and fix copyright notices in new
+ header files (Thomas E. Dickey).
+482. Replace the vsync wait delays in the ICD2061A code with a 20ms usleep
+ (Harald Koenig).
+481. Ensure that the S3 server clears the screen to black even when
+ '-flipPixels' is used, and erase the S3 HW bug test patterns after
+ completing the tests (Harald Koenig).
+480. Fix incorrect S3 HW cursor offset after VT switching (Harald Koenig).
+479. Fix SuperProbe's memory probing for S3 cards with more than 4MB,
+ and add detection for the TVP3030 RAMDAC (Harald Koenig).
+478. Fix some S3 TVP3026 problems introduced in 3.1.2Dc (Harald Koenig).
+477. Add support to the S3 server for the ELSA Gloria-8 card (except the
+ GLint 300SX 3D chip) (Harald Koenig).
+476. Fix for POSIX termios support in xterm (Matthieu Herrb).
+475. Add -li386 to ServerExtraSysLibs for NetBSD (Matthieu Herrb).
+474. Fix problems when XINPUT isn't defined (Kaleb Keithley).
+473. Fix for TGUI 9320 LCD support (Alan Hourihane).
+472. Imakefile updates for X98, and PCI detection added for TGUI9320
+ (Michio "Karl" Jinbo).
+
+XFree86 3.1.2De (31 March 1996)
+471. Change the default HSkew calculation (Marc Aurele La France).
+470. Add detection of the ATI 264VT, 264VT2 and 264GT to the ati driver,
+ SuperProbe, scanpci, and the Mach64 server (Marc Aurele La France).
+469. Fix the W32 server's reporting of the bits/rgb resolution (Koen Gadeyne).
+468. Add ICD2061A clockchip support to the W32 server (Koen Gadeyne and
+ Peter Chang).
+467. Add support for PowerWindow968, Cyber9320 and TGUI9680 (X98 core team).
+466. Fixes for XF98_NEC480 on PANIX-PC98 (X98 core team).
+465. Remove X98 style version info from the server startup messages
+ (X98 core team).
+464. Improve stability of the XF98_PWSK server (X98 core team).
+463. Add some missing XFreeXDGA #ifdefs (Kaleb Keithley).
+462. Fix problem of the XKB keymaps not getting loaded when using the
+ Xqueue keyboard driver on SVR4 (Joe Moss).
+461. Add POSIX termios support to xterm, and use it for BSD Net/2
+ derived systems. This removes the need for kernels on those systems
+ to be compiled with COMPAT_43 in order to run xterm (Matthieu Herrb).
+460. Update the I/O enabling in the X servers and SuperProbe for
+ NetBSD-current (Matthieu Herrb).
+459. Save the S3 cursor colour stack (CR4A/CR4B) (Harald Koenig).
+458. Add macro button support to the Wacom driver, and handle more than
+ six valuators to post events (Frederic Lepied).
+457. Support for the Miro Magic S4 (S3 928 + Bt485). A known problem is
+ that switching between pixmux an non-pixmux modes doesn't work
+ (Bernd Strobel).
+456. Fix banked mono for the SiS driver (Alan Hourihane).
+455. X server prototype cleanups and fixes, particularly in the Xi code
+ (Thomas E. Dickey).
+454. Possible fix for tvga9000 and tvga8900d problems (Alan Hourihane).
+
+XFree86 3.1.2Dd (17 March 1996)
+453. Include R6.1 public patch 1.
+452. Fix incorrect type in SuperProbe/PCI.c (Thomas E. Dickey).
+451. Fix a memory leak in xterm when switching fonts (Thomas E. Dickey).
+450. Fixes for mouse problems introduced in 3.1.2Dc (Joe Moss,
+ Michael Rohleder, Takaaki Nomura).
+449. Man page for the VidMode extension (Joe Moss).
+448. Modify xterm to work properly with Xaw3d's arror scrollbars (based on
+ Kaleb Keithley's R5 patch).
+447. Add tilt report for the Wacom device (Frederic Lepied).
+446. Deal with DAC/clock discrepancy for Mach64 in the ati driver
+ (Marc Aurele La France).
+445. Reduce warnings in the ati driver when compiling with 'gcc -Wall'
+ (Marc Aurele La France).
+444. Fix recognition of ATI extended VGA register I/O port number on some
+ Mach32 Mach64 PCI adapters in the ati driver (Marc Aurele La France).
+443. Add nested prototypes to xf86_HWlib.h (Marc Aurele La France).
+442. Fix typo in IBM RGB514 programming for the Mach64 (Marc Aurele La France).
+441. Fix a problem with the Mach64 server incorrectly using Block I/O mode
+ on some cards.
+
+XFree86 3.1.2Dc (11 March 1996)
+440. XKB updates from recent XC fix-tracker.
+439. Fix freeing a random pointer in the module code when an absolute
+ path is given (Thomas E. Dickey).
+438. Updates to Ti3026 PLL parameter limits (Harald Koenig).
+437. Support for ELSA Winner 2000PRO/X rev G (Harald Koenig).
+436. Fix 'make clean' problems for PC98 (Takefumi Tsukada).
+435. OS/2 updates (Holger Veit).
+434. Remove DEVINTPTR ifdefs by renaming the entrypoints of the affected
+ functions (Thomas E. Dickey).
+433. Fix for handling of long version strings in beta servers (Harald Koenig).
+432. Some XFree86-Misc cleanups (Joe Moss).
+431. Add an extended input device supporting mouse protocols. This shares
+ code with the core mouse (Frederic Lepied).
+430. Fix the behaviour of ANSI colours in xterm when reverse video is used,
+ and some other xterm updates (Thomas E. Dickey).
+429. Fix SEGV with ark driver when no Ramdac is given in the XF86Config.
+428. Avoid retrace wait for S3 HW cursor when DGA is active (Jon Tombs).
+
+XFree86 3.1.2Db (5 March 1996)
+427. Fix a problem where hw cursors get recoloured incorrectly.
+426. Fix another possible Trio32 font cache problem (Harald Koenig).
+425. Another S3 968 dashed line fix (Harald Koenig).
+424. Fix RecolorCursor problems for S3 hw cursors in RAMDACs and for
+ sw cursor (Harald Koenig).
+423. Add a Japanese version of the FreeBSD README (Takefumi Tsukada).
+422. Fix for problems with XF86_WSNA server (X98 core team).
+421. Add a mapping for Pointer_EnableKeys to the XKB symbols/us map (Joe Moss).
+420. XC patch for XKB.
+419. Add code to the vidmode and misc extensions to print details of mode
+ keyboard and mouse setting changes (Joe Moss).
+418. Add code to recognise extra keys on Digital LK201 PC keyboards
+ (Basil Duval).
+417. Don't include Multibuffer support in xdpyinfo when it isn't included
+ in the X servers (Joe Moss).
+416. Fix core dump when XInput debugging is enabled (Frederic Lepied).
+415. Fix implicit grab problem with Wacom input device (Frederic Lepied).
+414. Add an "allowMouseOpenFail" XF86Config and command-line option to allow
+ the server to be started when no mouse can be initialised (Joe Moss).
+413. Updates for parallel make (Robin Cutshaw).
+412. Update xf86config for the I128 server (Robin Cutshaw).
+
+XFree86 3.1.2Da (3 March 1996)
+411. Add a preinst.sh script.
+410. Documentation updates.
+409. Fix for Linux/ELF rules (H.J. Lu).
+408. Always used extended I/O for SYSV/SVR4. This is required now for
+ ISC (Michael Rohleder).
+407. Fix BootstrapCFlags in sun.cf for Solaris x86.
+406. Solaris fixes for SuperProbe and the Mach64 server (Robin Cutshaw
+ and James Hawtin).
+405. Wacom bug fix (Frederic Lepied).
+404. Add support for writing to stdout for gccmakedep, which is required
+ for NetBSD and FreeBSD (Matthieu Herrb).
+
+XFree86 3.1.2D (24 February 1996)
+403. Fix xterm SEGV if it cannot open an input method (Manabe Takashi).
+402. Update Linux/ELF SharedLibraryTarget() (H.J. Lu).
+401. Add a BinUtilsVersion parameter for Linux, and modify ExtraLoadFlags for
+ Binutils versions 2.6.0.7 and later (H.J. Lu).
+400. Set CplusplusCmd to 'c++' for Linux, set YaccCmd to byacc when
+ USE_BYACC is defined, and remove $(CBRT) from ServerExtraSysLibs
+ (H.J. Lu).
+399. Fix installation of some SCO rules/cf files (H.J. Lu).
+398. Modify imake.rules to include Motif rules/tmpl files when BUILD_MOTIF
+ is defined (H.J. Lu).
+397. Fix argument passing typo in SuperProbe (Thomas E. Dickey).
+396. Update Cards database (Joe Moss).
+395. Documentation updates (Holger Veit, Joe Moss).
+394. Fix xset/Imakefile for OS/2 (Holger Veit).
+393. Don't use the index/rindex macros with arguments for non-ANSI compilers.
+392. Uncomment xf86cleanpci() in vga.c.
+
+XFree86 3.1.2Ch (22 February 1996)
+391. Fix xset linking for Linux a.out (Harald Koenig).
+390. Disallow interlaced modes with the SiS driver (Alan Hourihane).
+389. Change SCO interface to allow for a 128K VGA aperture
+ (Marc Aurele La France).
+388. Add support to the ati driver for Mach64 cards with a base address
+ other than 0x2EC (Marc Aurele La France).
+387. Introduce a new XF86Config mode option called HSkew which sets bits
+ 0x60 of CRTC[3] (Marc Aurele La France).
+386. Fix colour map problem on VGA Wonder V3 boards (Randall Hopper,
+ Marc Aurele La France).
+385. Allow multiple "-verbose" command line flags to increase the verbosity
+ level (Marc Aurele La France).
+384. Modify xf86scanpci() so that it will be able to deal with multi-headed
+ servers in the future, add an xf86cleanpci() function to allow
+ the PCI data to be freed after use, allow xf86scanpci() to be called
+ more than once, and fix a problem with it not always returning with I/O
+ permissions disabled (Marc Aurele La France).
+383. SuperProbe updates for Mach64 and PCI (Marc Aurele La France).
+382. OS/2 updates (Holger Veit).
+381. Keyboard/mouse parameter changes with XFree86-Misc can now be disabled,
+ and these are only allowable by default for local client connections
+ (Joe Moss).
+380. Only check/change relevant parameters with XFree86-Misc (Joe Moss).
+379. Add new/better protocol error messages for XFree86-Misc (Joe Moss).
+378. Man page for the XFree86-Misc library functions (Joe Moss).
+377. Add detection of the SiS 86C202 and 86C205 to SuperProbe and the SiS
+ driver (Alan Hourihane).
+
+XFree86 3.1.2Cg (20 February 1996)
+376. Modify the handling of the XF86Config xkb options to allow the
+ -xkbmap server flag to work (it overrides what is in the XF86Config).
+ The XKBKeyMap XF86Config setting will now work too, and it overrides
+ any other XKB settings given there.
+375. Fix for parts of a VT switch sequence getting passed to clients when
+ XKB is enabled.
+374. NetBSD.cf update (Matthieu Herrb).
+373. Fix various cases of nested comment delimiters (Thomas E. Dickey).
+372. Config additions/updates for CLIX and for HP with GCC2 (Thomas E. Dickey).
+371. Fix RecolorCursor for HW cursor in AGX, Mach32, Mach64, P9000, I128,
+ Cirrus, Ark and Trident server/drivers (untested).
+370. Fix xinit problem introduced in 3.1.2Cf.
+369. S3 dashed line fix, including an option "s3_968_dash_bug" to enable
+ a workaround for a 968 bug. There is code to auto-detect this problem,
+ so the option shouldn't need to be specified explicitly (Harald Koenig).
+368. Fix for RecolorCursor problem with S3 HW cursors. This problem is
+ also present in other accel servers (Harald Koenig).
+367. Trident linear mode updates (Alan Hourihane).
+
+XFree86 3.1.2Cf (19 February 1996)
+366. S3 update for ELSA Winner1000 cards with the AT&T 20C409 Ramdac
+ (Dirk Hohndel).
+365. PC98 updates, including a new xkbcomp/compat/pc98 description
+ (X98 core team).
+364. SiS driver updated (Alan Hourihane).
+363. Work around an S3 968 dashed line bug (Harald Koenig).
+362. OS/2 updates, including a new OS/2 README (Holger Veit and
+ Sebastien Marineau).
+361. ISC documentation updates (Michael Rohleder).
+360. NetBSD documentation updates (Matthieu Herrb).
+359. Trident driver updates (Alan Hourihane).
+
+XFree86 3.1.2Ce (18 February 1996)
+358. PC98 documentation (X98 core team).
+357. Fix a bug in the handling of the Wacom eraser as a third button
+ (Frederic Lepied).
+356. Enable the Joystick driver for NetBSD (using a port of the FreeBSD
+ joystick driver to NetBSD) (Matthieu Herrb).
+355. Allow XInput dynamic loading for NetBSD (Matthieu Herrb).
+354. Use the FreeBSD way of making dependencies in .depend files for NetBSD
+ (Matthieu Herrb).
+353. Change the XInput Dynamic module loading to allow a ModulePath to
+ be specified in the Files section of the XF86Config, and move the
+ list of loadable modules into a Modules section in XF86Config
+ (Frederic Lepied).
+352. Fix some glitches in xterm's colour behaviour (Thomas E. Dickey).
+351. Modify the xf86config utility to allow XKB information to be entered
+ (Holger Veit).
+350. Fix Xserver prototyping problems (Thomas E. Dickey).
+349. Modify PCI code for PC98 (X98 core team).
+348. Add PC98 server for WSN-A2F (X98 core team).
+347. XKB description files for a Japanese 106 key keyboard (Takefumi Tsukada).
+346. Probe the VGA sis driver before the the cl64xx to avoid mis-probing
+ (Alan Hourihane).
+345. Modify XF86VidModeGetAllModeLines() to allocate memory in one chunk
+ so it can be freed later by the client (Joe Moss).
+344. Fix incorrect handling of S3RefClock when specified in the XF86Config
+ (Harald Koenig).
+343. Clean up linear mode setup in the Trident Driver (Alan Hourihane).
+342. Disable PCI burst mode by default for the Trident driver
+ (Alan Hourihane).
+341. Fix a problem restoring 16bpp modes with the Mach32 server on OS/2
+ (Sebastien Marineau).
+340. Fix a problem that was preventing the tgui driver from working on
+ some TGUI9440 cards (Alan Hourihane).
+
+XFree86 3.1.2Cd (12 February 1996)
+339. Fix library ordering for Linux a.out for xset, xdpyinfo and xvidtune
+ (Harald Koenig).
+338. Add a version check to the XInput dynamic modules (Frederic Lepied).
+337. Fix keyboard LED initialisation. This usually shows up as a problem
+ on *BSD where the NumLock LED is on when the server is started.
+336. Update Linux DLL jump files (Harald Koenig).
+335. PC98 updates, including XF98Conf, and the XKB nec geometry description
+ (X98 core team).
+334. Automatically treat the PS/2 protocol the same as the busmouse protocol
+ on NetBSD (since that's how NetBSD's PS/2 driver works).
+333. Add XInput dynamic loading support for FreeBSD 2.x.
+332. Fix problem with XInput on non-Linux/ELF systems.
+331. xterm fixes, including updates to allow building on R5
+ (Thomas E. Dickey).
+330. Add to the docs a file containing a list of PC98 cards that are
+ supported (X98 core team).
+329. Documentation updates for xterm (Thomas E. Dickey).
+328. Disable the TGUI HW cursor by default (Alan Hourihane).
+327. Add PCI support to SuperProbe (Alan Hourihane).
+
+XFree86 3.1.2Cc (10 February 1996)
+326. Merge in final form of R6.1.
+
+XFree86 3.1.2Cb (9 February 1996)
+325. XC fix-trackers to seq-4114 (mostly XKB).
+324. Xlib prototyping improvements/fixes (Thomas E. Dickey).
+323. OS/2 updates (Holger Veit and Sebastien Marineau).
+322. Allow the eraser button of a wacom stylus to act as a third button
+ if the WacomEraser device isn't enabled (Frederic Lepied).
+321. Allow XInput device support to be dynamically loaded. This is for
+ Linux only so far (Frederic Lepied).
+320. Major updates to the ati driver, including support for the newer
+ Mach64 chips and clocks, preliminary support or pre- VGAWonder V3
+ adapters and generic VGA. The default chipset name has been changed
+ back to "ati" from "vgawonder" (Marc Aurele La France).
+319. Properly implement xf86DisableIOPrivs and xf86Disable/EnableInterrupts
+ for Linux (Marc Aurele La France).
+318. ATI doc updates (Marc Aurele La France).
+317. Remove ati.test.c, and move the functionality into the ati driver
+ (Marc Aurele La France).
+316. Remove the "undoc_clocks" option (Marc Aurele La France).
+315. Make all I/O ports in compiler.h unsigned short, and all values
+ unsigned char/short/int (Marc Aurele La France).
+314. Updates Mach64 probing for SuperProbe (Marc Aurele La France).
+313. Make the Linux ELF/a.out default build the same as the system default
+ (Marc Aurele La France).
+312. Delete unneeded cmd/sh files in xfree98/vga256 (X98 core team).
+311. Fix problems with XF98_WABS (X98 core team).
+310. update xfree98/etc/Imakefile, and remove the *.sed files and their
+ related imake rules (X98 core team).
+309. XF98_WABEP server added (for Melco WAB-EP) (X98 core team).
+308. Trident driver updates including some clock probing fixes
+ (Alan Hourihane).
+307. Fix 2MB Trio64 display error problem due to incorrect parameter
+ calculation (Harald Koenig).
+
+XFree86 3.1.2Ca (5 February 1996)
+306. Improve S3 Diamond BIOS detection.
+305. XC fix-trackers to seq-4104 (mostly a new XKB snapshot).
+304. Don't include the compaq driver by default -- it is broken.
+
+XFree86 3.1.2C (31 January 1996)
+303. Allow the mouse parameters (except the device) to be changed with
+ the XFree86-Misc extension. This causes a close/reopen of the the
+ device (Joe Moss).
+302. Fix problem introduced with the server lock code which causes a delay
+ at startup.
+301. Add some checking for the mouse baud rate given in the XF86Config
+ (Joe Moss).
+300. Fix for the bright left border problem with some Trio64V+ cards
+ (Harald Koenig).
+299. PC98 XKB support files (Kaleb Keithley, Toyonori Fujiura).
+298. Update German XKB symbols (Thomas Mueller).
+
+XFree86 3.1.2Bo (30 January 1996)
+297. Updates for XF98Conf.cpp (Takefumi Tsukada).
+296. Add an XF86Config option for disabling XKB (Kaleb Keithley).
+295. Further OS/2 support updates, including a working X server
+ (Sebastien Marineau and Holger Veit).
+294. Documentation update for PC98 (Takefumi Tsukada).
+293. Improved prototyping for Xlib.h (Thomas E. Dickey).
+292. xterm updates, including mods to allow it to be built with X11R5
+ (Thomas E. Dickey).
+291. Some XFree86-Misc extension updates (Joe Moss).
+290. GlidePoint updates (Jean-Christophe Hugly).
+289. Add XInput knowledge to xdpyinfo, and update the output format of
+ xsetpointer (Frederic Lepied).
+288. NetBSD updates for scanpci now that console.h isn't included any more
+ (Matthieu Herrb).
+287. XC fix-trackers to seq-4086 (xsm updates).
+286. xkb symbol addition for European-style keyboards (Kaleb Keithley).
+285. Possible fix for security problem related to the X server's lock files.
+
+XFree86 3.1.2Bn (28 January 1996)
+284. Fix reporting of the ATI68860 Rev C Ramdac with the Mach64 server.
+283. Support for ALPS GlidePoint. A tap on the pad is treated as a fourth
+ button (Jean-Christophe Hugly).
+282. Improved XKB support for XFree86 servers (Kaleb Keithley).
+281. Prevent mode switching and VT switching when DGA is active (Jon Tombs).
+280. Don't include for syscons with NetBSD by default.
+279. NetBSD doc updates (Matthieu Herrb).
+278. XFree86-Misc extension updates, including more sanity checking (Joe Moss).
+277. Fix some length calculations in libXxf86vm (Joe Moss).
+
+XFree86 3.1.2Bm (26 January 1996)
+276. Remove (for now) the vertical retrace wait in the S3 SetViewPort.
+275. Updates TGUI support for SuperProbe (Alan Hourihane).
+274. TGUI driver updates (Alan Hourihane).
+273. Major updates to OS/2 support (Holger Veit).
+272. Update xdpyinfo for the latest XFree86-Misc changes, and update xset
+ to allow the keyboard repeat parameters to be changed (Joe Moss).
+271. Add functions to the XFree86-Misc extension to allow getting and
+ setting mouse and keyboard configuration (Joe Moss).
+270. Remove the low ICS5342 clock limit (Harald Koenig).
+269. Add an "XF98Config.cpp" from which a sample config file suitable for
+ the X98 servers is generated (X98 core team).
+268. Update Imakefiles under hw/xfree98 (X98 core team).
+267. Fix for make dependency problem with BSD make and the XFree86 drivers
+ subdirectories (Matthieu Herrb).
+266. X Consortium fix-trackers to seq-4084 (mostly XKB and doc updates).
+265. Allow the XInput debug level to be set from the XF86Config
+ (Frederic Lepied).
+
+XFree86 3.1.2Bl (21 January 1996)
+264. Fix xterm IM problem if *inputMethod == "" (Kaleb Keithley).
+263. Xvfb fix for systems that have mmap, but not the MS_ASYNC flag for
+ msync().
+262. XC fix-trackers to seq-4060 (some XKB and config updates).
+261. 6-bit/rgb fix for the I128 server (Robin Cutshaw).
+260. Update hw/xfree98 Imakefiles (Takefumi Tsukada).
+259. Add a GetAllModeLines function to the VidMode extension, and modify
+ xdpyinfo to use it (Joe Moss).
+
+XFree86 3.1.2Bk (17 January 1996)
+258. Don't allow DGA operations which affect the server when it isn't on
+ the active screen.
+257. Have XFree86-Misc report the power saver times in seconds rather
+ than milliseconds (to be consistent with XGetScreenSaver).
+256. Modify xset to allow setting/viewing the power saver parameters via
+ the XFree86-Misc extension.
+255. Modify the VidMode extension to disallow both mode switches and
+ the locking/unlocking of mode switching when DontZoom has been set
+ in the XF86Config.
+254. Only allow the DGA extension to accept local connections.
+253. Fix Home/End key support in xterm (Thomas Mueller).
+252. Add support for VT200 compatible cursor on/off to xterm (Thomas Mueller).
+251. Add support for the XFree86-Misc extension to xdpyinfo (Joe Moss).
+250. VidMode/xvidtune updates (Kaleb Keithley).
+249. XC fix-trackers to seq-4055 (mostly XKB fixes).
+248. Fix link ordering of new libraries (Thomas Mueller).
+247. Add some missing XKB #defines (Thomas Mueller).
+246. Fix typo in include/extensions/Imakefile (Thomas Mueller).
+
+XFree86 3.1.2Bj (16 January 1996)
+245. Remove the XExExt library, and replace it with individual libraries
+ for each extension.
+244. Remove the GetSaver/SetSaver functions from the VidMode extension
+ and add them to a new extension: XFree86-Misc.
+243. Cleanup VidMode extension code -- removing "vgahelp" references
+ (Kaleb Keithley).
+242. Allow the write functions of the VidMode extension to be disabled
+ for non-local clients (default), and all clients (Kaleb Keithley).
+241. XC fix-trackers to seq-4052 (new XKB snapshot).
+240. README.S3 updates (Paul Gortmaker).
+239. Do framebuffer address scan for all VLB Trio64 cards, not just those
+ with > 1MB.
+238. Fix typo in trident driver (Alan Hourihane).
+237. Modify the I128 server to use xf86scanpci() rather than its own PCI
+ probe (which didn't work for PCI config type 1 boards) (Robin Cutshaw).
+
+XFree86 3.1.2Bi (14 January 1996)
+236. Enable dynamic allocation of XInput devices to allow for multiple
+ instances of the same device type. The Joystick2 device has been
+ removed (Frederic Lepied).
+235. Fix typo in a recent xconsole fix (Michael Rohleder).
+234. Add POSIX build config option for ISC, and change the Vendor name to IUS
+ (Interactive Unix System) (Michael Rohleder).
+233. Disable linear mode by default for non-PCI Trident cards (Alan Hourihane).
+232. Fix some compiler warnings in various parts of the source (Fred Appelman).
+231. Fix xterm compile problem with -DALLOWLOGGING (William Austin).
+230. Fix compile problem in resize for NetBSD (Matthieu Herrb).
+
+XFree86 3.1.2Bh (13 January 1996)
+229. Fix dga speed test problem when the bank size is less than 64k.
+228. Add DGA support to the Mach32 server (untested).
+227. Add SVGA-based servers for PC98 (Cirrus driver) (X98 core team).
+226. Update the Cirrus driver to use the vga PCI probe data (not tested).
+225. Include XC fix-trackers to seq-4035 (mostly fixes for Solaris 2.5
+ build problems).
+224. Update xdpyinfo to print some info about XKB (Joe Moss).
+223. Fix(?) problem some people see with vertical lines / black screens
+ with the Trident driver (Alan Hourihane).
+222. Update the Trident and SiS drivers to use the vga PCI probe data
+ (Alan Hourihane).
+221. Define SetTtyGroup for Linux (Kevin Martin).
+
+XFree86 3.1.2Bg (12 January 1996)
+220. Fix cursor colour for TGUI 9660/9680 (Alan Hourihane).
+219. LynxOS fix for xterm's resize (Thomas Mueller).
+218. Write beta marker file as the user's real uid rather than as root.
+217. Fix DGA for SVGA cards using banked memory, and enable it for most
+ SVGA drivers.
+216. Add a PCI probe to the VGA servers. The happens before the chipset
+ probes, and may be disabled with the "no_pci_probe" option.
+215. Add 16bpp support for Trident 8900D, and some cleanups (Alan Hourihane).
+214. Add install.linkkit target to the top level Makefile.
+
+XFree86 3.1.2Bf (11 January 1996)
+213. Xinput updates, including: improved error handling, "Screen" option
+ renamed to "ScreenNo" for consistency, new config options for the
+ Wacom tablet, update to the Linux joystick support, and a fix
+ for xsetmode (Frederic Lepied and Patrick Lecoanet).
+212. Fix core dump when exiting an X server started with XKB enabled.
+211. Update accelerated servers' use of miZeroClipLine().
+210. Include XC fix-trackers to seq-4031 (includes update of RECORD spec
+ to version 1.13, some Xlib and xterm fixes, and preliminary ISO Latin-2
+ compose support).
+209. Add code to detect the Trio32 BITBLT bug, and automatically enable
+ the workaround when it is detected (Harald Koenig).
+208. Final changes for POSIXized ISC build (Michael Rohleder).
+207. Define NO_READAHEAD for ISC in xconsole (Michael Rohleder).
+206. Fix(?) Xalloca.h problem on Solaris 2.5.
+205. Fix missing XFreeDGA #ifdef in change 187 (Kaleb Keithley).
+
+XFree86 3.1.2Be (10 January 1996)
+204. Fix build with BuildServersOnly set to YES (Takefumi Tsukada).
+203. Major xterm cleanup (including prototyping), and fixes to the colour
+ code (Thomas E. Dickey).
+202. PC98 EGC (16 colour) server added (X98 core team).
+201. Updates for LynxOS AT, including a workaround in the xkb clients
+ for the fact that stdin/out/err isn't a valid initialiser
+ (Thomas Mueller).
+200. Modify the dga test program to use GetTimeInMillis() (Tiago Gons).
+199. Fix merge problem in xconsole (Michael Rohleder).
+198. Initial changes to POSIXize the ISC build (Michael Rohleder).
+197. Fix a clash of symbols between libX11 and the X server's libxkb which
+ shows up when building Xnest on ISC (Michael Rohleder).
+196. Fix XKB merge problem in xf86Events.c (Kaleb Keithley).
+195. Complete the logging code in xalloc (Pascal Haible).
+
+XFree86 3.1.2Bd (8 January 1996)
+194. Fix a build problem when BuildServersOnly is set to YES.
+193. Clean up the InstallManPageLong() run for NetBSD (Takefumi Tsukada).
+192. Modify ForceSubdirs() rule for NetBSD and FreeBSD so that it works
+ with GNU make (Matthieu Herrb).
+191. Fix a Ti3026 clock problem that appears on SPEA 968+Ti3026 cards
+ (Harald Koenig).
+190. Fix TGUI 9440 HW cursor problems (Alan Hourihane).
+189. Fix problems with the TGUI 9660/9680 support (Alan Hourihane).
+188. Fix 256-colour interlace problem with TGUI cards (Alan Hourihane).
+187. Fix for text mode restore problem when the DGA extension has been
+ used with the SVGA server (Alan Hourihane).
+186. Set the Block I/O bit in the PCI userconfig register for Mach64 cards
+ that report an I/O address range.
+
+XFree86 3.1.2Bc (7 January 1996)
+185. Update lnxLib.rules for new GNU elf tools which look for libname.so
+ rather than libname.so.rev at link time (Helmut Geyer).
+184. Set default ProjectRoot back to /usr/X11R6.
+183. Include fix-trackers to seq-4024 (includes more a more recent XKB snap,
+ some record updates, and some config and Xlib updates).
+182. Fix some merge problems.
+
+XFree86 3.1.2Bb (6 January 1996)
+181. Merge in X11R6.1 beta.
+180. Fix problems with the ARK/ICS5342 clock programming (Leon Bottou).
+179. Fix problem with Mach64 CT cards that incorrectly appear to be using
+ block I/O.
+
+XFree86 3.1.2Ba (3 January 1996)
+178. Fix support for the old ET4000 in the et4000 driver.
+177. Fix problem with the SIS driver that can cause a server crash
+ (Alan Hourihane).
+176. Modify linux config for building a.out binaries on Slackware 3.0.
+175. Fix Linux Joystick compilation problems.
+174. Doc updates.
+
+XFree86 3.1.2B (28 December 1995)
+173. Fix a problem with the ARK/ICS5342 clock programming (don't know if this
+ completely fixes the clock programming problems).
+172. Don't do PCI probe in S3 server for PC98 (Takefumi Tsukada).
+171. Fix bank select problem with S3 911 cards when using DGA.
+
+XFree86 3.1.2Af (26 December 1995)
+170. Added README.DGA which gives a brief outline of the API for the DGA
+ extension. This should be converted to man pages.
+169. Added a simple standalone program (joycal) to get the Joystick
+ calibration coordinates.
+168. Modify the Joystick code to auto-detect the centre values at startup
+ if they are not given the XF86Config (this assumes that the Joystick
+ is centred when first enabled).
+167. Add XInput Joystick support for FreeBSD 2.x.
+166. Remove the strict membase checking for "orchid_p9000" in the P9000
+ server so that the correct membase can be specified for some other
+ types of P9000 cards which are not explicitly supported.
+165. Fix problem with the trident driver in the VGA16 server (Alan Hourihane).
+164. XF86Config(4/5) man page additions for the XInput section
+ (Frederic Lepied).
+163. Update xfree98/Imakefile (Takefumi Tsukada).
+162. Remove the "no_ti3026_curs" option again.
+161. Updates for xdpyinfo's Imakefile and the Xinput code for ISC
+ (Michael Rohleder).
+
+XFree86 3.1.2Ae (23 December 1995)
+160. A new document called QuickStart.doc which is a quick-start guide
+ to XFree86 setup (Joe Moss).
+159. Add a PCI probe to the S3 server, and use the membase value reported
+ when it is non-zero. This should help for some TrioV64+ cards.
+158. Move the DGA client-side helper functions into libXExExt.
+157. XInput support for XFree86. This includes device support for two
+ Joysticks (Linux-only so far), Wacom tablet (Wacom IV protocol only),
+ and Elographics touchscreen. Two utility programs are included.
+ xsetpointer can be used to make an extended device the core pointer
+ or to list the extended devices. xsetmode can be used to set a device
+ in absolute or relative mode (Frederic Lepied and Patrick Lecoanet).
+156. Workaround for a hardware bug in some S3 Trio32 revisions which causes
+ font corruption when using the font cache. This is currently enabled
+ with the "trio32_fc_bug" Option (Harald Koenig).
+155. Logging support for the internal xalloc code (Pascal Haible).
+154. Fix the S3 server's detection of the Trio64V+.
+153. Fix problems building the PC98 code (Takefumi Tsukada).
+152. LynxOS support for the DGA extension (Thomas Mueller).
+151. Fix a problem were XListFonts() can return fewer font names than
+ XListFontsWithInfo() (Manabe Takashi).
+150. Add knowledge of the XFree86-VidModeExtension, XFree86-DGA and LBX
+ extensions to xdpyinfo (Joe Moss).
+149. Add a benchmark function to the dga test program. It is activated with
+ the 'b' key (Koen Gadeyne).
+148. Change all servers to default to blackPixel = 0 and whitePixel = 1,
+ and allow this default to be swapped with the -flipPixels server
+ command line flag (Michael Rohleder).
+147. Restore the "no_ti3026_curs" option to the S3 server (Harald Koenig).
+146. Trident driver and documentation updates (Alan Hourihane).
+
+XFree86 3.1.2Ad (21 December 1995)
+145. Fix for incorrect usage of S3 PIX_TRANS writing (Takefumi Tsukada).
+144. PC98 support integrated into the main XFree86 source tree. The PC98
+ code gets built under xc/programs/Xserver/hw/xfree98 (Takefumi Tsukada
+ and the X98 team).
+
+XFree86 3.1.2Ac (17 December 1995)
+143. Modify the XDGA implementation in the server, and add support for it
+ to the Mach64 server. Also, XDGA is now enabled for all OSs since there
+ are now no OS-specific parts on the server side.
+142. Add "no_font_cache" and "no_pixmap_cache" options to allow the font
+ cache and pixmap cache/expansion to be disabled in the S3 and Mach64
+ servers.
+141. Fix positioning and shape of the Bt485 HW cursor for doublescan modes
+ in the S3 server.
+140. Fix positioning of the HW cursor for interlaced and doublescan modes
+ with the IBM RGB RAMDACs in the S3 server. The cursor shape still
+ isn't correct though (Trent Piepho and R.E. Wolff).
+139. HW cursor support for the Trident 9660/9680 and 9430 -- not tested
+ (Alan Hourihane).
+138. XFree86-DGA extension support for ISC SVR3 (Michael Rohleder).
+137. Fix for "XIOerror 11 (Resource temporarily unavailable)" errors while
+ running xterm on ISC (Michael Rohleder).
+136. Major Trident driver updates, including HW cursor for 9440, and
+ an option to use a set of fixed clocks instead of fully programmable
+ clocks for the TGUI chips (Alan Hourihane).
+135. I128 updates (Robin Cutshaw).
+134. Mach64 support for ATI Extended VGA register location on PCI
+ cards with block I/O (Kevin Martin).
+133. Clean up Mach64 software cursor support (Kevin Martin).
+132. "dac_8_bit" is now the default for supported RAMDACs in the Mach64
+ server. 6-bit mode can be forced with the "dac_6_bit" option
+ (Kevin Martin).
+131. Mach64 support for the ATI Graphics Pro Turbo 1600, including
+ 1600x1200 mode support (Kevin Martin).
+130. Mach64 support for the IBM RGB514 RAMDAC (Kevin Martin).
+129. Mach64 support for the GX-F (GX rev 3) (Kevin Martin).
+128. Add new options "w32_interleave_on" and "w32_interleave_off" to
+ the SVGA and W32 servers. They allow the desired mode to be
+ forced for W32i and W32p cards (Dirk Hohndel).
+127. Full STG1703 support for W32 server (Dirk Hohndel).
+126. Fix some incorrect prototype ifdefs in xf86.h (Kaleb Keithley).
+125. Modify xterm to call XtSetLanguageProc() rather than setlocale()
+ (Kaleb Keithley).
+124. Preliminary driver for the SIS 86C201 chipset (VGA2 and VGA16 only
+ so far) (Alan Hourihane).
+123. Change the Mach64 aperture mapping to map the video memory and
+ mmapped registers into two separate areas rather than mapping the
+ entire 8MB aperture range.
+122. Use an 8MB aperture for all but ISA Mach64 cards since most of the
+ newer Mach64 chips only support an 8MB aperture size.
+121. Fix typo in Mach64 server that was causing some RAMDACs to be incorrectly
+ detected.
+120. Fix aperture address detection for VLB Mach64 cards.
+119. In the Mach64 server, set RAMDAC to 20C408 if the 20C408 clock type
+ is detected, and same for STG1703.
+118. SIGWINCH support for xterm on ISC 4.x (Geoff Steckel).
+
+XFree86 3.1.2Ab (9 December 1995)
+117. FreeBSD support for the DGA extension.
+116. Split the DGA code out into a separate extension (called XFree86-DGA)
+ (Kaleb Keithley).
+115. Fix some compiler warnings when compiling on LynxOS (Thomas Mueller).
+114. Fix some byte swapping problems in XFree86-VidModeExtension
+ (Thomas Mueller).
+113. Add preliminary STG1703 support to the W32 server. No clock
+ programming and no pixmux yet (Dirk Hohndel).
+112. Add new options "pci_burst_on" and "pci_burst_off" to SVGA and
+ W32 server. They will allow to solve display problems on many
+ ET4000/W32p based cards (Dirk Hohndel).
+111. Add new clock selection scheme to SVGA and W32 server, so that
+ 32 clocks are used. The first 16 are the same as before, the
+ second 16 use CS3 (Dirk Hohndel and Koen Gadeyne).
+110. Add STG1703 detection to SuperProbe for ET4000/W32 based cards (Dirk
+ Hohndel).
+109. Fix extension version checking in xvidtune.
+108. Modify xterm to call XSupportsLocale() before initialising I18N
+ support (William Volkman).
+107. Fix S3 support for clocks up to 135MHz in 8 bpp for S3 868 cards
+ with ATT20C409 Gendac (e.g., Elsa Winner 1000AVI) (Dirk Hohndel).
+106. Fix S3 HW cursor handling for doublescan modes (Jon Tombs).
+105. Config and doc updates for NetBSD 1.1 (Matthieu Herrb).
+104. Preliminary (unaccelerated) I128 server code (Robin Cutshaw).
+103. Attempt to fix problem of Mach64 server mis-detecting the CH8398
+ RAMDAC.
+102. Modify the Mach64 server to use the membase address it reads from
+ the configuration registers.
+101. Fix cursor colour problem at 16, 32bpp with the Mach64 server.
+100. Support for the Mach64 CT.
+
+XFree86 3.1.2Aa (2 December 1995)
+ 99. Fix for xterm behaving badly when TERM is set to "vt100" (Joerg Wunsch).
+ 98. XDGA (direct graphics access) support added via the XFree86 VidMode
+ extension. This is primarily intended for games support. Currently
+ it is implemented only for Linux, and for the S3 and Cirrus drivers
+ (Jon Tombs).
+ 97. Fixes for Ti3026 loop clock calculation code (Dirk Hohndel).
+ 96. Detection and preliminary support for the Elsa Winner2000PRO/X-2,4 Rev.G
+ which has a S3-968, Ti3026, and ICS9161A clock chip. Clock doubling
+ doesn't work yet (Dirk Hohndel).
+ 95. Mach64 code cleanups and documentation updates (Kevin Martin).
+ 94. Fix Mach64 pixmap cache bug which resulted in xcalloc being called
+ with a negative size (Kevin Martin).
+ 93. The state of the AT&T20C408 is now saved/restored by the Mach64 server.
+ This should fix the dim screen problem when exiting from the server
+ (Kevin Martin).
+ 92. ClockChip and Ramdac can now be specified in the XF86Config for the
+ Mach64 server (Kevin Martin).
+ 91. Mach64 server ATI 18818/ICS 2595 clock chip programming now works
+ (Kevin Martin).
+ 90. Mach64 server now automatically programs a programmable clock chip
+ when present. This can be overridden with the "no_program_clocks"
+ Option. The "program_clocks" option has been removed (Kevin Martin).
+ 89. Initial changes to allow for integration of the I128 server
+ (Robin Cutshaw).
+ 88. Avoid defining __USLC__ for MP/RAS in compiler.h (Kaleb Keithley).
+ 87. If the server can't find an XF86Config file, print out the files it
+ tried to open (Joe Moss).
+ 86. Fix(?) display centering for the Cirrus 754x.
+ 85. Fix text mode clock problem in ET4000/W32 server (Koen Gadeyne).
+ 84. Remove the "-noscale" flag from the Xserver and xfs since it has
+ been obsoleted by the ":unscaled" fontpath attribute.
+ 83. Remove the RepeatedMiddle mouse option because it doesn't work
+ properly (Jon Tombs).
+ 82. Remove some casts in xf86MouseProtocol() to work around in the
+ Metaware compiler/NCR assembler (Kaleb Keithley).
+ 81. When the X server exits due to an unrecognised command-line option,
+ print out the offending option (Joe Moss).
+ 80. Remove '-lc_s' from ExtraLibraries for ISC (Michael Rohleder).
+ 79. Add code to SuperProbe and the Cirrus driver to recognise the
+ CL-GD7542 (and a guess for the CL-GD7541).
+ 78. Fix RAMDAC probe problem introduced into the S3 server in 3.1.2e
+ (Joe Moss).
+
+XFree86 3.1.2A (19 November 1995)
+ 77. Added a Beta Report template form.
+ 76. Update xf86config for some of the new Ramdacs.
+ 75. Allow 'Ramdac "ibm_rgb526" to be recognised by the S3 server. It
+ then treats it as an RGB524.
+ 74. Modify the beta startup message usage so that it gets printed once
+ for each different server started.
+ 73. Fix for AGX-010 clock probing (Henry Worth).
+
+XFree86 3.1.2e (16 November 1995)
+ 72. Updates to the Cards database.
+ 71. S3 868 + AT&T 20C409 support (8/15/16/24bpp) without pixmux, and
+ S3-868 + AT&T 20C499 support (untested) (8/15/16/24bpp, no pixmux).
+ Pixmux support is enabled, but not functional (Dirk Hohndel).
+ 70. Update SuperProbe to recognise AT&T 20C409 and AT&T 20C499 RAMDACs
+ (Dirk Hohndel).
+ 69. Allow attributes to be appended to elements of a font path. The
+ attributes are introduced by a ':' character, and multiple attributes
+ are separated by a ':'. Currently the attribute "unscaled" is
+ supported for bitmap fonts, and this prevents them from being scaled.
+ 68. Trident driver cleanups, and fixes for interlacing (Alan Hourihane).
+ 67. LynxOS updates for using MetroLink Motif (Thomas Mueller).
+ 66. Preliminary AT&T 20C409 support for the S3 server (not functional
+ yet) (Dirk Hohndel).
+ 65. W32 updates to Xserver and SuperProbe (Dirk Hohndel and Koen Gadeyne).
+
+XFree86 3.1.2d (12 November 1995)
+ 64. Fix a typo in the iso8859-1 Compose file.
+ 63. Add a '-noscale' flag to the Xserver and xfs to allow scaling of
+ bitmap fonts to be disabled. The keyword DontScaleBitmapFonts
+ in the ServerFlags section of the XF86Config file has the same affect.
+ 62. Fix problem that prevents bitmap fonts from being scaled after
+ running something like 'xset fp rehash'.
+ 61. Add a Release Date to the X server startup messages.
+ 60. Add a "RELNOTES" document to describe changes in beta releases.
+ 59. Fix panning for ARK2000PV chips with 2MB of memory (Leon Bottou).
+ 58. Support for ICS5342 programmable clock in the ARK driver (Leon Bottou).
+ 57. Major updates to the Oak driver, including more accelerated functions
+ for the OTI087 (Jorge Delgado).
+ 56. Option "program_clocks" added for the Mach64 server to allow
+ arbitrary clocks to be programmed for most clock chips. This
+ currently doesn't work with the ATI18818/ICS2595 chips (Kevin Martin).
+ 55. Mach64 server support for the AT&T 20C408 (Kevin Martin).
+ 54. Fix problem of two undisplayed pixels with the CL-GD7543
+ (Thomas Zerucha).
+ 53. Add support for three button operation with some dual protocol mice
+ when they are in Microsoft-compatible mode. The keyword to enable
+ this is 'RepeatedMiddle' (Jon Tombs).
+ 52. Fix 3 button emulation problem introduced in item 48 (Thomas Mueller).
+ 51. Add support for '-crt /dev/ttyXX' command line option for the X
+ servers for SCO. This is for compatibility with the native SCO X
+ servers (Didier Poirot).
+
+XFree86 3.1.2c (5 November 1995)
+ 50. Add expiry date and startup message for beta versions.
+ 49. Fix problem using a LinkKit generated with BuildLBX set to YES.
+ 48. Allow a real middle button event to be passed when 3 button mouse
+ emulation is enabled (Thomas Wu).
+ 47. Fix panning and some initial clock selection problems for TGUI9440
+ cards (Alan Hourihane).
+ 46. Support for the Cirrus CL-GD7543 (Thomas Zerucha).
+ 45. Fix for instability problems with Cirrus programmable clock
+ (Koen Gadeyne).
+ 44. Fix memory overwrite problem in xterm which could be a security
+ problem.
+ 43. Merge in the X Consortium's public patch 13.
+ 42. Define X_LOCALE for LynxOS for compatibility with Metrolink's
+ Motif package (Thomas Mueller).
+ 41. Update SuperProbe to recognise the Cirrus CL-GD7543.
+ 40. The Trident driver now automatically selects the "tgui" clockchip
+ when it detects a TGUI9440 (Alan Hourihane).
+ 39. Remove the dependency on -lthread for UnixWare 2.x, while still
+ allowing full MT support. This is done by adding a threads stub
+ library with weak symbols (David Wexelblat).
+
+XFree86 3.1.2b (22 October 1995)
+ 38. Updated Japanese docs, including SGML versions suitable for formatting
+ with jlinuxdoc-sgml. These docs use EUC encoding (Kazuyuki Okamoto).
+ 37. Preliminary support for the Trident TGUI9440 (Alan Hourihane).
+ 36. Add an "AllowNullPasswd" resource to xdm to make it possible for xdm
+ to login to accounts with a null password. This is set to "False"
+ by default (Joerg Wunsch).
+ 35. Use dynamically allocated strings in xrdb to avoid overruns that
+ can occur otherwise (Joerg Wunsch).
+ 34. Add ELSA Winner 2000PRO/X-8 to the S3 ELSA probe code (Dirk Hohndel).
+ 33. Fix S3 probe of IBM RGB RAMDACs incorrectly identifying an RGB528
+ or RGB528A as an RGB524 (Dirk Hohndel).
+ 32. Fix incorrect memory probe for S3 964/968 (Dirk Hohndel).
+ 31. Prelim pixmux support for ICS5341 RAMDAC in W32 server (Dirk Hohndel).
+ 30. Support for ICS5341 programmable clock in W32 server (Dirk Hohndel).
+ 29. Add RFC1700-conformant charset names for ISO-8859 locales to
+ locale.alias.
+ 28. Fix LynxOS video mapping problem that shows up when the "fb_debug"
+ option is set in the S3 server (Thomas Mueller).
+ 27. Fix reference to undeclared variable in os/xalloc.c for OSs which
+ don't have MMAP_ANON or MMAP_DEV_ZERO defined (Thomas Mueller).
+ 26. Fix W32 server core dump on LynxOS when run with '-probeonly'
+ and no Clocks line in the XF86Config file (Thomas Mueller).
+ 25. Fix reference to uninitialised string in Hercules mono driver
+ (Paul Gortmaker).
+
+XFree86 3.1.2a (23 September 1995)
+ 24. Fix HW cursor masks in Mach32 and Mach64 servers.
+ 23. Add detection of C&T 65548 to SuperProbe.
+ 22. Fix snow problems with WD90C24 when for clocks higher than MCLK
+ (Brad Bosch).
+ 21. Add XNLS support for KOI8-R (Andrey Chernov).
+ 20. Fix problem with IBM ramdac and clockchip handling in xf86config.
+ 19. Change XF86Config parsing to ignore '_' characters in keywords, and
+ to ignore '_', ' ', and '\t' characters when comparing strings with
+ StrCaseCmp() (ie, all strings except paths, Device/Monitor identifiers
+ and Mode names).
+ 18. Reduce nonMuxMaxClock to 80MHz (from 100MHz) for S3 864 with
+ ATT498-compatible RAMDACs because it was too high for some cards.
+ 17. Fix problem installing xterm on SunOS 4.x introduced in 3.1.2.
+ 16. Set -fno-strength-reduce with -O2 for gcc2 to avoid a compiler bug.
+ 15. Fix xvidtune/XF86VidMode problem when the Monitor Vendor and/or Model
+ are not specified in the XF86Config file.
+ 14. Colour support for xterm (David Wexelblat).
+ 13. Fix usage of $LINES and $COLUMNS by xterm on SVR4 (David Wexelblat).
+ 12. Fix xconsole for Unixware 2.0 (David Wexelblat).
+ 11. Fix optimisation problem with inline asm on Unixware 2.0
+ (David Wexelblat).
+ 10. Improve subdir/lib dependence on systems using BSD 4.4. make
+ (Matthieu Herrb)
+ 9. Allow the Xserver to accept InvertVCLK, EarlySC and BlankDelay. It
+ previously expected Invert_VCLK, Early_SC and Blank_Delay.
+ 8. Fix problem selecting a StaticGray visual with the VGA16 server
+ (Olivier De Smet).
+ 7. Fix compile problem on FreeBSD 1.1.5 (David Bremner).
+ 6. Change index and rindex macros in Xos.h when X_NOT_STDC_ENV is not
+ defined.
+ 5. Fix(?) alloca declaration in Xtos.h for Solaris 2.5.
+ 4. Fix dependencies for 'make includes' to ensure that auto-generated
+ headers exist before linking them to xc/X11 (David McCullough).
+ 3. Change default InvertVCLK setting for the Hercules Terminator 64 Pro
+ (Harald Koenig).
+ 2. Update for lynx.cf (Thomas Mueller).
+ 1. README updates.
+
+XFree86 3.1.2 (24 July 1995)
+235. Fix(?) scanpci compile problem with gcc on Solaris.
+234. Documentation updates.
+
+XFree86 3.1.1Z (22 July 1995)
+233. Code Freeze for 3.1.2.
+232. Fix an imake config problem on non-XFree86 platforms.
+231. xman update for Solaris 2.5 (William Austin).
+230. Cyrillic fonts with KOI8 encoding added (Cronyx Ltd, Serge Vakulenko,
+ Andrey A. Chernov).
+229. Allow ndbm to be used for the rgb database on NetBSD for those
+ who want it (Matthieu Herrb).
+228. Attempt to fix register corruption for Cirrus 5430/5434/5436 in
+ SuperProbe.
+227. Remove -DUNIXCONN from the default SVR3 ConnectionFlags.
+226. Fix disappearing S3 hw cursor when switching modes with xvidtune
+ (Harald Koenig).
+225. Sync-on-green support for the ELSA Winner 2000Pro/X (Harald Koenig).
+224. Add vendor options to S3 server (hercules, stb, genoa) (Harald Koenig).
+223. Documentation updates (Joe Moss, Harald Koenig, Matthieu Herrb).
+
+XFree86 3.1.1Dc (19 July 1995)
+222. Fix(?) server crash when the Cirrus driver auto-detects the linear
+ fb address for PCI cards.
+221. Support for 964+IBM (Hercules Terminator 64) (Harald Koenig).
+220. Disable >8bpp for S3 911 and 924 because it won't work.
+219. Fix some auto-apply problems in xvidtune, and added a restore hot-key "R".
+
+XFree86 3.1.1Db (17 July 1995)
+218. Documentation updates.
+217. xvidtune updates.
+216. S3 parameter updates for STB 968 card, and update to the Trio64V
+ probe (Harald Koenig).
+
+XFree86 3.1.1Da (16 July 1995)
+215. Replace xf86pci.c with the real scanpci.c (Robin Cutshaw).
+214. Updates to the code for the additional S3 mode parameters, including
+ better default settings (Harald Koenig).
+
+XFree86 3.1.1D (15 July 1995)
+213. xterm fix for crash when inputMethod is set to kinput2 (Manabe Keishi).
+212. Code to detect the AT&T20C490, and Sierra 1148[234579] ramdacs
+ (Joe Moss).
+211. Update the VidMode extension to handle extra mode-specific parameters,
+ and update xvidtune for extra S3 parameters.
+210. Allow some S3 parameters to be set in the Display SubSection for
+ individual modes.
+209. xf86config Cards database updates.
+208. Updates to README.WstDig for the 90C24 (Brad Bosch).
+207. Updates to LynxOS support, including support for version 2.2.1, and
+ a README.LynxOS (Thomas Mueller).
+206. Support for the SC1148{2,3,4} ramdacs at 15bpp, and the SC1148{5,7,9}
+ ramdacs at 15 and 16bpp in the S3 server (Joe Moss).
+205. Fix for problems with some WD90C24 TFT systems (Brad Bosch).
+
+XFree86 3.1.1Cd (12 July 1995)
+204. Allow for three verbosity levels for Xserver messages: -quiet, default,
+ and -verbose (Marc Aurele La France).
+203. Make the LinkKit self-contained. Apart from Xnest, it no longer
+ depends on the config files, headers, and utility programs being
+ installed (Marc Aurele La France).
+202. Updates to xvidtune. The Show button now also sets the primary
+ selection, better usage/error messages and exit codes, man page
+ updates (Joe Moss).
+201. Updates for SCO -- mostly for lbx (David McCullough).
+200. Fix a cause for some S3 lockups (Harald Koenig).
+199. Updates/fixes and SVR4 support for new malloc code.
+
+XFree86 3.1.1Cc (8 July 1995)
+198. Merge in final form of XC fix-12.
+
+XFree86 3.1.1Cb (7 July 1995)
+197. Minor IBM RGB updates (Harald Koenig).
+196. MCLK detection for STG1703 (Harald Koenig).
+195. Add detection for new S3 Trio64V+ chip to the S3 server and
+ SuperProbe (Harald Koenig).
+194. Fix some clashing option numbers (Harald Koenig).
+193. Preliminary STG1703 clock programming code.
+192. A new malloc for use by the Xserver. It is enabled by setting
+ UseInternalMalloc to YES (Pascal Haible).
+191. Fix for threads lib problem on Unixware 2.0
+190. Support for the WD90C24 in the pvga1 driver (Bradley Bosch).
+
+XFree86 3.1.1Ca (5 July 1995)
+189. Don't enable HAS_MMAP for Xvfb on Linux (Marc Aurele La France).
+188. Code to detect the STG1703 RAMDAC in SuperProbe and the S3 server
+ (Harald Koenig).
+187. A few AGX bug fixes (Henry Worth).
+186. More pre-fix-12 fix-trackers.
+
+XFree86 3.1.1C (3 July 1995)
+185. Manual page updates.
+184. Add extended power_saver support to the VGA and Mach64 servers.
+ Suspend mode isn't currently supported by the VGA servers.
+183. Add entries for the SunFA_ dead accents to the iso8859-1 Compose file
+ (Jon Tombs).
+182. Updates to IBM RGB52x in the S3 server, including fixing the
+ 8bpp problem.
+181. Documentation updates (including a README.ark) (Harm Hanemaayer).
+180. Change the Mach64 server to ignore the Clocks line in the XF86Config
+ unless the "no_bios_clocks" option is used (Kevin Martin).
+179. Fix font corruption with Mach64 server (seen when running Mosaic
+ or Netscape) (Kevin Martin).
+178. Fixes for constant-metric fonts in AGX server (Henry Worth).
+
+XFree86 3.1.1Bi (2 July 1995)
+177. Improved "power_saver" for the S3 server, and modified XFree86-VidMode
+ extension to allow its parameters to be set from a client.
+176. Fixes for AGX copyplane (Henry Worth).
+
+XFree86 3.1.1Bh (1 July 1995)
+175. Updates to AGX server. Includes reversing previous copyplane change,
+ restoring the setting of membase for AGX chips, cleanup setting
+ of the default planemask, and fixes to the agxIm routines + some
+ speedups (Henry Worth).
+174. Some more pre-fix-12 fix-trackers.
+
+XFree86 3.1.1Bg (29 June 1995)
+173. Turn on "dac_8_bit" by default in the S3 server for RAMDACs that
+ support it. Add "dac_6_bit" option to allow 6-bit mode to be selected.
+ Also, complain when "dac_8_bit" is used for a RAMDAC that can't do it.
+172. Improve "power_saver" operation by adding a delay between turning off
+ the video signal and the syncs (Bernhard Bender).
+171. Workaround for the NumLock modifier interfering with the xterm
+ ctrl+btn menus.
+170. More pre-fix-12 fix-trackers. Mostly some libX11 and libXt fixes.
+ Includes a workaround for the NumLock modifier interfering with
+ Xaw pull-down menus.
+169. Preliminary support for the IBM RGB52x ramdacs in the S3 server
+ (Harald Koenig).
+
+XFree86 3.1.1Bf (27 June 1995)
+168. Another stab at the ET4000/W32p mouse droppings fix (Glenn Lai).
+167. Back out some LBX fixes that won't be in fix-12.
+
+XFree86 3.1.1Be (25 June 1995)
+166. Some documentation updates.
+165. Fix a few LinkKit problems.
+164. Fix LBXProxyOnly build.
+
+XFree86 3.1.1Bd (24 June 1995)
+163. Add a BuildLBXProxyOnly Imake config option to allow building lbxproxy
+ from a self-contained cut-down source tree.
+162. vtname was too short in Linux OS-dep code (similar change for LynxOS
+ and SCO too) (Pascal Haible).
+161. Change uses of malloc/free in Xserver to xalloc/xfree (Pascal Haible).
+160. AGX documentation updates (Henry Worth).
+159. Fixes for AGX font rendering, and copyplane (Henry Worth).
+158. AGX font cache flushed by screensaver (Henry Worth).
+157. AGX screensaver for >8bpp (Henry Worth).
+156. pre-fix-12 fix-tracker: improvement to the Xt translation manager
+ performance when high order modifiers are assigned. Also, change
+ the servers to use Mod3 for Mode_switch instead of Mod5 to further
+ improve this.
+155. Fix some UseGnuMalloc config stuff, and set this to YES by default
+ for FreeBSD.
+154. Fix some problems with the VGA2 server, including crashes in banked
+ mode, and incorrectly switching banks when bitblting in non-banked
+ mode.
+
+XFree86 3.1.1Bc (21 June 1995)
+153. Fix for ET4000/W32p cards -- don't change the PCI burst setting.
+ This should fix mouse droppings and missing characters in text mode
+ for some cards (Glenn Lai).
+152. Fix AGX font corruption problem (Henry Worth).
+151. Disable 32bpp in AGX server by default -- it is too unstable
+ (Henry Worth).
+150. XGA clock updates in AGX server (Henry Worth).
+149. EISA XGA probing in AGX server (Henry Worth).
+148. Better scratchpad and font cache support for XGAs in AGX server
+ (Henry Worth).
+147. Font glyph blting for non-cached fonts with AGX server (Henry Worth).
+146. AGX font cache fixes (Henry Worth).
+145. pre-fix-12 fix-trackers, including:
+ - LBX fixes and additional functionality
+ - some xtrans and fontlib fixes
+ - smproxy and xsm fixes
+144. Fix sessreg (WTMP, LASTLOG, but no UTMP) for *BSD.
+143. Allow 'UseGnuMalloc' to work on all platforms.
+
+XFree86 3.1.1Bb (17 June 1995)
+142. Config updates to make LinkKit more self-contained
+ (Marc Aurele La France).
+141. Fix some problems with blocking stderr on BSD/OS 2.0 (Hans Nasten).
+140. Add auto-apply mode to xvidtune, and flesh out the xvidtune man
+ page (Joe Moss).
+139. AGX font cache bug fixes, and fix font clipping problem (Henry Worth).
+138. Some more pre-fix-12 fix-trackers, including:
+ - Xaw - removal of undocumented/broken INTERNAL selection mechanism
+ - Fix makestrs problem with -earlyR6bc.
+
+XFree86 3.1.1Ba (14 June 1995)
+137. Fix AGX problem with vertically overlapping fonts (Henry Worth).
+136. Fix some mono (VGA2) problems that can lead to a server crash.
+135. New "VGAbase" keyword for XF86Config -- currently used only by the
+ AGX server (Henry Worth).
+134. Fixes for XGA autoconfig code in the AGX server (Henry Worth).
+133. Documentation updates (Dirk Hohndel).
+132. Change default FreeBSD version in FreeBSD.cf to 2.0.5.
+131. Add a LockModeSwitch function to the VidMode extension, and modify
+ xvidtune to use it.
+130. Force VTotal to be odd for interlaced modes.
+129. Fix default Vsync/Hsync polarity setting (Marc Aurele La France).
+128. Trap a failed 'cd' in 'make Makefiles'. This prevents the Makefile
+ in the . directory being removed (and other potential problems) when
+ one of the SUBDIRS directories is missing.
+127. Include some XC fix-trackers intended for fix-12. Main changes include:
+ - Using -Xa for SVR4 compiles, and changing '#if __STDC__' to
+ '#ifdef __STDC__'
+ - Overhall tty setup in xterm -- should work better for Solaris now.
+ - Fix SVR4 ABI problems with libXt strings.
+126. Recognise 'Ramdac "generic"' in W32 server (Glenn Lai).
+
+XFree86 3.1.1B (10 June 1995)
+125. Fix problem with dacspeed line in files generated by xf86config.
+
+XFree86 3.1.1Ad (8 June 1995)
+124. Rename the vgahelp client to xvidtune.
+123. Rename "VGAHelp" extension to our registered name
+ "XFree86-VidModeExtension", and update API to use the XF86VidMode
+ prefix instead of the "XVGAHelp"/"VGAHelp" prefix.
+122. Undef i386 in Imake.cf for i386Architecture systems.
+121. Fix(?) WTMP problem with xterm on SYSV and Linux.
+120. Mach64 documentation updates (Kevin Martin).
+119. Power_saver support for the Mach64 server (Kevin Martin).
+118. Autodetect when block write mode should be disabled for the Mach64
+ server. A "block_write" option has been added to override this
+ (Kevin Martin).
+117. Use "dead_*" keysyms instead of the DEC "D*" keysyms for the dead keys
+ in the Linux keyboard code and Compose file.
+116. Use our registered name for the ModeLock keysym.
+
+XFree86 3.1.1Ac (6 June 1995)
+115. Vgahelp client enhancements (Jon Tombs).
+114. Fix core dump in fslsfonts when no fontserver is specified
+ (Matthieu Herrb).
+113. Fix W32 problem introduced with modified SaveScreen code.
+112. Update "M" parameter calculation for Trio boards (Harald Koenig).
+
+XFree86 3.1.1Ab (2 June 1995)
+111. Preliminary support for the Cirrus 5436 (Harm Hanemaayer).
+110. PCI base address detection for the Cirrus driver (Harm Hanemaayer).
+109. Fix problem linking AGX server with the LinkKit (Stephen Kump).
+108. Support for LynxOS (Thomas Mueller).
+107. Update LinkKit to make it self-contained regarding X headers
+ (Marc Aurele La France).
+106. Realtek SVGA driver. It works with the RTG3106, and possibly the
+ RTG3103 and RTG3105 (Peter Trattler).
+105. Enable the s3MCLK option for the S3 805i, and fix some bugs relating to
+ s3MCLK (Harald Koenig).
+104. Fix XF86Config problem when monitor and screen sections are interleaved.
+
+XFree86 3.1.1Aa (1 June 1995)
+103. Fix SiteIConfigFiles settings for the LinkKit (Marc Aurele La France).
+102. Fix gccmakedep problem with .s files.
+101. Updates to BSDI docs (Hans Nasten).
+100. Updates to Linux ELF config/rules (Orest Zborowski).
+ 99. Check for 868 before 864 in S3 server (Harald Koenig).
+ 98. Add rule for compiling/installing scanpci.
+
+XFree86 3.1.1A (28 May 1995)
+ 97. vgawonder driver updates (including fix for VGA2 driver with Mach64)
+ (Marc Aurele La France).
+ 97. Small TVP3026 fix (Harald Koenig).
+ 95. Fix keyboard LEDs not being turned off now that the initial lock state
+ is ignored.
+
+XFree86 3.1.1h (26 May 1995)
+ 94. Support for parallel make (on SVR4) (Robin Cutshaw).
+ 93. Don't initialise the state of the lock keys based on their state
+ prior to server startup.
+ 92. Untested changes in the AGX server for AGX-010 support (Henry Worth).
+ 91. Tested support in the AGX server for the XGA-2 at 8bpp and 16bpp
+ (Henry Worth).
+ 90. 16bpp and 32bpp support for the AGX server (Henry Worth).
+ 89. Additional accelerations for the P9000 server (Henrik Harmsen and
+ Chris Mason).
+ 88. Fix some gamma correction problems in the S3 server (Harald Koenig).
+ 87. More 968/868 fixes, including code to recognise the newer ELSA cards
+ (Harald Koenig).
+ 86. Further VGA16 scrolling fix (Stuart Anderson).
+ 85. Fix problems with some 1MB P9000 cards (Erik Nygren).
+ 84. Swap the black and white pixel values in the SVGA server's default
+ colour map. This fixes a white line problem with some older
+ VGA Wonder boards (Marc Aurele La France).
+ 83. Move sequencer resets into the driver's SaveScreen function
+ (Marc Aurele La France).
+ 82. vgawonder and ati_test updates (Marc Aurele La France).
+ 81. Handle "crippled" Mach32 and Mach64 chips in SuperProbe and the
+ vgawonder driver (Marc Aurele La France).
+ 80. Distinguish between different types of Mach64 chips in SuperProbe and
+ the vgawonder driver (Marc Aurele La France).
+ 79. Add defines to xf86Version.h for each part of the XFree86
+ version numbers (Marc Aurele La France).
+ 78. LinkKit updates to make it self-contained (Marc Aurele La France).
+ 77. Memleak support for NetBSD, and add UseMemLeak Imake config
+ parameter to allow compiling Xserver/os with memleak (Matthieu Herrb).
+ 76. Update NetBSD aperture driver to support -current loadable kernel
+ modules (Matthieu Herrb).
+ 75. Don't try to do clock doubling for 964 + Bt485 at 32bpp.
+
+XFree86 3.1.1g (7 May 1995)
+ 74. i386 BSD support for the memleak utility (Jeffrey Hsu).
+ 73. Fix a scrolling corruption problem with multiple regions in the VGA16
+ server (Stuart Anderson).
+ 72. Modify VGA16 server to provide 4 visuals which can be selected
+ using the standard -cc flag (Stuart Anderson).
+ 71. Changes to allow XDMCP broadcasts on some transports when using
+ STREAMSCONN (Stuart Anderson).
+ 70. Updates for building on NCR SVR4/MP-RAS 3.0 (Stuart Anderson).
+ 69. Some updates for ISC (Michael Rohleder).
+ 68. Fix FillRect problem that causes a server crash for most accel servers
+ when running at 16/32bpp and X isn't on the active VC (Harald Koenig).
+ 67. Fix mach32 inline asm problem (outsw) that shows up with recent gcc
+ versions.
+ 66. Modify xterm to find all ptys on recent FreeBSD (Satoshi Asami).
+ 65. Work around S3 Trio "white line" problem by swapping the default black
+ and white pixel values.
+
+XFree86 3.1.1f (24 April 1995)
+ 64. Remove ComplexProgramTargetNoMan rule, and use NormalProgramTarget
+ instead.
+ 63. Fix cirrus MMIO problem introduced in 3.1.1e, and allow 135MHz clocks
+ for a wider range of CL-GD5434 revisions (Harm Hanemaayer).
+ 62. Update to S3 HW cursor fix (Harald Koenig).
+ 61. Preliminary support for S3 866 and 868 boards (tested with the
+ ELSA Winner 1000AVI) (Harald Koenig).
+ 60. Fix a problem with virtual resolution calculation in the Mach32 and
+ Mach64 servers (when none is given in the XF86Config file)
+ (David Holland).
+
+XFree86 3.1.1e (10 April 1995)
+ 59. Fix problems that can lead to S3 crash/lockup when using HW cursor
+ (Harald Koenig).
+ 58. S3 Trio updates (Harald Koenig).
+ 57. Fix return value of QueryBestSize() for HW cursors.
+ 56. Fix cirrus display error when scrolling without BitBLT engine
+ (Harm Hanemaayer).
+ 55. Sanity check to prevent cirrus crash with negative size rectangle
+ fill (Harm Hanemaayer).
+ 54. Cirrus MMIO improvements, including support for 5429 (Harm Hanemaayer).
+ 53. More balanced cirrus FIFO settings to resolve display refresh errors
+ during drawing operations at high dot clocks (Harm Hanemaayer).
+ 52. Support for clocks up to 135MHz for CL-GD5434 revision E and later
+ (Harm Hanemaayer).
+ 51. Fix memory leak in cirrus text drawing (Harm Hanemaayer).
+ 50. Updates for Linux ELF support (H.J. Lu).
+ 49. Fix mail directory path in xbiff.
+ 48. Fix S3 interlace mode problem for boards with programmable clocks
+ (Harald Koenig).
+ 47. Fix core dump from vgahelp when started with no args (Christos Zoulas).
+ 46. Fix 968 detection in SuperProbe, and add Ti3026 detection (Harald Koenig).
+ 45. Preliminary S3 968 and Ti3026 support (Harald Koenig).
+ 44. Added similar code for SYSV regarding I/O permission, but not enabled
+ (yet) by default.
+ 43. Modify Linux I/O permission code to use IOPL rather than TSS bitmap
+ in all cases (Orest Zborowski and Harm Hanemaayer).
+ 42. Fix lack of keysyms for numerical keypad when ServerNumLock is enabled
+ on Linux (Orest Zborowski).
+ 41. Update _SC_OPEN_MAX code.
+ 40. Fix ALLOCATE_LOCAL() not using alloca() with gcc.
+
+XFree86 3.1.1d (21 March 1995)
+ 39. Preliminary mode checking for the VGAHelp extension.
+ 38. Add timeout for 3 button emulation (Mike Hench).
+ 37. Reorganise Ti302x code to remove S3-specifics from common_hw
+ (Robin Cutshaw).
+ 36. General PCI probe code (Robin Cutshaw).
+ 35. FreeBSD 1.1.5 has _SC_OPEN_MAX defined, but no sysconf().
+
+XFree86 3.1.1c (12 March 1995)
+ 34. Updates for #9 GXE64Pro required due to changes in 3.1.1b (Hans Nasten).
+ 33. Support for BSD/OS 2.0 (Hans Nasten).
+ 32. Updates for OS/2, including work on the X server support (Holger Veit).
+ 31. SVGA driver for the ARK 1000PV and 2000PV chipsets (Harm Hanemaayer).
+ 30. Add predefs to makedepend for FreeBSD and NetBSD. This allows
+ xf86_OSlib.h to be cleaned up a little.
+ 29. Fix config rules for Sentinel build (David Wexelblat).
+
+XFree86 3.1.1b (8 March 1995)
+ 28. Fix for byte swapped extension problem in lbxproxy (Dave Lemke).
+ 27. Support for Unixware 2.0 (Robin Cutshaw and Kaleb Keithley).
+ 26. Fix FIFO detection problem and bug reading BIOS video max modes in
+ Mach64 server (Kevin Martin).
+ 25. Support for Chrontel 8398 and STG1703 clock programming in the Mach64
+ server (Kevin Martin).
+ 24. Add "no_block_write" option to turn of block write mode in the Mach64
+ server (Kevin Martin).
+ 23. Add "override_bios" option to override the Mach64 server's BIOS mode
+ checking (Kevin Martin).
+ 22. Allow Membase to be given in XF86Config for the Mach64 server
+ (Kevin Martin).
+ 21. Fix bug in Mach64 ATI68860 RAMDAC code which causes noisy display
+ (Kevin Martin).
+ 20. Add support for STG1702, STG1703, ATI68875, CH8398 RAMDACs to Mach64
+ server (Kevin Martin).
+ 19. Post events for initial lock key state differently to avoid calling
+ ProcessKeyboardEvents() before all the data it uses is initialised.
+ 18. Fix and extend ISO8859-1 Compose file (Peter Dalgaard).
+ 17. Update S3 SVGA driver so that it works with 3.1.1.
+ 16. Fix 90C33 problem with 2MB cards when memory is not auto-probed.
+ 15. Fix some ISC LOCALCONN problems (Michael Rohleder).
+ 14. Put back some #9 GXE64Pro specific bits in S3 server.
+ 13. Remove 1024 min virtual width restriction from Mach64 server
+ (Kevin Martin).
+ 12. Fix dashed line server hang problem for Mach32.
+ 11. Add UseGnuMalloc to xf86site.def (only implemented for ISC so far).
+ 10. Fix POSIX_SAVED_IDS typo in xterm (Christos Zoulas).
+ 9. Fix problem of attempting to include the VGAHELP extension in Xnest.
+
+XFree86 3.1.1a (12 February 1995)
+ 8. VGAHELP X server extension for tuning video modes (Kaleb Keithley).
+ 7. Fix libfont problem that can cause xfs to get into a loop (Jason Venner).
+ 6. Fix problem with TekHVC colours (Kaz Sasayama).
+ 5. Fix merge problems in hw/sun.
+ 4. Fix line clipping problem in Mach32 server (can affect font cache).
+ 3. Fix font cache problem on 2MB Mach32 cards.
+ 2. Add detection of Trident GUI9440 to SuperProbe (untested).
+ 1. Fix some ISC problems (Michael Rohleder).
+
+
+XFree86 3.1.1 (30 January 1995)
+265. --- Code freeze ---
+264. Include final form of fix-11.
+
+XFree86 3.1.0Zg (29 January 1995)
+263. Include final form of fix-10.
+262. Fix some merge problems.
+
+XFree86 3.1.0Zf (28 January 1995)
+261. Merge in prelim version of XC fix-11.
+
+XFree86 3.1.0Ze (28 January 1995)
+260. Merge in prelim version of XC fix-10.
+
+XFree86 3.1.0Zd (28 January 1995)
+259. Merge in XC fix-09.
+258. Minor updates (mostly typographical) to smooth the fix-11 merge.
+257. Define X_LOCALE for Linux.
+
+XFree86 3.1.0Zc (27 January 1995)
+256. Doc updates.
+255. Minor hw/xfree86 updates for fix-11 (Kaleb Keithley).
+254. Merge in XC fix-08.
+
+XFree86 3.1.0Zb (26 January 1995)
+253. Rename some files under hw/xfree86 to avoid clashes when truncated to
+ 8.3 type names as used on ISO9660 format CDROMs.
+
+XFree86 3.1.0Za (25 January 1995)
+252. Minor pixmux clock limit update for Trio64 (Harald Koenig).
+251. Merge in XC fix-07.
+250. Some documentation updates.
+
+XFree86 3.1.0Z (23 January 1995)
+249. Restore correct key maps for 84-key keyboard, but allow alternate (old)
+ behaviour when "ServerNumLock" is set in the XF86Config.
+248. xf86config updates (Harald Koenig).
+247. Remove stripes when panning with Ti3025 (Harald Koenig).
+246. Enable linear fb probing for VLB Trio64 cards with > 1MB DRAM
+ (Harald Koenig).
+245. Put blank delay values back to what they were for non-#9 Ti3025
+ boards (Harald Koenig).
+244. Fix AGX fill problems and hangs when exiting with an AGX-016 under
+ SVR4 (Henry Worth).
+243. Fix AGX font cache problem, and other updates/cleanups
+ (Henry Worth).
+
+XFree86 3.1.0Ce (22 January 1995)
+242. Updates to vgawonder driver, including fix for 68800-6 memory probe,
+ and a reworking of the clock matching code (Marc Aurele La France).
+241. Remove most BIOS dependencies in vgawonder probe code
+ (Marc Aurele La France).
+240. Change ordering of Mach32 and Mach64 probing in SuperProbe, ati.test
+ and the vgawonder driver to avoid hanging Mach32 boards. Also use
+ a timeout in all WaitIdle loops in the probes (Marc Aurele La France).
+239. Minor #9 GXE64Pro updates (Hans Nasten).
+238. Allow LASTLOG to be independent of SYSV_UTMP in xterm -- so it will
+ work for Linux (Helmut Geyer).
+
+XFree86 3.1.0Cd (21 January 1995)
+237. Improve positioning of pixmap expansion and font cache areas with
+ the S3 server.
+236. Fix problem with Cirrus mono server crashing (Stephen Kump).
+235. Allow the "sw_cursor" option to work for the S3 server.
+234. Fix S3 HW cursor hot spot problem when no ViewPort entry is given in
+ the XF86Config (Harald Koenig).
+233. Fix some S3 Trio64 8bpp+pixmux display errors (Harald Koenig).
+232. Fix #9 GXE64Pro problems introduced in 3.1.0Cc (Hans Nasten).
+231. SPEA auto-detection for their Trio64 cards (Norbert Distler).
+230. Possible fix for keymap problems with 84-key keyboards.
+229. Internationalisation support for xterm (Martin Forssén).
+228. Remove the need for a Virtual entry in the XF86Config for the Mach64
+ server.
+
+XFree86 3.1.0Cc (20 January 1995)
+227. Add a check to the W32 server for invalid depths.
+226. Fix bug in PaintWindow in Mach32 and AGX servers (Stuart Anderson).
+225. Chrontel 8391 programmable clock support (Richard Burdick
+ and Harald Koenig).
+224. S3 programmable clock code updates (Harald Koenig).
+223. Support for S3 Trio32 and Trio64 (Harald Koenig).
+222. Updates to S3 Ti3025 code for the Miro 40SV (Harald Koenig).
+221. Update xf86config to know about the latest clockchip changes
+ (Harm Hanemaayer).
+220. Minor cirrus HW cursor patch (Harm Hanemaayer).
+219. Updates to OAK driver, including mapping the linear fb above 64MB
+ (Jorge Delgado).
+
+XFree86 3.1.0Cb (19 January 1995)
+218. Fix XLOCAL parsing problem introduced in XC fix-06 (Steve Forsythe).
+217. Added a DocIndex (to use as a starting point for the HTML docs).
+216. README.Oak (Jorge Delgado).
+215. SuperProbe/kbd_mode updates for compiling with PCVT_SUPPORT
+ (Joerg Wunsch).
+214. Fix for 90C31 acceleration problems.
+213. Don't use '-ansi -pedantic' for Solaris versions earlier than 2.4.
+
+XFree86 3.1.0Ca (18 January 1995)
+212. S3 update for SPEA Mercury P64 (Norbert Distler).
+211. Late LBX updates from the XC.
+210. Add a "no_imageblt" option for the Cirrus driver (Harm Hanemaayer).
+209. Support for 2:1 pixmux 8bpp RAMDACs on boards with fixed clock chips.
+208. S3 changes for the ICS5342 ramdac/clock (Harald Koenig).
+207. Fix problem in miZeroClipLine() which can cause a server hang
+ (Harald Koenig).
+206. Fix register unlocking problem in S3 server (for Stealth 64 VRAM)
+ (Harald Koenig).
+
+XFree86 3.1.0C (15 January 1995)
+205. Preliminary programmable clock support for the Mach64 server
+ (Kevin Martin).
+204. Add accelerated line code for the P9000 server and fix/update some
+ other accelerated code (Chris Mason).
+203. Allow XF86Config Videoram to override autodetection with the P9000
+ server, and allow the "vram_128" option force recognition of
+ 128kx8 VRAM (Erik Nygren).
+202. Change P9000 programmable clock operation to be consistent with other
+ servers (Erik Nygren).
+201. Allow Cirrus MMIO for the 5429, and change on of the fixed clocks
+ in the Cirrus programmable clock code (Harm Hanemaayer).
+
+XFree86 3.1.0Bf (14 January 1995)
+200. Preprocess Linux jump files, and allow libX11 to be built with XdmAuth
+ (Orest Zborowski).
+199. Fix VTSema-related problem in s3bstore.c (Henry Worth).
+198. Merge in XC's pre-fix-07 LBX code.
+
+XFree86 3.1.0Be (12 January 1995)
+197. Include Japanese translations of some XFree86 3.1 docs (Kazuyuki Okamoto).
+196. Updates to SPEA detection code (Norbert Distler).
+195. Fix for ICS2595 initialisation problem (Norbert Distler).
+194. Some vgawonder driver fixes (Marc Aurele La France).
+193. Prevent xf86config from crashing when some fields are missing in
+ the Cards database (Matthieu Herrb).
+192. Fix S3 cursor X position when the display address is not changed to
+ avoid display errors.
+191. Set S3 M/N parameters depending on the MCLK value (which can be probed
+ or set in XF86Config) (Harald Koenig).
+
+XFree86 3.1.0Bd (12 January 1995)
+190. Update cl64xx driver for modeRec changes.
+189. Merge in XC public fix-06.
+
+XFree86 3.1.0Bc (11 January 1995)
+188. Added a DontZoom keyword for the XF86Config "ServerFlags" section
+ to disable the mode switching key sequences.
+187. Updates for ISC. Includes imake config support for the SVR3 mmap
+ driver, updates to install.svr3, and patches for building lbxproxy
+ (Michael Rohleder).
+186. Fix 864 + STG1700 8bpp pixmux for clocks between 67.5 and 95 MHz
+ (Harald Koenig).
+185. Change VRAM timings for Diamond Stealth 64 VRAM (Harald Koenig).
+184. Set HSyncEnd overflow in S3 server when needed (Harald Koenig).
+183. Prevent C&T driver from pretending to support the 82c45x chipsets.
+182. Don't trap <ctrl><alt><bs> when DontZap is set.
+
+XFree86 3.1.0Bb (10 January 1995)
+181. Updates to linear fb code for OTI087, and allow the FIFO threshold
+ to be set from XF86Config (Jorge Delgado).
+180. Add hooks for server/driver mode validation. This is currently used
+ only by the NCR SVGA driver (Stuart Anderson).
+179. Fix for ET4000/W32 bank switching code in the SVGA et4000 driver
+ (David Etherton).
+178. Similar hw cursor move fix for S3 server.
+177. Fix for Cirrus crash when the hw cursor is moved while in another VT
+ (Harm Hanemaayer).
+176. Allow the "s3_964_bt485_vclk" to be used for the Diamond Stealth64 (VRAM).
+ This requires the "diamond" option (Harald Koenig).
+175. Rewrite xlfd_round_double() to speed it up on machines with no
+ hw floating point. This reduces server startup time on such machines
+ (Harald Koenig).
+174. Reduce amount of floating-point calculation in icd2061a and S3 gendac
+ clock code (Harald Koenig).
+173. Probe code to detect some SPEA boards and correctly set the clockchip
+ (Norbert Distler).
+172. Allow Xservers to be built with only PCVT support on *BSD, and
+ clean up the console driver probing for *BSD (Joerg Wunsch).
+
+XFree86 3.1.0Ba (8 January 1995)
+171. Change "ct5??" chips&tech names to "ct655??".
+170. Fix for Xnest (and Xvfb) not calling OsInitColors().
+169. Add support for relinking the Xnest server with the LinkKit.
+168. Modify vgawonder to probe clocks when -probeonly is used
+ (Marc Aurele La France).
+167. Fix some cirrus line drawing problems and fix non-interlaced modes
+ with vertical timings > 1024 (Harm Hanemaayer).
+166. Avoid use of the threads lib for SolX86 (David Holland).
+
+XFree86 3.1.0B (4 January 1995)
+165. Support for C&T 65540/45 added to the SVGA server (Régis Cridlig).
+164. Change cirrus programmable clock code to use a tested set of clock
+ parameters when there is one close to the requested clock frequency
+ (Harm Hanemaayer).
+163. Fix cirrus BitBLTs with height > 1024 for 543x (Harm Hanemaayer).
+162. Clock-related updates to the vgawonder driver (reject invalid clocks
+ where possible) (Marc Aurele La France).
+161. Config updates (including installation of host.def and fix references
+ to cl64xx driver in xf86site.def) (Marc Aurele La France).
+
+XFree86 3.1.0Ae (2 January 1995)
+160. Replace docs with the ascii versions generated from the sgml source.
+159. Major updates to xf86config(1), including the addition of a Cards
+ database (Harm Hanemaayer).
+158. Check and reject invalid XF86Config depths for the VGA16 and Mono
+ servers.
+157. Add an "s3_964_bt485_vclk" option to fix a problem with 964+Bt485.
+ Also added code to detect the MIRO 20SV board revision (Harald Koenig).
+156. Add an S3Mclk entry to XF86Config to allow the MCLK value to be specified
+ in order to aid the calculation of the optimal M parameter
+ (Harald Koenig).
+155. Fix S3 linear fb check and allow membase to work for 864/964 boards
+ (Harald Koenig).
+154. Move server lock code back into Xserver/os so that it gets used by
+ Xnest and Xvfb.
+
+XFree86 3.1.0Ad (26 December 1994)
+153. Fix problems with DBLSCAN code introduced in 3.1.0Aa (Harm Hanemaayer).
+152. Support for adding LBX via the LinkKit.
+151. Fix some LinkKit config problems.
+150. Fix LinkKit Imakefile bug introduced in 3.1.0A.
+149. Support for SPEA Mercury P64 (Bt485 + 964) (Norbert Distler).
+148. Enable ICD2061A/SC11412 clockchip by default for S3 server if the
+ the "SPEA_Mercury" option is given and Bt485 + 964/928 is detected
+ (doesn't happen if an XF86Config entry for either ramdac or clockchip
+ is present) (Norbert Distler).
+147. Fix for PCI Type 2 probe for I128 SuperProbe code (Robin Cutshaw).
+146. Major Cirrus update. Includes new acceleration using mmio (lines
+ tilefill and rectangles), and more acceleration for 16/32bpp
+ (Harm Hanemaayer).
+145. Fixes for AGX dashed line code (Henry Worth).
+144. Allow S3 server to put the cache in the area to the right of the screen
+ when it is larger than the area below it (Leonard N. Zubkoff).
+
+XFree86 3.1.0Ac (20 December 1994)
+143. Imake template and rules for LinuxDoc-SGML formatting.
+142. Documentation converted to LinuxDoc-SGML (Gertjan Akkerman,
+ Jayadev Billa, Matthieu Herrb, Michael Klemme).
+141. Re-enable SO_REUSEADDR code in Xtranssock.
+
+XFree86 3.1.0Ab (18 December 1994)
+140. Item 58. below (the patch didn't get included before).
+139. Add some sanity checking for horizontal timing parameters (including
+ HTotal overflow for 864 with 24bpp, pixmux and HTotal > 1024)
+ (Harald Koenig).
+138. Add check for 864 DCLK limit for 24bpp (Harald Koenig).
+137. Clean up of SDAC/GENDAC detection and related messages (Harald Koenig).
+136. Allow the following ramdac and clock chips to be specified by name:
+ att21c498 (att20c498), ics5300 (s3_gendac), ics5342 (s3_sdac),
+ ics9161a & dcs2824 (icd2061a). (Harald Koenig)
+135. OS/2 updates, including config updates, SuperProbe support and
+ compile-time support for most of the Xserver (Holger Veit).
+134. Updated cl64xx driver, including support for the CL6440. Note, the
+ driver name has changed from "cl6420" to "cl64xx" (Manfred Brands and
+ Randy Hendry).
+133. Fix VT switch problem with the SVGA MX driver (Frank Dikker).
+132. Add PCI config type 1 support to I128 probe in SuperProbe (Robin Cutshaw).
+131. Update support for STB Pegasus (928 + Bt485), including 16bpp and
+ 32bpp (Leonard N. Zubkoff).
+130. Fix pixmux clock check in Mach32 server (Alan Hourihane).
+129. Mods to allow XFree86 servers to compile with 'gcc -ansi -pedantic'
+ on Solaris 2.x (David Holland).
+128. Fix stipple problem in S3 server.
+127. Fix for setuid-root xterm problem reading .Xauthority file on
+ nfs-mounted filesystem (so far only for systems with POSIX_SAVED_IDS)
+ (Christos Zoulas).
+126. Move server lock code into hw/xfree86 (Kaleb Keithley).
+125. Really fix Membase handling for S3 server and 805/928.
+124. Fix Mach32 probe problem.
+123. Fix SVR3 config problems (Michael Rohleder).
+
+XFree86 3.1.0Aa (11 December 1994)
+122. Fix default mapping for numpad keys. ServerNumLock should now not
+ be required (for clients using R6 Xlib).
+121. DoubleScan modes are no longer specified with doubled vertical timings.
+120. Add extra timings fields to the ModeRec which are the CRTC values
+ used by the hardware.
+119. Update oak driver to support linear mode for the oti-087 (Jorge Delgado).
+118. Fix '-DSTATIC_COLOR' problems (Hans Nasten).
+117. Fix typos which prevented Mach64 detection in SuperProbe from working
+ (Marc Aurele La France).
+116. Allow XF86Config settings to override ELSA probe (Harald Koenig).
+115. Fix Membase handling for S3 server and 805/928.
+114. Make BSD console driver support selectable from imake.
+113. Fix some SVR4 config problems.
+
+XFree86 3.1.0A (5 December 1994)
+112. Mach64 pixmap cache fixes (Kevin Martin).
+111. Improve cirrus programmable clock handling (Harm Hanemaayer).
+110. Add code to SuperProbe to detect the #9 Imagine I128 (Robin Cutshaw).
+
+XFree86 3.1.0g (2 December 1994)
+109. Enable mmio for the Cirrus 543x (Harm Hanemaayer).
+108. Updates to xf86config (Harm Hanemaayer).
+107. Code for SuperProbe to successfully detect CL-GD543x (Harm Hanemaayer).
+106. Eliminate all references to "SYSV386". "-Di386" should be used instead,
+ even in the BOOTSTRAPCFLAGS for SVR4 and SVR3 (Kaleb Keithley).
+105. Some typo changes to bring our code closer to what the XC has.
+
+XFree86 3.1.0f (1 December 1994)
+104. Eliminate references to SYSV386.
+103. Add check for usable linear fb for 864/964 boards.
+102. Detect and reject Mach64 boards whose ROM or VGA capability has been
+ disabled (Marc Aurele La France).
+101. Experimental code in the vgawonder driver to reset Mach* boards. This
+ is enabled with the "noaccel" option (Marc Aurele La France).
+100. Fix clashes with K_SCROLLLOCK and related symbols defined in newer
+ Linux releases (Marc Aurele La France).
+ 99. Change SuperProbe to detect the Mach64, and deal with ATI DAC classes
+ 6 and 7, and recognise the ATI 28800-6 chip (Marc Aurele La France).
+ 98. ISC 3.x and 4.x support (Michael Rohleder).
+ 97. Add support for 640 and 800 line widths to AGX server (Henry Worth).
+ 96. Fix cursor/screen scrolling problem for doublescan modes (Henry Worth).
+ 95. Add missing XF86_Mach64.c file.
+
+XFree86 3.1.0e (27 November 1994)
+ 94. Add missing install rule for gccmakedep.
+ 93. Define CSRG_BASED for *BSD (Kaleb Keithley).
+ 92. Code/prototype cleanup under hw/xfree86 (Kaleb Keithley).
+ 91. Mach64 accelerated server (Kevin Martin).
+
+XFree86 3.1.0d (22 November 1994)
+ 90. Updates to NetBSD aperture driver (Matthieu Herrb).
+ 89. Bring back 'gccmakedep' from 2.x. Currently only use it when
+ UseInstalled is true.
+ 88. Support for additional keys on Microsoft ergonomic keyboard (may
+ require support in the OS's console driver) (Kaleb Keithley).
+ 87. Updates for SCO (David McCullough).
+ 86. Don't require the Virtual size to be specified for the Mach32 server.
+ 85. Allow virtual widths < 1024 for Mach32 server (currently untested).
+ 84. Some preliminary support for ISC (SVR3) 4.x (Michael Rohleder).
+ 83. ET4000/W32 server updates. Includes accelerated 32-bit opaque and
+ transparent stipple, acceleration for cases where the planemask != 0xFF,
+ and ramdac code changed to accommodate more ramdac types (Glenn Lai).
+ 82. NetBSD support in hw/sun (Dennis Ferguson, Matthew Green, Matthieu
+ Herrb).
+ 81. Fix xterm hang-on-exit problem on SolX86 2.4 (David Holland).
+ 80. Speedups for AGX constant-metric and non-overlapping characters
+ (Henry Worth).
+ 79. AGX accelerated dashed lines, and solid fills for arcs and polygons
+ (Henry Worth).
+ 78. Doublescan support for the AGX server (Henry Worth).
+ 77. Update AGX server to delete unusable modes, and to allow the virtual
+ width to be less than the display width (Henry Worth).
+ 76. Fix typo in oak driver (which broke 067/077 support) (Jorge Delgado).
+ 75. NetBSD updates, including SparcArchitecture support in imake config
+ (Matthieu Herrb).
+ 74. 32bpp support for SPEA Mercury (928+Bt485) (Norbert Distler).
+ 73. Modify Linux kbd code to read the "high_keys" mapping (Takashi Manabe).
+ 72. Fix RGBPath in XF86Config being ignored.
+
+XFree86 3.1.0c (6 November 1994)
+ 71. Fix xload for FreeBSD 1.1.5 (Joerg Wunsch).
+ 70. Modify S3 linear fb probe to handle the non-standard CR5A[6:7] address
+ mapping used by some Diamond boards (including the Diamond Stealth Pro).
+ Also, the 10 most significant bits of a specified MemBase value are
+ now used (which leads to an incompatibility with previous usage)
+ (Dick Streefland).
+ 69. Fix clock matching and some other problems in vgawonder driver
+ (Marc Aurele La France).
+ 68. Reduce RAS to 6 MCLKs for SPEA Mercury (Norbert Distler).
+ 67. Fix setting of CR65 for the SPEA Mercury -- fixes 1600 width at 8bpp
+ and 1152 width at 16bpp (Norbert Dislter).
+ 66. Change MCLK from 46MHz to 49MHz in the SC11412 clock code (Norbert
+ Distler).
+ 65. S3 code to detect 866/868/968/Trio32/Trio64 and treat them as
+ an 864 (Harald Koenig).
+ 64. Update SuperProbe to detect STG1700, S3 GENDAC and SDAC, ATT22C498,
+ S3 Vision866, 868, 968, Trio32 and Trio64 (Harald Koenig).
+ 63. Enforce 95MHz limit for 864 when no pixmux (eg, 16bpp) (Harald Koenig).
+ 62. Increase pixmux cut-in point for ATT20C498 to 95MHz (Harald Koenig).
+ 61. ATT22C498 detection and (untested) support (Harald Koenig).
+ 60. New code for S3 SDAC/GENDAC detection, and enable the programmable
+ clock when one of these is detected (Harald Koenig).
+ 59. Fixes for S3 RAMDAC detection (STG1700 and SDAC) (Harald Koenig).
+ 58. Fix ICD2061A code for clocks between 110MHz and 120MHz (Harald Koenig).
+ 57. Chips & Technology SVGA driver (Jon Block, Mike Hollick, Régis Cridlig).
+ 56. 16/32bpp support for #9 boards with Ti3020 ramdac (Robin Cutshaw).
+ 55. Fix bsdi.cf problems with gcc options (Hans Nasten).
+
+XFree86 3.1.0b (30 October 1994)
+ 54. 16/32bpp support for Elsa Winner2000Pro (964+Ti3020) (Dirk Hohndel).
+ 53. Update to cirrus programmable clock code (Harm Hanemaayer).
+ 52. Accelerated 16/32bpp bitblt for the Cirrus driver (Harm Hanemaayer).
+ 51. The vgawonder driver will now attempt to determine what the board uses to
+ generate clocks (Marc Aurele La France).
+ 50. Allow mode flags to specify composite sync polarity (Marc Aurele
+ La France).
+ 49. ati.test and vgawonder driver updates (Marc Aurele La France).
+ 48. Vgawonder driver will now attempt to use a default video mode (derived
+ from the existing CRTC settings) when no modes are specified in the
+ XF86Config (Marc Aurele La France).
+ 47. Fix problem where clock probe could report high values as zero (Marc
+ Aurele La France).
+ 46. SVGA driver for Avance Logic Inc. ali2301, ali2302, ali2308 and
+ ali2401 (Ching-Tai Chiu).
+ 45. Enable linear aperture access for BSD/386 (Hans Nasten).
+ 44. Some Linux xterm fixes (Orest Zborowski).
+ 43. Fix Linux xdm groups setting problem (Orest Zborowski).
+ 42. Allow Mach8 server to delete unsuitable modes (Hans Nasten).
+ 41. Attempt at fixing FatalError() re-entrancy problems when aborting.
+ 40. Add X server lock file code.
+ 39. Modify PTS code in xtrans to remove an existing node at server startup
+ (as happens with UNIXCONN).
+ 38. Set debug level to 1 in xtrans (this should allow error messages to
+ finally be seen).
+ 37. Modify xtrans to use ErrorF() for debug/error messages within the
+ X server.
+ 36. Updates to the S3MNAdjust option -- including no longer using global
+ variables (Harald Koenig).
+ 35. Fix horizontal stripes when panning with an S3 805i (Harald Koenig).
+ 34. Fix SDAC + pixmux patch (Harald Koenig).
+ 33. Fix line-related crash problem when using linear addressing with
+ the SVGA server (Harm Hanemaayer).
+ 32. Fix Cirrus 5434 linear addressing text blt bug (Harm Hanemaayer).
+ 31. Fix Cirrus 14-pixel font bug (Harm Hanemaayer).
+ 30. Improve Cirrus probing (Harm Hanemaayer).
+
+XFree86 3.1.0a (21 October 1994)
+ 29. Fix some missing globals in Linux libX11 (Orest Zborowski).
+ 28. Fix for TCPCONN code's checking for an existing server.
+ 27. Support for building ELF dynamic libs on Linux (Michael Riepe).
+ 26. Fix gcc local label usage in vgaFasm.h (Adam Richter).
+ 25. OS/2 client support (Holger Veit).
+ 24. Fix some data initialisation problems in libX11 and libXt
+ (Christos Zoulas).
+ 23. Use '-ansi -pedantic' with GCC when building the core tree.
+ 22. Changes to vgaFasm.h to allow compilation with 'gcc -ansi -pedantic'.
+ 21. Revised OAK driver which includes OTI-087 support (Jorge Delgado).
+ 20. Don't use -lmalloc for FreeBSD 1.1.5 -- it seems to cause some server
+ crashes.
+ 19. Change FreeBSD.cf to refer to the compiler as 'cc' instead of 'gcc'
+ (Rich Murphey).
+ 18. Work around some problems GNU make 3.62 has with the rstart Imakefile
+ (Jim Tsillas).
+ 17. Fix HW cursor problems after switching resolutions with the SVGA
+ server (Harm Hanemaayer).
+ 16. Fix I/O permission problem with AL2101 driver (Harm Hanemaayer).
+ 15. Preliminary doublescan mode flag support (Harm Hanemaayer).
+ 14. Accelerated transparent text for Cirrus 5426/8 (Harm Hanemaayer).
+ 13. Cirrus programmable clock support (Harm Hanemaayer).
+ 12. Cirrus accelerated image text for 16/32bpp (Harm Hanemaayer).
+ 11. Fix Cirrus HW cursor colour map at 16/32bpp (Harm Hanemaayer).
+ 10. Fix 16bpp VC switch lockup on Cirrus 5426 (Harm Hanemaayer).
+ 9. Fix SDAC 15/16bpp setup and 8bpp pixmux clock selection (Harald Koenig).
+ 8. New (faster) S3 stipple code (Hans Nasten).
+ 7. Add the xf86config program to the source tree (Harm Hanemaayer).
+ 6. Gamma correction support for Ti3025 (Hans Nasten).
+ 5. Add code to set 170MHz Bt485/20C505 limits for 32bpp.
+ 4. Fix incorrect clock limit for ATT20C490 + programmable clock.
+ 3. Fix S3 co-ord overflow check for bpp > 8.
+ 2. Fix to S3 server to support newer #9 GXE64Pro boards (Robin Cutshaw).
+ 1. Documentation updates.
+
+XFree86 3.1 (29 September 1994)
+400. --- Code freeze ---
+399. Fix slow server death and VT switching problems with W32 server
+ (Glenn Lai).
+398. Fix problem with the W32 server not being installed set-uid (Hans Nasten).
+397. Fix problem with LinkKit Imakefile (Matthieu Herrb).
+396. Documentation updates.
+
+XFree86 3.0Z (27 September 1994)
+395. Fix mouse access problem when server resets while not in the active VT
+ (Orest Zborowski).
+394. Fix typo in pvga1 driver (Simon Cooper).
+393. Documentation updates.
+392. Disable MMIO for Cirrus -- doesn't work yet (Harm Hanemaayer).
+391. Workaround for Cirrus GRF corruption in SVGA probe (Harm Hanemaayer).
+390. Update colourmap/blanking for W32 server (Glenn Lai).
+389. Fix clock ordering problem for vgawonder driver (Marc Aurele La France).
+388. Fix typo in Mach32 server which prevents it from starting at 16bpp
+ (Alan Hourihane).
+
+XFree86 3.0Fe (26 September 1994)
+387. Fix for S3 line drawing overwriting HW cursor storage.
+386. Include Monitors and Devices files which contain the Monitor and Device
+ XF86Config sections that have been submitted (Gertjan Akkerman).
+385. Update Cirrus probing for 543x chips in SuperProbe (Harm Hanemaayer).
+384. Update ET4000/W32 probing for SuperProbe (Glenn Lai).
+383. 16bpp support for S3 GENDAC + 801/805 (Harald Koenig).
+382. Updates to S3 GENDAC code -- program best matching clock frequency
+ (Harald Koenig).
+381. Fix most pixel shift problems for #9GXE64Pro (Hans Nasten and
+ Robin Cutshaw).
+380. Don't allow the S3 "dac_8_bit" option to have any affect at 16/32bpp,
+ and fix related problem when using the SC15025 RAMDAC.
+379. Fix problem with Spea Mercury (Norbert Distler).
+378. Documentation updates.
+377. Updates to SolX86 aperture driver config (David Holland).
+376. Don't write mouse speed setting commands when using a non-logitech
+ protocols.
+
+XFree86 3.0Fd (25 September 1994)
+375. AGX documentation updates (Henry Worth).
+374. Fix for text-mode restore problem with AGX server (Henry Worth).
+373. Change name of XF86Vga256Drivers to XF86SvgaDrivers.
+372. Documentation updates.
+371. Enable 16bpp, 32bpp for 964+Bt485.
+370. Support for 16bpp and 32bpp on 964+Bt485 -- tested so far on
+ Miro Crystal 20SV (Eddy Olk).
+369. Fix pixel wrapping for 964+Bt485 (Eddy Olk).
+368. Fix low-res mode support for GXE64Pro (Robin Cutshaw).
+367. Fix some depth 15 vs depth 16 code for the Ti3020 (Hans Nasten).
+366. Update W32 server (Glenn Lai).
+
+XFree86 3.0Fc (24 September 1994)
+365. Fix image shift at 32bpp on GXE64Pro (Hans Nasten).
+364. Only initialise TrueColor visual for 16/32bpp since DirectColor is
+ not appropriate for the hardware.
+363. Man page updates.
+362. Fix installation problems with XF86Config man page.
+361. Disable some code in vgawonder driver that leads to problems with
+ SuperProbe (Marc Aurele La France).
+360. Change clock ordering (in some cases) for vgawonder driver so it
+ now depends only on the clock chip used (Marc Aurele La France).
+359. Fix S3 VT switching problem with #9 GXE64Pro (Robin Cutshaw).
+358. Added README.SOLX86 (David Holland).
+
+XFree86 3.0Fb (23 September 1994)
+357. Enable ICS2595 clockchip support.
+356. Enable 32bpp for Ti3025+964.
+355. Change font cache and pixmap expansion allocation policy for S3
+ server. This allows better performance when there isn't much
+ offscreen memory available (Hans Nasten).
+354. Fix for banked ImageFill for bpp>8 (Hans Nasten).
+353. Updates to XF86_Accel man page.
+352. Remove references to 'Xconfig' in source code.
+351. Updates for ICS2595 code (Norbert Distler).
+350. Enable 16bpp for Spea Mercury.
+349. VTSema fixes for AGX server (Henry Worth).
+348. Updated 16bpp/32bpp support for 928+Bt485 (Norbert Distler).
+347. Partial support for 16bpp/32bpp with 964+Bt485 (Steve Parker).
+346. Fix Ti3025 pll save/restore, and set MCLK to 54.8MHz to eliminate
+ screen corruption (Hans Nasten).
+345. Fix for AGX tile SEGV (plus some cleanups) (Henry Worth).
+344. Update to solx86 aperture driver docs (David Holland).
+343. Fix problem with S3 mmio usage at 16bpp and 32bpp (Hans Nasten).
+342. Fix Mono VGA server crashes when compiled with gcc2.
+341. Updates to xterm for Linux to handle its UTMP style and lastlog
+ (Helmut Geyer).
+340. Remove some dependencies on removed cfb.banked.
+339. Fix Mach32 SW cursor SEGV.
+338. Prevent "nomemaccess" being used for S3 864/964.
+337. Change FreeBSD.cf to use gnumalloc for FreeBSD 2.x (Rich Murphey).
+336. Set weights correctly for Cirrus 32bpp (Harm Hanemaayer).
+335. Fix signal handling in xinit for SVR4 (David Holland).
+
+XFree86 3.0Fa (21 September 1994)
+334. Fix problems with cirrus top/left edge handling with HW cursor
+ (Simon Cooper).
+333. Fix GC problem causing S3 server crash at 16bpp and 32bpp.
+332. Added copyright to the output of reconfig.
+331. Fixes for vgawonder driver (Marc Aurele La France).
+330. Update README.ati and ati.test.c (Marc Aurele La France).
+329. Fix potential problem with transparent text for the cirrus 543x
+ (Harm Hanemaayer).
+328. Fixes for ICS2595 clock code (Norbert Distler).
+327. Remove cfb.banked.
+
+XFree86 3.0F (20 September 1994)
+326. Fix problem building reconfig when BuildServersOnly is YES.
+325. Updates to README.FreeBSD (Rich Murphey).
+324. Fix P9000 problem starting at 16bpp (Erik Nygren).
+323. Fix AGX screen saver, and a flash that occurs when switching into
+ XGA mode (Henry Worth).
+322. Preliminary support for the ICS2595 clock chip (not enabled yet)
+ (Norbert Distler).
+321. Fix pixel shift problem with GXE64Pro at 8bpp and 16bpp (Robin Cutshaw).
+320. Change clock doubler transition to 80MHz for Ti3025 (Robin Cutshaw).
+319. Add README.Bsdi (Hans Nasten).
+318. Removed the need to specify the "elsa_w1000pro" and "elsa_w1000isa"
+ Options.
+317. Remove "stealth64" and "miro_crystal20sv" Options -- they are no longer
+ needed.
+
+XFree86 3.0Ec (19 September 1994)
+316. Fixes for Ti3025 support -- fixes problem with machine lockups, and
+ adds preliminary 16bpp support (Robin Cutshaw).
+315. No longer allow 'Device' in the Keyboard section. Must now use
+ 'Protocol'.
+314. Updates to Cirrus BitBLT and fix for tile fill bug (Harm Hanemaayer).
+313. Disable Cirrus top/left edge HW cursor handling -- problems when
+ changing cursors near the edge.
+312. Fix another clock limit bug in S3 server.
+311. Disable Fresco by default.
+310. Updates to W32 server (Glenn Lai).
+
+XFree86 3.0Eb (18 September 1994)
+309. Updates to README.NetBSD (Matthieu Herrb).
+308. Fix Mode Flags error reporting in xf86Config.c.
+307. Fix sessreg for Linux and add an install rule for it (Leonard N. Zubkoff).
+306. Fix xdm support with shadow passwords for Linux (Leonard N. Zubkoff).
+305. Fix typo in bsdi.cf (Hans Nasten).
+304. Support for Ti3025/#9GXE64pro (Robin Cutshaw).
+303. Don't include s3_svga driver in SVGA server by default.
+
+XFree86 3.0Ea (17 September 1994)
+302. Update bsdi.cf so Gcc2 is default for versions 1.1 and later only
+ (Hans Nasten).
+301. Fix mfb.banked so it will compile with gcc 1.4x (Hans Nasten).
+300. Remove old Xconfig code.
+299. Fix some SEGV after FatalError() problems in xf86Config.c.
+298. Set max clock to 67.5MHz for Mach32 at 16bpp.
+297. Support for P9000 screen blanking at 16bpp and 32bpp (Erik Nygren).
+296. Merge in XC public fix-05.
+295. Trap bpp > 8 in S3 server for Bt485 and Ti RAMDACs since it doesn't work.
+294. Fixes for various xf86Config.c bugs.
+293. Fix S3 clock limits when using clock doubling RAMDACs.
+292. Fixes to Ti3025 code to prevent lockups (Robin Cutshaw).
+291. Move S3 Bt485 probe to after the Ti3020/5 probe (Robin Cutshaw).
+290. Fix cirrus HW cursor behaviour at top and left edges (Simon Cooper).
+289. Set background colour mapping of Cirrus HW cursor correctly
+ (Simon Cooper).
+288. Allow cirrus hardware cursor to be used when accel is turned off
+ (Simon Cooper).
+287. Don't build shared lib for LBX on Linux (Orest Zborowski).
+286. Add README.Linux (Orest Zborowski).
+285. Fix P9000 cursor problems when VT switching (Erik Nygren).
+284. Update P9000 server to work with XF86Config (Erik Nygren).
+283. Fixes for Solaris 2.4 x86 build problems with reconfig and shm.c
+ (Doug Anson).
+
+XFree86 3.0E (14 September 1994)
+282. Change the 'Device' entry in the Keyboard section of XF86Config to
+ 'Protocol'.
+281. Update the M magic formula for S3 server (Harald Koenig).
+280. Disable TI3025 support in S3 server -- it is incomplete.
+
+XFree86 3.0Dl (13 September 1994)
+279. XF86Config(4/5) manual page.
+278. LinkKit support for the W32 server.
+277. Change HW cursor code to position cursor next to the top/left edges
+ instead of disappearing (Harm Hanemaayer).
+276. Add code to the Cirrus driver to determine clock limits based on the
+ available DRAM bandwidth (Harm Hanemaayer).
+275. Add an "S3MNAdjust" entry to the Device section of the XF86Config
+ to allow tuning of the M and N parameters in the S3 server (Harald
+ Koenig).
+274. Add a Gamma entry to the Monitor section in the XF86Config (Harald
+ Koenig).
+273. Don't strip server binaries when installing.
+272. Set PLL limits in S3 server for S3 GENDAC and SDAC.
+
+XFree86 3.0Dk (11 September 1994)
+271. Add check for incorrect Modes line in XF86Config.
+270. Add some sanity checks to S3 server for supported depths.
+269. Fix SEGV during startup of VGA16 server.
+268. Support for HW cursor in the Cirrus driver (Simon Cooper).
+267. Fix LinkKit Imakefile for building SVGA server (Simon Cooper).
+266. Update lnxLib.rules for new dll tools (Orest Zborowski).
+265. Add code to the VGA servers to handle drivers (like tvga with 512k
+ in 256 colour mode) which require scaling of the raw clock to give
+ the pixel clock.
+264. Add code to the VGA servers to handle drivers (like the generic 256
+ colour driver) which use only builtin modes.
+263. Fix bitPerRGB reported by the SVGA server.
+262. ET4000/W32 accelerated server (Glenn Lai).
+261. Fix for AGX rect tile and stipple code (Henry Worth).
+260. Add checks for the presence of Modes lines to servers that require them.
+259. S3 code to handle limits imposed by clock chips.
+258. Fix S3 pMode->SynthClock code (Harald Koenig).
+257. Fix S3 raw clock setting for SC15025 (Harald Koenig).
+256. Fixes for Mach32ImageStipple (Mike Bernson).
+255. Improve AGX support for the Hercules dual RAMDACs, provide
+ better screen blanking at startup, and fix memory probe (Henry Worth).
+254. Add clockchip "ti3025" recognition (Hans Nasten).
+253. Fix xf86Config handling of ClockChip (Harald Koenig).
+252. Fix xf86Config handling of default colour weights (Harm Hanemaayer).
+251. P9000 updates (Erik Nygren).
+250. Fix SEGV problem in Mach32 font cache code.
+249. S3 code to handle clock/bpp/ramdac dependent raw-clock vs pixel clock
+ scaling.
+
+XFree86 3.0Dj (8 September 1994)
+248. Fixed and enabled ImageRead in CopyArea for P9000 server (Chris Mason).
+247. Fixed xdm server restart problem with P9000 server (Erik Nygren).
+246. Added a sample XF86Config file that gets installed as
+ $(LIBDIR)/XF86Config.eg.
+245. Change search method for XF86Config file. Only allow user-specified
+ location when real-uid == 0. Also change -xconfig flag to -xf86config,
+ and $XCONFIG to $XF86CONFIG.
+244. Fix reconfig's problem with "ps/2" (Orest Zborowski).
+243. External changes for W32 server (Glenn Lai).
+242. Change ELSA probe to check for BIOS signature first (Harald Koenig).
+241. Preliminary support for the Ti3025 & #9GXE64pro (Robin Cutshaw).
+
+XFree86 3.0Di (7 September 1994)
+240. Remove AGX server's dependence on VGA256 (Henry Worth).
+239. Fix display start address in vgawonder driver for Mach32 and Mach64
+ boards (Marc Aurele La France).
+238. Fix clock probing in vgawonder driver for Mach64 boards
+ (Marc Aurele La France).
+237. vgawonder driver now detects and rejects Mach32 boards without
+ VGA Wonder functionality (Marc Aurele La France).
+236. Add ClockChip XF86Config keyword for programmable clock chips.
+235. Add a FIFO_MODERATE option for AGX server (Henry Worth).
+234. Limited support for Big-RAMDAC and dual-RAMDAC for 2MB Hercules
+ Graphite cards (Henry Worth).
+233. Eliminate use of libvga256 in AGX server (Henry Worth).
+232. Convert AGX code to use the Ramdac keyword instead of Options (Henry
+ Worth).
+231. Fix (?) ELSA probe code's register restoral.
+230. Auto-detection code for the NetBSD aperture driver (Matthieu Herrb).
+229. Change OpStipple interface in font code (Hans Nasten and Jon Tombs).
+228. Fix clock and register restoration in P9000 server (Chris Mason,
+ Harry Langenbacher, Erik Nygren).
+227. Fix Orchid P9000 support (Harry Langenbacher).
+226. Fix BIOS Probe for Viper PCI (Bob Hollinger).
+225. 16bpp/32bpp support code for SVGA server. Cirrus 16bpp/32bpp support
+ is now enabled (Harm Hanemaayer).
+224. Fix Mach32 cache problems (Mike Bernson).
+223. Fix Mach32 memory probe.
+222. xf86Config and reconfig bug fixes.
+
+XFree86 3.0Dh (4 September 1994)
+221. Added minimal reconfig(1) man page so that 'make install.man'
+ doesn't fail.
+220. Combine Stealth64 and Miro Crystal 20SV code. This should fix
+ some Stealth64 problems.
+219. Fix InstallManPageAliases rule for FreeBSD (Ernest Hua).
+218. 16bpp and 32bpp support for Cirrus driver -- still requires some changes
+ to the SVGA server, so not enabled yet (Harm Hanemaayer).
+217. Fixes for Mach32 cache clipping problems (Mike Bernson).
+216. 32bpp S3 updates for ELSA cards (Harald Koenig).
+215. Updates to new XF86Config code.
+
+XFree86 3.0Dg (3 September 1994)
+214. Change over to new config file format -- XF86Config (Gertjan Akkerman).
+
+XFree86 3.0Df (31 August 1994)
+213. Amoeba support updates (Kees Verstoep).
+212. Fixes for Viper PCI support (Matt Thomas).
+211. MoveWindow acceleration for all depths on P9000, and acceleration
+ now enabled by default (Chris Mason).
+210. P9000 updates. Includes updates to sysconfig code, Orchid and PCI
+ support now enabled by default (Erik Nygren).
+209. SuperProbe and ModeDB updates (David Wexelblat).
+208. Support for the S3 805i and 16-bit RAMDACS (including ATT20C498,
+ STG1700, SDAC) (Bernhard Bender).
+207. Support for the S3 SDAC with S3 864 (Bernhard Bender).
+206. Basic support for ET4000W32 chipsets in the VGA servers. Includes
+ chipset detection and code to handle up to 4MB video memory (Harm
+ Hanemaayer).
+205. Mach32 server modified to use generic cache code (Mike Bernson).
+204. Allow pixmap expansion for display widths <= 800 in S3 server.
+203. Updates for SCO (including 3.2.4 and international crypt support)
+ (David McCullough).
+202. Use mi cursor for 32bpp on S3 928 because HW cursor is broken (Harald
+ Koenig).
+201. Fix nomemaccess code in s3im.c (Harald Koenig).
+200. Code to auto-detect ELSA Winner cards, and automatically enable the
+ icd2061a clock (Harald Koenig).
+199. Fix for 32bpp S3 font cache problems (Harald Koenig).
+198. Support for a linear addressing mode in the Cirrus driver (Harm
+ Hanemaayer).
+197. Performance improvements for the "fastvga256" asm code (Harm Hanemaayer).
+196. Fix for Cirrus problem caused by pvga1 probe.
+195. Code added to S3, Mach8 and VGA servers to delete modes from the
+ "Modes" line which would previously have caused the server to
+ not start (Stuart Anderson). Note: the Mach32 server already had
+ this code.
+
+XFree86 3.0De (20 August 1994)
+194. Add run-time check for SHM kernel support on FreeBSD and NetBSD.
+193. Updates to xload for Solx86 (David Holland).
+192. Fix NULL dereference in showfont (David Holland).
+191. xconsole and doc updates for NetBSD 1.0_BETA (Matthieu Herrb).
+190. Major Cirrus driver update. Includes faster solid, stipple and tile
+ filling, improved text acceleration, blt in background, shadow I/O
+ registers, optional MMIO support for 543x (Harm Hanemaayer).
+189. Support for the miroCRYSTAL 20SV (S3 964) (Eddy Olk).
+188. Preliminary 32bpp S3 support (Harald Koenig).
+187. Make TrueColor the default root visual for 15/16/24bpp S3 (Harald Koenig).
+186. Fix S3 16bpp for 1024x768 and 1152x900 and some panning problems
+ (Harald Koenig).
+185. Fix tiling problem, and VT switch problems for S3 16bpp (Harald Koenig).
+184. Fix for Ti3020 ramdac support at >8bpp (Robin Cutshaw).
+183. AGX server fixes. Includes CopyPlane, (vga) save/restore, SC15021 CLUT
+ access, scratchpad config. (Henry Worth).
+182. Merge in XC public fix-04.
+
+XFree86 3.0Dd (12 August 1994)
+181. Fix for unnecessary read-ahead in mfbblt, and remove the '-32' display
+ width restriction (Pascal Haible, Gertjan Akkerman).
+180. Support for SGS/inmos STG1700 RAMDAC -- S3 server (Bernhard Bender).
+179. Performance improvements for AGX server (Henry Worth).
+178. More 15/16bpp fixes for S3 (Harald Koenig).
+
+XFree86 3.0Dc (11 August 1994)
+177. Various 15/16bpp S3 fixes (Jon Tombs, Harald Koenig).
+176. 16bpp support for ATT 20C490 (Jon Tombs).
+175. 16/24/32bpp code for SC15025 (Harald Koenig).
+174. Support for gamma correction in S3 server (Harald Koenig).
+173. Probe code for the SC15025 (S3 server and SuperProbe) (Harald Koenig).
+
+XFree86 3.0Db (6 August 1994)
+172. Patches for N.M value trimming (Harald Koenig).
+171. ATT20C498 and 864 support for 15/16/24bpp in S3 server (Harald Koenig).
+170. Ti3020 and Bt485 Ramdac support for 15/16/24bpp in S3 server
+ (Robin Cutshaw).
+169. Fix problems building debugging libFS (Christos Zoulas).
+168. Remove XOR'd extended register addressing in S3 server.
+
+XFree86 3.0Da (3 August 1994)
+167. Use XOR'd extended register addresses for S3 server -- avoids clash
+ with "COM4" I/O address (Jon Tombs).
+166. 16bpp S3 support (no ramdac initialisation yet) (Jon Tombs).
+
+XFree86 3.0D (1 August 1994)
+165. Fix for text restore problems with cl6420 driver (Manfred Brands).
+164. Change S3 screensaver code to do the same thing as the vga256 code
+ (Bernhard Bender).
+163. Update Cirrus driver for vga256 changes (Harm Hanemaayer).
+162. Fixes for font scaling problems on SVR4 (David Wexelblat).
+161. Remove all of the old unused pixmap cache code (David Wexelblat).
+160. Use generic font cache code for S3 server (David Wexelblat).
+159. Native AGX code for Save/RestoreAreas, CopyWindow and PaintWindow
+ (Henry Worth).
+158. Change AGX clock mappings -- see README.agx for details (Henry Worth).
+157. Update AGX server for vga256 changes (Henry Worth).
+156. Xtest fix for Linux (Erik Nygren).
+155. Speedup for cached text output in Mach8 and 8514 servers (Hans Nasten).
+154. Workaround for 6225 with LCD where full on white pixels cause display
+ problems (Philip Homburg).
+153. Fix memory handling for Mach8 boards with the SVGA vgawonder driver
+ (Marc Aurele La France).
+152. Fix some build problems on NCR SVR4 (Stuart Anderson).
+151. Fix problem which caused xjewel to lock up the S3 server when running
+ in linear mode (Harald Koenig).
+150. xman support for gzip'd man pages.
+149. Fix LinkKit problems.
+148. Omit monitor ID check in 8514 server.
+147. Fix card ident problem with ati driver.
+146. Fix asm problem in new pvga1/bank.s.
+145. Fix programs/Imakefile error.
+
+XFree86 3.0Ce (24 July 1994)
+144. Alternate "SlowBcopy()" which avoids I/O (which causes problems on
+ some cards) (Glenn Lai).
+143. Restore original mouse baud rate when exiting and VT switching (Harald
+ Koenig).
+142. pvga1 driver updates. Includes 90C33 support for 2MB, and accel code
+ updates (Bill Conn and Bill Morgart).
+141. Major updates to the SVGA ATI vgawonder driver. Includes support for
+ 4MB, probe code to detect Mach8, Mach32 and Mach64 boards, RAMDAC
+ detection, clock probe update to handle the clock chip used on Mach64
+ boards, and fixes for V3, V4 and V5 boards (Marc Aurele La France).
+140. Support for BuildServersOnly option to build only the servers using
+ a cut-down source tree (Gertjan Akkerman).
+139. Preliminary P9000 accelerated support (currently incomplete and
+ disabled by default) (Chris Mason and Erik Nygren).
+138. Preliminary Viper PCI, Orchid P9000 support (currently disabled by
+ default) (Erik Nygren).
+137. Replace the cfb.banked code with fb code which relies more on the
+ standard cfb code. For further details see the file "Design" in
+ xfree86/vga256/vga/ (Stuart Anderson).
+
+XFree86 3.0Cd (22 July 1994)
+136. Add dacspeed Xconfig keyword, and modify the S3 server to use it.
+135. Update contrib source to the XC's full release version.
+134. Fix pixel doubling problem on #9 GXE64 cards (Robin Cutshaw).
+133. Change '--print' to 'print-libgcc-file-name' in Linux config files
+ for compatibility with gcc 2.6 (Orest Zbrowoski).
+
+XFree86 3.0Cc (19 July 1994)
+132. Make use of the Xconfig Ramdac keyword in the S3 server.
+131. Improved support for the ELSA W2000Pro (Dirk Hohndel).
+
+XFree86 3.0Cb (16 July 1994)
+130. Updated xc/bug-report for XC fix-03.
+129. Don't mark duplicate clocks as zero in VGA servers.
+128. Support for #9GXE64 in S3 server (Robin Cutshaw).
+127. Tiled pixmap/stipple expansion for the S3 server (David Wexelblat).
+126. Tiled pixmap/stipple expansion for Mach8 and 8514 servers (Hans Nasten).
+125. P9000 updates. Includes colour restoration fix, changes in Modes
+ processing, and removal of banking support (Erik Nygren).
+124. 16 and 32 bpp TrueColor support for the P9000 server (Erik Nygren).
+123. Updates to AGX server. Includes font cache fixes, line fixes and
+ some more tuning options (Henry Worth).
+122. Aperture driver for NetBSD (Matthieu Herrb).
+121. Added basic man page for beforelight (Rich Murphey).
+120. Swap order of libXExExt and libXext.
+119. Remove the temporary Mach32ShareCfb option.
+
+XFree86 3.0Ca (28 June 1994)
+118. NetBSD updates (Christos Zoulas).
+117. Various updates for Minix (Philip Homburg).
+116. Support for including the MIT-SCREEN-SAVER extension (David Holland).
+115. Fixes for AGX font cache code (Henry Worth).
+114. Banking support for P9000 (doesn't seem to work yet) (David Moews).
+113. Text restoration code for P9000 (Chris Mason).
+
+XFree86 3.0C (22 June 1994)
+112. Fix server crash when started with a lock key on.
+111. Recognise 864/964 PCI as capable of linear memory access.
+110. Fix ramdac access and clock probe problems with AGX server (Henry Worth).
+109. Support for Stealth 64 (S3 964 + Bt485) (Steven Parker).
+108. Fix for 4-pixel border problem with S3 864 pixmux (Harald Koenig).
+107. Allow the S3 SVGA driver to recognise the 864 and 964 (Harald Koenig).
+106. Improved 5434 support, and accelerated copyPlane1to8 for cirrus
+ (Harm Hanemaayer).
+
+XFree86 3.0Bc (19 June 1994)
+105. Fix VT switch problem in 16bpp Mach32 when sharing cfb.
+104. Add framework for a ramdac Xconfig setting (like chipset).
+103. Reorganise mode/clock matching code (Marc Aurele La France).
+102. Fix server's client count problem after authorisation failure.
+101. Option "power_saver" to enable power-down mode on "green" monitors.
+ So far this is implemented only for VGA (all depths) and S3 servers.
+100. Remove old "memaccess" S3 option.
+ 99. Add Option "pci_hack" to work around a lockup problem reported with
+ some 928-P cards.
+ 98. Fix S3 928-P detection/reporting.
+ 97. Don't allow S3 "nomemaccess" option for 864/964 chipsets.
+ 96. Make cbrt a library -- removes the need for NeedCbrt on Linux
+ (Marc Aurele La France).
+ 95. Change ATI SVGA driver to Marc Aurele La France's version
+ (includes support for Vga2 and Vga16).
+ 94. Function prototyping for AGX, and prototype cleanup in vga16 (Stuart
+ Anderson).
+ 93. Fix (not complete?) problem with dual-headed servers.
+
+XFree86 3.0Bb (16 June 1994)
+ 92. AGX server (Henry Worth).
+ 91. Accelerated support for 90C33 (Bill Conn).
+ 90. Use s3ImageWriteFunc to load S3 cursor.
+ 89. Fix problems with SPEA Mercury for clocks > 120MHz (Norbert Distler).
+ 88. Code to program S3 GENDAC clock (Clocks "s3gendac") (Jon Tombs).
+ 87. Fix some build problems with lbx.
+ 86. Build servers with -DAVOID_GLYPHBLT.
+
+XFree86 3.0Ba (11 June 1994)
+ 85. Preliminary ELSA Winner 2000PRO support (S3 964) (Dirk Hohndel).
+ 84. Updates to S3 864 support (Harald Koenig).
+ 83. Merge in XC fix-02.
+
+XFree86 3.0B (6 June 1994)
+ 82. bitblt fixes (including big memory leak) for 8514, Mach8, Mach32 and
+ S3 servers (Tiago Gons).
+ 81. line/seg fixes for 8514 and Mach8 servers (Tiago Gons).
+ 80. Remove separate cfb libs for Mach32 (only compile-tested so far).
+ 79. Restore hw/xfree86/etc directory.
+ 78. Update bsdinst.sh for SVR4 (use /usr/ucb/install, and run 'mcs -d'
+ as well as strip).
+ 77. Cirrus driver updates (Harm Hanamaayer).
+ 76. Mach support (Robert Baron).
+
+XFree86 3.0Ac (1 June 1994)
+ 75. Amoeba fixes (Kees Verstoep).
+ 74. Fixes for Mach32 dashed line/segment code (Mike Bernson).
+ 73. Preliminary 90C33 support (Bill Conn).
+ 72. NetBSD.cf updates, and README.NetBSD added (Matthieu Herrb).
+ 71. Preliminary support for the ELSA Winner 1000PRO-VL-2 (Harald Koenig).
+ 70. Add "weight" and "displayWidth" entries to ScrnInfoRec.
+ 69. Banked vga2 server (Pascal Haible).
+ 68. Font cache changes for the Mach8 and 8514 servers. This allows them
+ to work without a font cache, and should allow their use with 512k
+ Mach8 cards. (Hans Nasten)
+ 67. Don't include XIE in the Mono and VGA16 servers (it doesn't handle
+ bit-order != byte_order).
+ 66. Add LinkKit and updated VGADriverDoc.
+
+XFree86 3.0Ab (28 May 1994)
+ 65. Add support for gzip'd man pages on FreeBSD.
+ 64. P9000 server (Erik Nygren).
+ 63. Video7 SVGA driver (Craig Struble).
+ 62. CL6420 SVGA driver (Manfred Brands).
+ 61. Set default paths for xdm for *BSD (so {Give,Take}Console can find chown).
+ 60. Add a hw/xfree86/doc directory, and start putting the docs back.
+ 59. Fixes for Amoeba support (Kees Verstoep).
+
+XFree86 3.0Aa (22 May 1994)
+ 58. Merge in XC public fix-01.
+ 57. Updates to FreeBSD.cf.
+ 56. Add xf86site.def which can optionally be included from site.def.
+ 55. SCO support and some bug fixes (David McCullough).
+ 54. Some initial untested S3 864/964 code (Harald Koenig).
+ 53. Fix for bsdLib.tmpl.
+ 52. STREAMSCONN fixes for xdm, chooser and Xserver XDMCP code (Stuart
+ Anderson).
+
+XFree86 3.0A (15 May 1994)
+ 51. SVGA driver for the AL2101 chipset (Paolo Severini).
+ 50. SVGA driver for the MX68000 and MX68010 chipsets (Frank Dikker).
+ 49. Updates to the Cirrus driver (Harm Hanemaayer). Includes code cleanup,
+ mono support, improved handling of the 5430, 5434, and transparent
+ text acceleration.
+ 48. Preliminary code for detecting S3 864/964 and AT&T 20C498 (Harald Koenig).
+ 47. Generic VGA256 driver -- works only at 320x200 (Harm Hanemaayer)
+ 46. Fixes for vga2/mfb and vga16/mfb Imakefiles.
+ 45. Include SuperProbe.
+
+XFree86 3.0d (8 May 1994)
+ 44. Add missing files to vga2/mfb.
+ 43. Set VendorString and VendorRelease up for XFree86.
+ 42. Workaround for STREAMSCONN Xdmcp problems (Xserver and xdm).
+ 41. 16 bit (directcolor) support for Mach32 (Craig Groeschel).
+ 40. Minix 3886vm support (Philip Homburg).
+
+XFree86 3.0c (6 May 1994)
+ 39. Fixes for Solaris X86 (Doug Anson).
+ 38. No longer link the Mono and VGA16 servers with Xserver/mfb/libmfb.a.
+ 37. Updates to the VGA16 code (Gertjan Akkerman). Includes banking support
+ (old-style rather than the Xsvga method), staticcolor visual, oak
+ driver enabled, added some missing files to vga16/mfb.
+ 36. Fix Linux shared libs (Orest Zborowski)
+ 35. Apollo mono driver (Hamish Coleman)
+ 34. Support for dual-headed vga2+mono and vga16+mono servers (Pascal Haible).
+ 33. Reorganisation of the mono server (Pascal Haible). Includes removing
+ xfree86/bdm2, xfree86/hga2, and replacing them with xfree86/mono.
+ 32. Fixes for PEX font compiler (from our 940327a snapshot).
+ 31. Fix SIOCGIFCONF code in xdm and Xserver for SVR4 (with Lachman TCP)
+ and FreeBSD. There are still xdm and chooser problems on SVR4.
+
+XFree86 3.0b (29 April 1994)
+ 30. Add S3 driver to SVGA server.
+ 29. Disable accelerated text blit for Cirrus 543x.
+ 28. Reorder some of the Bt485 code, and get clock doubling working again
+ without pixmux.
+ 27. Fix image shift problem for pixmux on #9 cards (Robin Cutshaw).
+ 26. Fix initialisation bug for Cirrus 62{2,3}5 cards (Harm Hanemaayer).
+ 25. Remove 8514 monitor ID check in Mach8 server.
+ 24. Fix for problem with compaq driver.
+ 23. Add "no_bitblt" option for the cirrus driver.
+ 22. Recognise the 5429 in the cirrus driver.
+ 21. Disable interrupts while programming the ICD2061A.
+ 20. sync-on-green support for the TI3020.
+ 19. Move S3 clock doubler setting from icd2061ClockSelect() to s3Init().
+ 18. Fix dac_8_bit for Bt485 cursor, and fix Bt cursor blanking problem.
+ 17. S3 pixmux support for STB Pegasus, and cleanup of pixmux and icd code.
+ (Leonard Zubkoff).
+ 16. Change "fifo_conservative" setting for CLGD543x.
+ 15. Don't reserve video memory for HW cursor on S3 when using a RAMDAC cursor.
+ 14. Allow the "8clocks" option to force 9 clocks instead of 17 on WD90C3{0,1}
+ cards.
+ 13. Fix some DEALLOCATE_LOCAL problems in accel servers.
+ 12. Support for Bt485 on #9 cards (Robin Cutshaw).
+ 11. Fixes for Cirrus driver (Harm Hanemaayer).
+ 10. Fix for text restore problem on some S3 cards (Jon Tombs).
+ 9. Workaround for Mach32 detection problem on some platforms.
+ 8. Fix incorrect usage of $(DESTDIR) in some lnxLib.rules.
+ 7. Code to detect 928-P (Harald Koenig).
+ 6. Fix cbrt() in mi/ so that it can handle negative arguments.
+ 5. Fix for line clipping problem in cfb.banked (Glenn Lai).
+
+XFree86 3.0a (28 April 1994)
+ 4. Add XFree86 server names to the list in xinit.
+ 3. Set XawI18nDefines correctly for SVR4.0.
+ 2. Update ncr.cf to pick up AllocateLocalDefines when building servers.
+ 1. Fold in client/lib OS support not picked up by the XC.
+
+XFree86 3.0 (26 April 1994)
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.2588.2.13 2003/05/10 01:12:56 dawes Exp $
+
+
+
+
+
diff --git a/hw/xfree86/doc/changelogs/CHANGELOG.ND b/hw/xfree86/doc/changelogs/CHANGELOG.ND
new file mode 100644
index 000000000..3c9e1e1f6
--- /dev/null
+++ b/hw/xfree86/doc/changelogs/CHANGELOG.ND
@@ -0,0 +1,418 @@
+XFree86 3.9jw (31 July 1998)
+1327. Fix a crash in the chips driver when the chipset is specified in the
+ config file (#1846, Taketoshi Sano).
+1326. Add more Pm2 acceleration and add DPMS support for all glint chips
+ (#1844, Alan Hourihane).
+1325. Add 8x8 pattern trapezium fills, screen to screen colour expansion
+ to the MGA driver, and fix a clipping bug with colour expansion
+ (#1843, Mark Vojkovich).
+1324. Add Screen->Screen colour expansion to XAA (#1841, Mark Vojkovich).
+1323. Fix negative widths and heights in XAA's wide line code (#1840,
+ Alan Hourihane).
+1322. Fix an XAA tiled rect alignment problem (#1839, David Bateman).
+1321. Fix XAA 8x8 mono for 24bpp.
+
+XFree86 3.9jv (24 July 1998)
+1320. Fix the BitsPerPixel() macro in cfb.h for 24bpp.
+1319. Update XAA docs (#1838, Mark Vojkovich).
+1318. Add colour expansion stipples to XAA (#1837, Mark Vojkovich).
+1317. Add a stipple replacement for the MGA driver that takes into account
+ the 256K blit maximum per operation (#1836, Mark Vojkovich).
+1316. Fix C&T memory clock messages (#1834, David Bateman).
+1315. Add some new colour expansion code for older tseng chips (W32/W32i)
+ (#1832, Koen Gadeyne).
+1314. Preliminary tseng XAA support (#1832, Koen Gadeyne).
+1313. Resync the tseng driver with the main branch version (#1832,
+ Koen Gadeyne).
+1312. Some C&T updates (#1833, David Bateman).
+1311. Speed up GXcopy for XAAFillCacheBltRects (#1831, David Bateman).
+1310. Remove some code duplication in the C&T driver (#1830, David Bateman).
+1309. Add 8x8 colour and mono fills for 8bpp and 16bpp for all C&T chips
+ and 8x8 mono fills at 24bpp for HiQV chips (#1830, David Bateman).
+1308. Fix problems with XAA 8x8 patterns (#1830, David Bateman).
+1307. Get 4bpp working with C&T chipsets, and add the ShowCache option to
+ the C&T driver (#1829, David Bateman).
+
+XFree86 3.9ju (19 July 1998)
+1306. Calculate DPI from the DisplaySize entry in the Monitor section
+ if present.
+1305. Implement "tri-state" options.
+1304. Move most of cfbcmap.c to mi.
+1303. Update the C&T driver for recent XAA ImageWrite changes, and fix
+ some bugs in CHIPSHiQVWritePixmap (#1824, Nozomi Ytow).
+1302. Optimised horizontal and vertical lines for MGA (#1823, Mark Vojkovich).
+1301. Fix some XAA bugs (#1822, Mark Vojkovich).
+1300. Major updates to the XAA documentation (#1821, Mark Vojkovich).
+1299. Update XAA for the EnterVT type change (#1821, Mark Vojkovich).
+1298. Add scanline ImageWrites to XAA (#1821, Mark Vojkovich).
+1297. Make XAA Alpha friendly (#1821, Mark Vojkovich).
+1296. Set pScrn->vtSema to FALSE in ChipCloseScreen() after restoring the
+ video hardware state.
+1295. Move xf86SetDpi() calls into PreInit().
+1294. Don't show module version info on subsequent loads.
+
+XFree86 3.9jt (18 July 1998)
+1293. Add IBM 528A to the ramdac module (#1820, Alan Hourihane).
+1292. Make it a fatal error when any AddScreen() call in XFree86's InitOutput()
+ fails.
+1291. Change the type of EnterVT() from void to Bool, and make it a fatal
+ error for this to fail.
+1290. Add a helper xf86SetBlackWhitePixels() to set the values according
+ to the presence of the -flipPixels command line option.
+1289. Add xDpi and yDpi fields to the ScrnInfoRec, and a helper xf86SetDpi()
+ to set them.
+1288. Allow a bus type prefix for BusID strings.
+1287. Remove the global xf86VTSema (David Bateman, David Dawes).
+1286. Complete the XAA 8x8 pattern caching (#1817, Mark Vojkovich).
+1285. Add a missing Millennium accel flag (#1816, Mark Vojkovich).
+1284. Make the CRTC blanking setting exact rather than allowing some unblanked
+ overscan area (#1813, Koen Gadeyne).
+1283. Prelminary TGA (AXP only) driver (#1811, 1818, Alan Hourihane).
+1282. Prelminary Bt485 ramdac support for the ramdac module (#1809, 1815,
+ Alan Hourihane).
+1281. OS-support and config updates for AXP (#1808, Alan Hourihane).
+1280. Add code to the ramdac module for initialising gamma correction
+ (1807, Alan Hourihane).
+1279. Fix C&T HiQV PCI bus support (#1802, David Bateman and Nozomi Ytow).
+1278. Add HW cursor support for the Permedia2v (#1812, Alan Hourihane).
+1277. Remove most vgahw dependencies from the glint driver (#1810,
+ Alan Hourihane).
+1276. Add preliminary support for the Permedia2v to the glint driver
+ (#1800, 1810, Alan Hourihane).
+1275. Some C&T updates (#1791, 1796, Nozomi Ytow, David Bateman).
+1274. Reintegrate Harm's XAA SolidArc code (#1814, David Bateman).
+1273. Make sure assembler usage is set correctly for x86 when MakeDllModules
+ is true (#1806, David Bateman).
+1272. Fix too little data being sent by the XAA BitmapScanline when the
+ number of dwords sent was divisible by four (#1806, David Bateman).
+1275. Fix for the swapping of fg and bg in the XAA WriteBitmap primitives
+ (#1806, David Bateman).
+1274. Add TRIPLE_BITS_24BPP code for the XAA WriteBitmap function (#1806,
+ David Bateman).
+1273. Attempts at optimised 6 and 8 pixel drawTETextScanline functions
+ in assembler (#1789, 1806, David Bateman).
+1272. Remove some redundant extern declarations (xf86Procs.h & xnest)
+ (#1790, Marc La France).
+1271. xf4bpp now loads xf1bpp (#1790, Marc La France).
+1270. Make vgahw module load cfb (re: cfbExpandDirectColors()) (#1790,
+ Marc La France).
+1269. Fix vgahw's saving/restoring of text modes, overscan handling
+ and memory leaks (#1790, Marc La France).
+1268. Fix compilation warnings in libc wrapper (Marc La France).
+1267. Rewrite VGA generic driver (Marc La France).
+1266. Fix bug that nullified the driver's mode list when deleting the
+ second-to-last mode (#1790, Marc La France).
+1265. Reduce verbosity level of the message that gets printed when
+ a driver's ValidMode() rejects a mode (#1790, Marc La France).
+1264. Allow drivers to supply a default mode (#1790, Marc La France).
+1263. Allow for more than 4 (== MAXSCREENS) drivers to probe a system
+ (1790, Marc La France).
+1262. Fix xf4bpp integration (#1790, Marc La France).
+1261. Implement -dpi flag and -flippixels flags (#1790, Marc La France).
+1260. Fix CLKDIV2 support (#1790, Marc La France).
+1259. Implement multiscanned modes (#1790, Marc La France).
+1258. Fix some depth/bitsPerPixel confusion (#1790, 1799, Marc La France).
+1257. Fix memory leaks in the MITSHM and dix pixmap code (#1790,
+ Marc La France).
+1256. Fix a minor header problem in the Type1 code (#1790, Marc La France).
+
+XFree86 3.9js (12 July 1998)
+1255. Make sure DPMSEnabled gets set correctly.
+1254. Use a BlankScreen function with xf86GetClocks() that takes more
+ appropriate arguments than SaveScreen.
+1253. Fix SEGV in TsengProbe() when there are no Tseng cards present.
+1252. Add caching of 8x8 patterns to XAA (#1787, Mark Vojkovich).
+1251. XAA updates, including TRIPPLE_BITS_24BPP, check QWORD padding in
+ the font rendering, and an attempt at Pentium optimised assembler
+ for 6 pixel wide TE font (#1785, David Bateman).
+1250. Fix an omission in xf86MatchPciInstances() (#1786, Kevin Martin).
+1249. Numerous C&T driver fixes and HW cursor support added (#1781-1783,
+ David Bateman).
+1248. Add support for 1, 8, 16, 32 and 64 bit interleaves to the XAA
+ hardware cursor code (#1780, David Bateman).
+1247. Fix a segfault in xf86DPMSInit() (#1780, David Bateman).
+1246. Some updates to the ramdac module (#1777, 1778, Alan Hourihane).
+1245. Add 500TX support to the glint driver (#1777, Alan Hourihane).
+1244. Fix parsing of ModeLine keyword (#1779, Keldon Jones).
+
+XFree86 3.9jr (5 July 1998)
+1243. Avoid mishandling 64-bit PCI base addresses, and "safely" avoid them.
+1242. Fix font modules so that clients can use the font libraries
+ (#1774, Alan Hourihane, David Dawes).
+1241. Fix for XAA GC problems that show up when backing store is enabled
+ (#1775, Mark Vojkovich).
+1240. Fix for xf86MatchPciInstances() (#1773, Alan Hourihane).
+1239. Unload drivers in InitOutput that end up not being used.
+1238. Make the ScrnInfoRec.privates persistent rather than per-generation
+ data.
+1237. Remove the "requiredModules" field from the ScrnInfoRec and have the
+ drivers load the modules they need explicitly. The loader and parts
+ of the design have been updated to take this into account.
+1236. Remove refcount code added in change 1175, and fix problem with the
+ preexisting refcount code not incrementing the count when modules
+ are loaded second and subsequent times.
+1235. Add more info for LoaderPrint{Symbol,Address} functions (1772,
+ Stuart Anderson).
+1234. Fix some Linux/Alpha loader problem (#1772, Stuart Anderson).
+
+XFree86 3.9jq (3 July 1998)
+1233. Loadable font modules (#1767, Alan Hourihane).
+1232. Add Option "ShowCache" to allow scrolling down to see part of the
+ pixmap cache (#1770, Mark Vojkovich).
+1231. Fix MGA loss of sync problem when scrolling the desktop (#1770,
+ Mark Vojkovich).
+1230. Add XAA cursor support to the MGA driver (#1770, Mark Vojkovich).
+1229. Have XAA wrap the EnterVT and LeaveVT functions so that it can
+ invalidate the pixmap cache. Also further progress towards
+ getting 8x8 patterns cached (#1769, Mark Vojkovich).
+1228. XAA cursor support. Only the TVP3026's style cursor data packing
+ (ie. source and mask not interleaved) is supported at the moment
+ (#1768, 1771, Mark Vojkovich).
+1227. Implement correct CRTC blanking timings (Koen Gadeyne).
+1226. Lots up updates to the Tseng driver (Koen Gadeyne).
+1225. Chips & Technologies driver converted to ND (#1761, David Bateman).
+1224. Ramdac/colourmap module. Support for IBM ramdac so far (#1759, 1760,
+ Alan Hourihane).
+1223. Set the Crtc[HV]Adjusted flags more appropriately in
+ xf86SetCrtcForModes() (#1757, David Bateman).
+1222. Change xf86MatchPciInstances() to work with drivers supporting chips
+ from more than one vendor (#1753, 1754, Alan Hourihane).
+
+XFree86 3.9jp (27 June 1998)
+1221. Preliminary tseng driver (Koen Gadeyne).
+1220. Add the Xv extension (from the R5 contrib) (#1749, Mark Vojkovich).
+1219. Fix a rendering error in cfb's bit expansion code that can show
+ up with a very complex clip mask (#1747, Jens Owen).
+1218. Allow XAA's pixmap cache to use smaller slots when the larger ones
+ are not available (#1751, Mark Vojkovich).
+1217. Document the offscreen memory manager (#1747, Mark Vojkovich).
+1216. Fixes and temporary workarounds for mibank problems detected by xf4bpp
+ (#1743, Marc La France).
+1215. Fix a XF68_FBDev typo (#1743, Marc La France).
+1214. Fix up cfb and mfb header files (#1743, Marc La France).
+1213. Fix up xf1bpp's integration into the new design (#1743, Marc La France).
+1212. Introduce xf4bpp, a port of vga16 to the new design (#1743,
+ Marc La France).
+1211. Allow for zero to be a valid setting for chipID and chipRev. These
+ are now initialised to -1 to indicate when they have not been set.
+
+XFree86 3.9jo (22 June 1998)
+1210. Add accelerated solid trapezoid fills to the MGA driver (#1740,
+ Mark Vojkovich).
+1209. Add accelerated polygons and wide lines to XAA, and fix some pixmap
+ cache problems (#1739, Mark Vojkovich).
+1208. Move the offscreen memory manager from XAA to xfree86/common
+ (#1739, 1741, Mark Vojkovich).
+1207. Fix a typo in the glint driver (#1737, Alan Hourihane).
+1206. Resync the parser with the common layer data structures, removing
+ some obsolete things and adding a few missing things.
+1205. Include the class/subclass/interface values in pciVideoRec.
+
+XFree86 3.9jn (21 June 1998)
+1204. Replace the "MAGIC" module init interface with the more general
+ SetupProc/TearDownProc interface.
+1203. Fix some typos in the DESIGN doc (Koen Gadeyne).
+1202. Add some more acceleration to XAA, and support for it to the MGA
+ driver (#1732, 1733, 1735, Mark Vojkovich).
+1201. Preliminary pixmap cache support and offscreen memory manager added
+ to XAA (#1732, 1734, 1736, Mark Vojkovich).
+1200. Fix linepitch handling in the glint driver (#1731, Alan Hourihane).
+
+XFree86 3.9jm (15 June 1998)
+1199. Add preliminary infrastructure for different pixmap and framebuffer
+ formats.
+1198. Start a module/driver name space registry.
+1197. Accelerated glint driver (#1725-1727, Alan Hourihane).
+1196. Resync the PCI IDs.
+1195. Update xf86GetPciInfoForScreen() and add a similar
+ xf86GetIsaInfoForScreen().
+1194. Update DGA support code in the common layer.
+1193. Update DPMS support code in the common layer.
+1192. Reintroduce xf86GetClocks() as a helper.
+
+XFree86 3.9jl (9 June 1998)
+1191. Bring over the serial port functions (from Metro Link).
+1190. Bring over the os-support/pmax code.
+1189. Change the interface for xf86MatchPciInstances() to use separate
+ lists of PCI chipset names and IDs.
+1188. Fix some build problems on SVR4.0 and Solaris.
+1187. Rename xf1bpp_mfb* entry points to xf1bpp (#1714, Marc La France).
+1186. Port some recent vga16 changes over to the nd branch (#1714,
+ Marc La France).
+1185. Remove CloseScreen() and SaveScreen() from ScrnInfoRec's (#1714,
+ Marc La France).
+1184. m68k's XF86_FBDev now uses low-level backing store functions
+ during VC switches (#1714, Marc La France).
+1183. Push out backing store and banking wrapper initialisation to the
+ to the callers of the various <framebuffer>ScreenInit()'s. This allows
+ XAA to wrap screens after banking, but before backing store (#1714,
+ Marc La France).
+1182. Allow screen wrappers to free their private data on server reset and
+ termination (#1714, Marc La France).
+1181. Minimise the number of public globals in the common layer, and replace
+ those the drivers need with functions to access their values.
+1180. Update the PCI code to match that on the main branch.
+
+XFree86 3.9jk (4 June 1998)
+1179. Change the Xserver binary name to "XFree86".
+1178. Add support for building a static Xserver.
+1177. Clean up some of the module Imake config stuff.
+1176. Fix generic vga driver probe crash.
+1175. Keep a reference count for loading modules and avoid loading the
+ same module twice.
+1174. A first attempt at ABI versioning the modules and checking it
+ in the loader.
+1173. Add a canonical naming for modules, without things like the "lib"
+ prefix or "_drv" suffix.
+1172. Add the -layout and -screen options to allow a layout or screen section
+ to be specified from the command line.
+1171. Make the interface in the xf86Find{Vendor,Layout} parser functions
+ consistent with the others.
+
+XFree86 3.9jj (31 May 1998)
+1170. Add call to LoaderCheckUnresolved().
+1169. Add finding the correct Display subsection to the xf86SetDepthBpp()
+ helper (David Dawes).
+1168. Some os-support layer cleanups (more required).
+1167. Add a new helper to simplify the driver Probe() code for PCI cards
+ (David Dawes).
+1166. Remove some fields from the ScrnInfoRec.
+1165. Add a set of option handling functions and helpers to the common layer.
+ These allow the option data structures to be opaque to the drivers
+ (David Dawes).
+1164. Add xstrdup (Xstrdup) to os/utils.c, and treat xf86strdup the same way
+ as xf86malloc in the libc wrappers.
+1163. Fix XAA 14 pixel width fonts (#1699, Mark Vojkovich).
+1162. Fix XAA CopyGC crash (#1698, Mark Vojkovich).
+
+XFree86 3.9ji (23 May 1998)
+1161. MGA Support for the new XAA code (#1697, Mark Vojkovich).
+1160. New XAA code (#1695, 1696, Mark Vojkovich).
+1159. Millennium 2 (inc AGP) support for the mga driver (#1697,
+ Mark Vojkovich).
+
+XFree86 3.9jh (22 May 1998)
+1158. Fix 'Unknown symbol type 1e' messages in the a.out loader
+ (#1683, Matthieu Herrb).
+1157. Loader updates, including Alpha and PowerPC support (#1467, 1666,
+ Metro Link).
+1156. Add '-Wall' to gcc compile options
+1155. Add Xarch.h (#1399, Metro Link).
+1154. Resync libc/ansic wrappering.
+
+XFree86 3.9jg (3 May 1998)
+1153. Remove ilbm's call to miRegisterGCPrivateIndex(), which no longer
+ exists (#1670, Marc La France).
+1152. Fix problems with mi generic functions in mibank (#1670,
+ Marc La France).
+1151. Symbolically link xf86_ansic.h so osPexFont.c can #include it
+ (#1670, Marc La France).
+1150. Fix opaque types in xf86_libc.h (#1670, Marc La France).
+1149. Fix a typo in mibank which makes miScanLineWidth() always fail.
+1148. Fix various missing symbols that show up when attempting to use
+ non-dlopen modules.
+
+XFree86 3.9jf (18 April 1998)
+1147. Add xf1bpp framebuffer for use by vga2 and mono (i.e. hga2)
+ drivers. This is just a copy of mfb compiled for the bitmapScanlinePad
+ and bitmapBitOrder needed by these hardware framebuffers (#1636,
+ Marc La France).
+1146. A mode that fails validation (for whatever reason) no longer
+ affects the resulting virtual resolution (#1636, Marc La France).
+1145. miScanlineWidth() is now passed the hardware plane pixmap format
+ rather than nBankBPP (the harware plane bpp) and nPixelBPP (the
+ "total" bpp), and have xf86ValidateModes() call miScanLineWidth()
+ to determine an appropriate line pitch for the virtual resolution
+ requested (#1636, Marc La France).
+1144. Remove the helpers' concept of pixelArea as this can be derived
+ from videoRam and bitsPerPixel, express pitchInc in bits, and
+ pass apertureSize to mode validation helper (#1636, Marc La France).
+1143. Introduce the new mi banking wrapper (not yet used) (#1636,
+ Marc La France).
+1142. Make each screen keep track of the pixmap formats and display-
+ wide attributes it needs in its ScreenInfoRec. InitOutput()
+ can then ensure consistency before adding the screens to the
+ display (#1636, Marc La France).
+1141. Use low-level backing store functions to save/restore the
+ screen during VC switches (doesn't work with vga16) (#1636,
+ Marc La France).
+1140. Move a copy of the backing store low-level function pointers
+ into the ScreenRec. This allows them to be wrapped (#1636,
+ Marc La France).
+1139. Rename [GS]etRootPixmap screen entries to [GS]etScreenPixmap
+ and add [GS]etWindowPixmap entries. Some may not be needed and
+ can be removed later (#1636, Marc La France).
+1138. Remove cfbScreenInitLong() entries. They are not needed since the
+ RGB ordering and masks can be fixed after calling cfbScreenInit()
+ (#1636, Marc La France).
+1137. Fix the saving and restoring of PSZ #define in cfb??.h headers,
+ add copyright notice to them, and get right Imakefile to include
+ them in the link kit (#1636, Marc La France).
+1136. Fix oversight in 1133 (#1636, Marc La France).
+1135. Some include file fixes (#1539, Marc La France).
+
+XFree86 3.9je (14 February 1998)
+1134. Move framebuffer ModuleInit funtions into separate files (#1475,
+ Marc La France).
+1133. Move the following GC privates to the GC structure proper:
+ pRotatedPixmap, pCompositeClip, fExpose, freeCompClip. This is in
+ preparation for the banking mi wrapper (#1451, Marc La France).
+1132. Minor bug fix to mfb and afb framebuffers (#1443, Marc La France).
+1131. Ensure window and GC privates are aligned on a sizeof(long)
+ boundary (#1442, Marc La France).
+1130. Minor optimisation of cfb's ImageGlyphBlt entry, required for
+ the new banking code (#1431, Marc La France).
+
+XFree86 3.9jd (1 February 1998)
+1129. Update the generic VGA driver for these changes (David Dawes).
+1128. Flesh out and update the design document, and add it to the source
+ tree (in xc/programs/Xserver/hw/xfree86/DESIGN) (David Dawes).
+1127. Working non-accel MGA driver (Millennium I only) (David Dawes).
+1126. Update parser (from Metro Link).
+1125. Fill in some missing bits of infrastructure, and fix some bugs there
+ (David Dawes).
+
+XFree86 3.9jc (16 January 1998)
+1124. A start at modifying non-accel MGA driver for new design (David Dawes).
+1123. Pick up multimedia/video PCI devices in xf86GetPCIVideoInfo()
+ (David Dawes).
+1122. Fix some header usage and missing prototypes (David Dawes).
+1121. Continue filling in missing bits of the new design infrastructure
+ (David Dawes).
+1120. Get the generic vga driver working (using dll modules on FreeBSD)
+ (David Dawes).
+1119. Reorganise the vgahw module (David Dawes).
+
+XFree86 3.9jb (25 September 1997)
+1118. Continuation of 1117.
+
+XFree86 3.9ja (29 July 1997)
+1117. Start converting the generic vga driver to the new design (Dirk Hohndel,
+ David Dawes).
+1116. Add flags to allow to build some modules as shared objects (Dirk Hohndel).
+1115. Fix dll loader to work on Linux (and re-fix it to work on FreeBSD
+ again) (Dirk Hohndel, David Dawes).
+1114. Add helper functions for various stages of the server (David Dawes,
+ Dirk Hohndel).
+1113. Add glue code to interface with new parser and create internal data
+ structures (David Dawes, Dirk Hohndel).
+1112. Split up vga256/vga into vgahw and vgafb (Dirk Hohndel).
+1111. New parser for the config file (Stuart Anderson).
+1110. Start work on the new design.
+
+XFree86 3.9j (12 July 1997)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG.ND,v 1.3 1998/08/02 05:16:54 dawes Exp $
diff --git a/hw/xfree86/doc/changelogs/CHANGELOG.R5 b/hw/xfree86/doc/changelogs/CHANGELOG.R5
new file mode 100644
index 000000000..5f8e03a19
--- /dev/null
+++ b/hw/xfree86/doc/changelogs/CHANGELOG.R5
@@ -0,0 +1,1249 @@
+XFree86 2.1.1 (4 May 1994)
+ 36. Fix server crash on reset problem in Mach32 and S3 servers
+ 35. Fix typos in apollo driver
+ 34. Fix for Imake config problem on ISC 4.0
+ 33. ET3000 memory probe fix for SuperProbe
+ 32. Documentation updates
+ 31. Some updates for NetBSD-current
+
+XFree86 2.1.0B (26 April 1994)
+ 30. Disable accelerated text blit for Cirrus 543x
+ 29. Reorder some of the Bt485 code, and get clock doubling working again
+ without pixmux
+ 28. Disable the PIXMUX_SWITCH_HACK stuff -- it doesn't seem needed any more
+ 27. Fix image shift problem for pixmux on #9 cards (Robin Cutshaw)
+ 26. Fix initialisation bug for Cirrus 62{2,3}5 cards (Harm Hanemaayer)
+ 25. Remove 8514 monitor ID check in Mach8 server
+ 24. Updates to the NetBSD README (Matthieu Herrb)
+ 23. Hey Rocky, watch me unbreak the Compaq driver... This time for sure...
+
+XFree86 2.1.0Ab (16 April 1994)
+ 22. Rewrite of ATI SVGA driver (Marc La France)
+ 21. Add "no_bitblt" option for the cirrus driver
+ 20. Recognise the 5429 in the cirrus driver
+ 19. Disable interrupts while programming the ICD2061A
+ 18. sync-on-green support for the TI3020
+ 17. Move S3 clock doubler setting from icd2061ClockSelect() to s3Init()
+ 16. Fix dac_8_bit for Bt485 cursor, and fix Bt cursor blanking problem
+ 15. SuperProbe updates
+
+XFree86 2.1.0Aa (10 April 1994)
+ 14. BDM2 apollo driver (Hamish Coleman)
+ 13. S3 support for switching between pixmux and non-pixmux modes
+ (Amancio Hasty)
+ 12. S3 pixmux support for STB Pegasus, and cleanup of pixmux and icd code
+ (Leonard Zubkoff)
+ 11. Change "fifo_conservative" setting for CLGD543x
+ 10. Updates for NetBSD-current, including bumping shared lib revs
+
+XFree86 2.1.0A (7 April 1994)
+ 9. Don't reserve video memory for HW cursor on S3 when using a RAMDAC cursor
+ 8. Allow the "8clocks" option to force 9 clocks instead of 17 on WD90C3{0,1}
+ cards
+
+XFree86 2.1.0a (6 April 1994)
+ 7. Fix some DEALLOCATE_LOCAL problems in accel servers
+ 6. Support for Bt485 on #9 cards (Robin Cutshaw)
+ 5. Fixes for Cirrus driver (Harm Hanemaayer)
+ 4. Fix for text restore problem on some S3 cards (Jon Tombs)
+ 3. Workaround for Mach32 detection problem on some platforms
+ 2. Fix incorrect usage of $(DESTDIR) in some lnuxLib.rules and x386.cf rules
+ 1. Code to detect 928-P (Harald Koenig)
+
+XFree86 2.1 (11 March 1994)
+151. OS README updates (affect individual OSs only)
+150. Fix AltGr handling for Linux (affects Linux only)
+149. Comment out the unused s3Save() and s3Restore() functions -- a typo in
+ some unreachable code may cause problems with some compilers (should not
+ affect any OSs)
+148. Linux compile-time fix for fonts/PEX/lex.l (affects Linux only)
+147. Late cirrus fix for large tiles
+146. Fix for LinkKit site.def and Imakefile (remove dbm references)
+
+XFree86 2.0Z (8 March 1994)
+145. Fix text/graphics mode switching for pixmux with SPEA Mercury. This
+ code is now reasonably stable (interlace support is still absent though)
+ (Norbert Distler)
+144. Fix for cirrus stipple fill when virtual width is not a multiple of 32
+143. Linux keyboard updates
+
+XFree86 2.0Ce (7 March 1994)
+142. Preliminary support for Bt485 pixel multiplexing on the SPEA Mercury
+ card (Norbert Distler)
+141. More documentation updates
+140. SuperProbe updates (ATI and Weitek fixes)
+139. Fix for second MB cirrus BitBLT but -- BitBLT now turned back on for
+ 2MB cards (Wolfgang Jung)
+
+XFree86 2.0Cd (6 March 1994)
+138. Default to building shared libs for FreeBSD
+137. Updates to cirrus driver: (Harm Hanemaayer)
+ New Option flag "no_2mb_banksel" for cards that have 2MB in the form
+ of 512kx8 DRAMS (4 chips)
+ Disable BitBLT engine use when using more than 1MB because there
+ are problems
+ New text bitmap transfer code
+136. Documentation updates
+135. Fix mi/cbrt.c so it handles negative arguments.
+
+XFree86 2.0Cc (5 March 1994)
+134. Update x386/etc/console.h to current version
+133. Some documentation updates (including removing README.XS3)
+132. Updates to cirrus driver: (Harm Hanemaayer)
+ New option flags "fifo_conservative" and "fifo_aggressive" to
+ control the CRTC fifo threshold.
+ Reduce clock limit for the 5420
+ Remove accelerated PolyGlyphBlt -- it causes problems
+131. Modify pvga1 driver to detect the 90C24 and treat it as a 90C30
+130. Support for the SC15025 RAMDAC in 8-bit/RGB mode (requires
+ the "sc15025" and "dac_8_bit" options) (Helmut Geyer)
+129. Fix vga colourmap save/restore when using a RAMDAC in 8-bit mode (Helmut
+ Geyer)
+
+XFree86 2.0Cb (3 March 1994)
+128. Fix for "snow" problems on WD90C3x cards with 80MHz clock (Anders Bostrom)
+127. Fixes for compilation problems on Mach and ISC
+126. Support for 8-bit/RGB for the AT&T 20C490/491 ramdacs (S3 server).
+ There is no auto-detect, so the "att_20c490_1" Option must be
+ specified (together with the "dac_8_bit" Option)
+125. Added some sample patches from Gertjan Akkerman which document some
+ useful changes which could me made to the VGA16 server (these are
+ in x386/vga16/doc/).
+124. Fix Mach8 and Mach32 server hang when run on a card with no Mach chip
+123. Update xterm's terminfo file
+122. Install mit/config/README in lib/X11/config
+121. Modify Trident driver to recognise the 9000i, 9200CX, 9100B and 9420
+ chipsets. The first is treated as a 9000, and the last three are
+ treated as a 8900CL.
+
+XFree86 2.0Ca (2 March 1994)
+120. Fix CR60 setting for clocks > 100MHz (S3 server)
+119. Fix cirrus compilation on SVR4, and bsd_init.c typo
+118. Enable Home/End esc sequences for xterm on all OSs
+117. SuperProbe register unlock fixes
+
+XFree86 2.0C (1 March 1994)
+116. Allow the MIT-SHM extension to be disabled at run-time on BSD systems
+ when kernel support for sysv-shm isn't present
+115. Enable Home/End esc sequences for xterm (Linux only -- should this be
+ extended?)
+114. Set default xterm tty parameters to reasonable values (fixes problems
+ seen when using xdm)
+113. gccmakedep fix (David McCullough)
+112. Special-case code for lines where this is one rectangle in the clip
+ region -- for Mach32 (Craig Groeschel)
+111. Update to compaq probe code -- hopefully this will reduce the number
+ of false positives
+110. Major updates to SuperProbe
+109. Cirrus driver patches
+
+XFree86 2.0Bb (27 February 1994)
+108. Removed experimental "cr60=..." options (S3), and made CR60=0xFF
+ the default setting. The "dram_{slow,med,fast}" options still remain
+ as un-documented options (just in case).
+107. Manual page updates
+106. Support for linear fb location on Mach32 PCI cards
+105. Include Solaris x86 "aperture driver" (Doug Anson and David Holland)
+104. Updated Thomas Wolfram's SVR3 mmap driver to version 2.2.3
+103. Allow the MemBase setting in Xconfig specify the high 5 bits of the
+ 4MB aperture address for the Mach32 server, and the high 6 bits of
+ the LAW address for the S3 server
+
+XFree86 2.0Ba (25 February 1994)
+102. Fix/speedup for window->pixmap part of CopyPlane() in the accel servers
+101. Fix bits per RGB reported for S3 server when using 8bpRGB
+100. Modify code for determining when pixel multiplexing is required for
+ the S3 server, and restrict the DisplayWidth to either 1024 or 2048 when
+ pixel multiplexing is used
+ 99. Preliminary support for the SC11412 clock chip used on the SPEA Mercury
+ (S3). Use 'Clocks "sc11412"' to select this (Norbert Distler)
+ 98. "icd2061a" now uses the "icd2061a_slow" clock setting algorithm.
+ The name "icd2061a_slow" will be dropped in the release after 2.1
+ 97. Fixes for zero-width arcs for the VGA16 server (Gertjan Akkerman)
+ 96. Support for David Holland's "aperture driver" for linear fbs on Solaris
+ 95. Fix Solaris panic when no free VTs are available
+ 94. Much-enhanced accelerated support for Cirrus chips (Harm Hanemaayer)
+ 93. Support for up to 17 clocks on WD90C3x cards (Anders Bostrom)
+ 92. Fix for Compaq avga driver
+ 91. Keyboard updates to handle Linux' key remapping (Orest Zborowski)
+ 90. README for Solaris (David Holland)
+
+XFree86 2.0B (21 February 1994)
+ 89. Possible fix for Bt probe problem that some people see
+
+XFree86 2.0Ab (19 February 1994)
+ 88. Combine DRAM and non-DRAM mach8 image assembler code into single files
+ with #ifdefs
+ 87. Fix for hga2 driver to prevent it from blanking MDA displays when
+ swithching back to text mode
+ 86. Code to explicitly recognise the *BSD PCVT console driver
+ 85. Preliminary support for the S3 805i in interleaved mode
+ 85. Fix for single-bank SVGA bitblt code (Giovanni Novelli)
+ 84. Fix alu usage in mach32CopyArea() (Craig Groeschel)
+ 83. Fix dash line support in Mach32 server (Mike Bernson)
+
+XFree86 2.0Aa (13 February 1994)
+ 82. S3 "No_Bt485" and "No_Ti3020" options have been replaced by "Normal_DAC",
+ and a "20C505" option has been added
+ 81. ATI text restore fixes for Mach32 server (Ton van Rosmalen)
+ 80. Planemask fixes for Mach32GetImage() (Craig Groeschel)
+ 79. Prevent S3 Ti cursor from being turned on when the screen is blanked
+ 78. No longer define __386BSD__ for BSD/386, NetBSD, FreeBSD. Change
+ the FreeBSD define from -DFreeBSD to -D__FreeBSD__. Code outside
+ ddx/x386 now uses the value of BSD (from <sys/param.h>) and for
+ code below ddx/x386, __BSD__ is defined for all the x86 BSD OSs
+ 77. Rewrite of Mach32 memory detection code (Mark Weaver)
+ 76. Set clock-doubler cut-in to 67.5MHz for Bt485 and 90MHz for AT&T 20C505
+ 75. Add ClearRTS option (some mice seem to need it)
+ 74. Mach8 server now uses a 1024 line pitch (regardless of virtualX) for
+ cards with 1MB
+ 73. Support for bank switching with the VGA16 server. Staticgray and
+ Grayscale visuals added to the VGA16 server (Gertjan Akkerman)
+ 72. Slowed down image routines for DRAM based Mach8 cards (Hans Nasten)
+ 71. Improvements to solx86 in/out assembler code, and removal of the
+ broken ProworksMOption
+
+XFree86 2.0A (15 January 1994)
+ 70. Increase Bt485 clock-doubler cut-in point from 67.5MHz to 90MHz. This
+ should fix the "flashing pixel" problem many have reported
+ 69. Mach8 font cache performance updates
+ 68. Update assembler code and SuperProbe Makefile.std for the ProWorks
+ compile on Solaris x86
+ 67. Ti3020 probe code for SuperProbe (Robin Cutshaw)
+ 66. Fix Mach32 server to recognise PCI cards
+
+XFree86 2.0g (9 January 1994)
+ 65. Clock probe code for Mach32 server
+ 64. Support for TI3020 ramdac for S3 server (Robin Cutshaw)
+ 63. Fix server crash problem if reset occurs when VT switched away
+ 62. Make accel servers honour the -dpi flag
+ 61. Mach8 font cache updates
+ 60. Support for the ProWorks compiler on Solarix x86
+ 59. Add memory probe to SuperProbe (only for a couple of chipsets so far)
+ 58. Support for display widths of 640, 800 and 2048 with S3 server
+ 57. Generalise S3 HW cursor memory allocation -- fixes problems that showed
+ up with some virtualY/displaywidth combinations, and will work for
+ display widths < 1024
+
+XFree86 2.0f (27 December 1993)
+ 56. Fix mach32RecolorCursor() SIGSEGV when VT switched away
+ 55. Possible fix for cases where the S3 linear fb probe fails the first
+ time the server is started but succeeds on subsequent times
+ 54. Updates to Mach32 memory probe
+ 53. Fixes for ATI SVGA save/restore code (Ton van Rosmalen)
+ 52. Fix xman's handling of nroff bullets and bolding (Rich Murphey)
+ 51. Mach8 font cache updates (Hans Nasten)
+ 50. Mach32 HW cursor fixes (Mark Weaver)
+ 49. Change "makedepend" for systems with gcc to use "gcc -M" (based on
+ code from Hongjiu Lu). This is much slower than the other version,
+ and maybe should be disabled by default for !UseInstalled
+
+XFree86 2.0e (18 December 1993)
+ 48. SuperProbe updates (details in SuperProbe/ChangeLog)
+ 47. Imake updates for NetBSD
+ 46. Ramdac multiplexing for Mach32 cards with TLC34075 (and ATI68875?)
+ ramdacs (Mike Bernson)
+ 45. Imake changes to allow easy building of just the servers with a
+ cut-down source tree
+ 44. Fix ClearDTR -- now it clears *only* the DTR line
+
+XFree86 2.0d (11 December 1993)
+ 43. Xconfig keyboard option: VTSysReq to enable SVR4-style VT switching
+ sequence on Linux and *BSD+syscons
+ 42. Solaris 2.x x86 support (David Holland, Doug Anson)
+ 41. Accelerated dline and dseg for Mach32 (Mike Bernson)
+ 40. Accelerated non-cache text code for Mach8 (Hans Nasten)
+ 39. VirtualY limit removed for Mach8 (cache can be disabled)
+ 38. Dynamic allocation for font cache for Mach8 (Hans Nasten)
+ 37. New GetImage for Mach32 (Mike Bernson)
+ 36. Support for linear fb on *BSD with mmapable /dev/mem
+ 35. Preliminary support for 1152 width on Rev C 801 and Rev E 928, and
+ 1600 width on Rev E 928 in S3 server
+
+XFree86 2.0c (3 December 1993)
+ 34. Support for 8-bit/gun for Mach32 server (Craig Groeschel)
+ 33. New GetImage() for Mach8 and 8514
+ 32. Fix error message printed when no appropriate graphics sections are
+ present in Xconfig
+ 31. Add a "fb_debug" option to the S3 server
+ 30. MemBase Xconfig parameter added to allow the fb base address to be
+ specified. This is currently used only by some bdm2 drivers
+ 29. Support added to bdm2 for Visa board (untested)
+ 28. HGC-1280 now supported on both primary and secondary addresses
+ 27. Sigma L-View driver tested and works now
+ 26. Code from ATI to work around memory probing problems with some Mach32
+ chips (untested)
+ 25. Workaround for some 2MB DRAM ATI cards (eg, CLX). This allows the
+ VideoRam amount specified in Xconfig to override the detected value
+ 24. Support for NetBSD/FreeBSD shared libraries (John Brezak & ??)
+ 23. Add option "intel_gx" to handle linear fb on Intel GX/Pro (Mach32)
+ 22. Composite sync support for Mach8
+ 21. Allow linear fb for EISA S3 cards
+ 20. Fix s3RecolorCursor() SIGSEGV when VT switched away
+
+XFree86 2.0b (14 November 1993)
+ 19. Add virtualY <= 896 check to Mach8 server
+ 18. Restore settings for VGA aperture mapping if linear fb access fails for,
+ S3. Also restore those registers at exit
+ 17. Merge in MIT fix-26 (mainly xterm security patch)
+ 16. Fix S3 interlaced modes with VTotal > 1025.
+ 15. Hack for 1280x1024 on S3 801 with 110MHz clock
+ 14. Composite sync support for Mach32 (Todd Pfaff)
+
+XFree86 2.0a (9 November 1993)
+ 13. Speedup for aligned <=16 bit wide stipple ops for Mach8 and 8514
+ 12. Fix NULL dereference when ModeDB is empty (Bill Metzenthen)
+ 11. make mit/rgb consistent with the server's usage of it. showrgb can now
+ read rgb.txt directly, and [sng]dbm is no longer required
+ 10. Attempt to clean up strerror() vs sys_errlist[] usage outside ddx/x386
+ 9. Disable saving the Tek screen to a file in xterm -- a quick hack to
+ get around another security problem. An official X Consortium fix
+ should be available soon
+ 8. Fix vgaFasm.h so it works for gcc2 with '-traditional'
+ 7. Fix clock probing problem in pvga1 driver
+ 6. Fix typo in xf86_OSlib.h
+ 5. Fix ClockProg informational message
+ 4. Truncate clock values to MHz resolution when checking against the limit
+ 3. Fix bug in LinkKit Imakefile
+ 2. Fix malloc problem in the PEX font reader
+ 1. Some documentation fixes
+
+XFree86 2.0 (24 October 1993)
+247. Documentation finalised
+246. Fix for VT switching problem with Mach32 server
+
+XFree86 1.9Za (23 October 1993)
+245. Documentation updates
+244. Fix bug in backing pixmap used for VT switching with the S3 server
+243. Fix typo which prevented nomemaccess being turned of when a localbus
+ S3 card is used without linear fb mapping
+
+XFree86 1.9Z (18 October 1993)
+242. Code freeze for 2.0. Docs still not finished
+241. Disable linear fb mapping for BSD/386 since it doesn't appear to work
+240. Fix for dline bug in Mach8 and 8514 servers
+239. Updates to ati SVGA driver
+238. SCO doc updates
+237. Allow "nolinear" Option for Mach32 server
+
+XFree86 1.9Fe (17 October 1993)
+236. Fix S3 cursor problem when panning
+235. Mach32 HW cursor fixes
+234. Include Accel cards db
+233. Fix video mmap problem with *BSD
+
+XFree86 1.9Fd (17 October 1993)
+232. Add undocumented "showcache" Option for the S3 server
+231. Fix ALLOCATE_LOCAL/DEALLOCATE_LOCAL problem in S3 server
+230. Fix multi-screen I/O permission bug on SYSV
+229. SVR3 version of IOPL kernel patch (required for ISC 2.0.2)
+228. Get xload's compiled-in kernel name from <paths.h> for BSD
+227. Fix some compilation-related problems
+226. Sigma Lview driver doesn't work, so removed references to it
+225. DAC_MASK save/restore for 8514 server
+
+XFree86 1.9Fc (16 October 1993)
+224. Stipple and colour mapping fixes for vga16
+223. Fix for Mach8 VT switching problem
+222. Include README.Bsdi
+221. Fix SEGV in s3WarpCursor when VT not active
+220. Don't use kbd_mode for BSDI
+
+XFree86 1.9Fb (13 October 1993)
+219. Mach32 HW cursor colouring fixes (still not quite right)
+218. Change Mach8 clock probing to measure the divided-by-4 values only
+217. Correct fix for problems when some cards are in mono address mode
+216. Fix sync polarity problem with S3 server
+215. Update kbd_mode for syscons
+214. Add "memaccess" option (for S3) so that mem access can be forced on
+ for localbus cards when the linear framebuffer can't be mapped
+
+XFree86 1.9Fa (9 October 1993)
+213. 1-pixel segments fix for Mach8
+212. Trap virtual screen sizes which are too large for Mach32
+211. Turn off Mach32 HW cursor if insufficient videoram
+210. Some documentation updates
+209. Move clock limit definitions so that they can be changed when using
+ the LinkKit
+208. SuperProbe updates
+207. Fix mis-detection of ATI cards by the compaq driver
+206. Fix hard-coded path in xdpr script
+205. Print max clock before resolving modes
+204. Fix CRTC setting procedure for Mach32
+
+XFree86 1.9F (4 October 1993)
+203. Limit clock to 80MHz for Mach8 and Mach32
+202. Mach32 HW cursor fixes and mach32im cleanup
+201. Cleanup startup messages in Mach8 and Mach32 servers
+200. Disable xterm logging by default, and provide a safer(?) method of
+ opening the log file
+
+XFree86 1.9Ed (2 October 1993)
+199. Support for Cirrus 62x5 chips (Prof. Hank Dietz)
+198. Clean up handling of 'volatile', etc for 'gcc -traditional'
+197. Merge Mach8 font cache fix into Mach32
+196. Default to probe for 4 clocks on pvga1 cards
+195. Remove implicit assumption that certain mouse protocols are only used
+ by serial devices
+194. Updates/cleanups for bdm2 code
+193. Include SVR3 mmap and SCO dmmap drivers (in x386/etc)
+192. Change location of console.h to machine/ for FreeBSD
+191. Fix setting of AdmDir for *BSD
+190. Update GnuMalloc option. Now it enables use of GNU malloc for clients
+ as well as the servers
+189. Patches for Amoeba
+188. Fix for OAK crash with SVGA server
+187. Fix for ATI SVGA restore problem
+186. HW cursor for Mach32 (Mike Bernson)
+185. Option checking in other accel servers
+
+XFree86 1.9Ec (1 October 1993)
+184. Option checking in S3 server
+183. Fix default colour visual handling for accel servers
+182. Add checking of clock limits
+181. Clean up s3Init()
+180. Fix to allow SVR3 shared libs to build when using gas
+
+XFree86 1.9Eb (29 September 1993)
+179. Updates to syscons support (requires lastest console.h -- which is now
+ included in ddx/x386/etc)
+178. Fix for colourmap restoration problem with 8514/A cards
+177. Updates to Bt485 code
+
+XFree86 1.9Ea (28 September 1993)
+176. Man page updates
+175. Modify "number9gxe" option to use the Bt485's clock doubling for clocks
+ higher than 67.5Mhz
+174. Alternate ICD clock selection code. Enable it with
+ 'Clocks "icd2061a_slow"'
+173. site.def cleanup
+172. Fix Bt485 Cursor support
+171. Update syscons support
+170. Fix for S3 font cache server crash problem
+169. Fix for S3 xqueue problems when operating in linear mode
+168. Fix for S3 928 localbus problem
+167. Fix SuperProbe's graphics co-processor detection, and add code to detect
+ Bt485 on S3 cards.
+166. Fix text problems in Mach8 and 8514 servers
+165. Image read/write fix for Mach32
+
+XFree86 1.9E (23 September 1993)
+164. Support for the syscons driver on *BSD (S|ren Schmidt)
+163. Get/PutImage speedups for S3
+162. Accelerated image text for non-cached fonts (S3)
+161. Image read/write speedups for Mach32
+
+XFree86 1.9Dc (22 September 1993)
+160. Hooks added for HW cursor support on SVGA cards
+159. Support for ISC 4.0
+158. Accel text functions for non-cached fonts (S3 server)
+157. Fix problems with vga sequencer not being turned off in the right places
+156. Support for dmmap driver for SCO
+155. Oak driver (from Steve Goldman)
+154. Updates for Minix
+
+XFree86 1.9Db (21 September 1993)
+153. Accelerated WD90C31 support (Mike Tierney)
+152. Updates to ImageStipple code for Mach8 and 8514
+151. Fix for memory leak in mi backing store (Amancio Hasty)
+150. Accelerated Cirrus support (Simon Cooper and Bill Reynolds)
+149. Accelerated dline for Mach8 and 8514 (from Tiago Gons)
+148. Fixes for localbus 928
+147. Modify server to use rgb.txt directly and create an internal hash table
+ (from Thomas Roell)
+146. SuperProbe updates
+145. Fix cursor recolour problems in S3 server
+144. Use uname/gethostbyname for cases where SIOCGIFCONF fails
+
+XFree86 1.9Da (18 September 1993)
+143. ImageStipple speedup for Mach8 and 8514 (from Hans Nasten)
+142. Reorganise man page installation details for *BSD
+141. Fix various minor bugs
+
+XFree86 1.9D (15 September 1993)
+140. Use non-MAP_FIXED for mmap on Linux -- requires latest kernel
+139. dseg for S3
+
+XFree86 1.9Cf (14 September 1993)
+138. line updates for S3 (including dline)
+137. Support for Thomas Wolfram's mmap driver for SVR3
+136. Config changes to support NetBSD and FreeBSD
+135. Correct fix for SIOCGIFCONF on *BSD (from Mark Davies)
+134. Use Jerry Whelan's BSDselect() for SVR4 in libXt and libXbsd
+133. CopyPlane() for Mach32 server
+132. Include Berkeley str{,n}casecmp() in libXbsd
+131. Sigma LView driver for bdm2 (untested)
+130. OsMouse support for SCO (uses the SCO event driver)
+
+XFree86 1.9Ce (9 September 1993)
+129. Improve reliablilty of mmio code (thanks Thomas)
+128. Fix xdm-related server crash on Linux
+127. Support for 4MB aperture with EISA Mach32 cards
+126. CopyPlane() for 8514 server
+125. Fix "xfig" problem in accel servers
+124. Fix GetImage and PolyText in accel servers
+123. Fix problem with VT-switching and server reset
+122. Fix some more cfb.banked bugs
+
+XFree86 1.9Cd (5 September 1993)
+121. Fast image read/write for 8514 server
+120. Mmio support for 928 in S3 server
+119. Fixes for BT ramdac HW cursor (S3) (still doesn't work)
+118. CopyPlane() fixes for S3
+117. Speedup for PolyPoint() in Mach8 (and others)
+116. Fix for lines in accel servers -- now match cfb lines.
+115. CopyPlane()
+
+XFree86 1.9Cc (2 September 1993)
+114. Fix auto-repeat trapping of lock keys
+113. Support BT485 ramdac's HW cursor (S3 server) (doesn't work yet)
+112. Use mmap for BIOS access on SVR4
+111. Only protect page 0 for SVR4 when the -protect0 flag is given. It makes
+ cores less useful
+110. bdm2 (banked dumb mono) fb/driver (from Pascal Haible)
+109. Fast image fill for Mach8 (from Hans Nasten)
+108. Update shared-lib version numbers for Linux
+107. Split bsdi os-support from 386BSD -- little code was common
+106. Modify s3Init() code to use vgaHWInit()
+
+XFree86 1.9Cb (28 August 1993)
+105. Fast image read/write for Mach8 (from Hans Nasten)
+
+XFree86 1.9Ca (28 August 1993)
+104. Default to NoMemAccess for S3 localbus cards on OSs that don't
+ support linear videomem mapping
+103. Add QueryBestSize() for S3
+102. Protect page 0 for SVR4 (to help find NULL pointer dereferences)
+101. Fix ChordMiddle
+100. Fix some compilation problems with vga16
+ 99. vga16 fix for OpaqueMove bug
+ 98. Work around GNU make's "different" default dependency handling.
+ Dependencies should now work reliably with GNU make.
+ 97. Fast CopyPlane() for S3 server
+ 96. Fix I/O port handling to deal with multiple screens
+ 95. Mach8 updates
+
+XFree86 1.9C (25 August 1993)
+ 94. Updated video mem <-> main mem copy code to get better performance on
+ localbus cards
+ 93. Alternate fix for xqueue with S3 (previous fix degraded performance too
+ much)
+
+XFree86 1.9Be (25 August 1993)
+ 92. SIOCGIFCONF fix for ISC in xdm
+ 91. Mach support for mapping arbitrary video memory
+ 90. Fix for performance problems in S3 server
+
+XFree86 1.9Bd (24 August 1993)
+ 89. Updated version of Xconfig/probe info
+ 88. Update libXt jump entries for Shm on Linux
+ 87. Another S3 cursor update
+ 86. Use mmap() for mapping framebuffer on SVR4
+ 85. Localbus linear mapping for S3 (tested only on Linux)
+
+XFree86 1.9Bc (23 August 1993)
+ 84. SuperProbe update
+ 83. Improve picture stability when using high clocks (S3)
+ 82. Get memory detection right for S3 911
+ 81. Change localbus wait states for S3
+ 80. Go back to the MAP_FIXED mmap for Linux, added xf86UnMapVidMem()
+ 79. S3 cache updates and cursor changes
+
+XFree86 1.9Bb (21 August 1993)
+ 78. Fix S3 server crash if it exits when its VT isn't active
+ 77. Indicate where information in server startup messages comes from (ie
+ whether from Xconfig or by probing, etc)
+ 76. Fix ATI/Mach probing in SuperProbe
+ 75. Fix S3 cursor "shadowing" in interlaced modes
+ 74. Fix problems with the S3 server when using xqueue
+ 73. 16-colour generic VGA server (from Gertjan Akkerman)
+
+XFree86 1.9Ba (18 August 1993)
+ 72. Support for a Hitachi Puma Plus digitising tablet's 4-button puck
+ (from Randy Terbush)
+ 71. Mouse "ChordMiddle" option. This is for a 3-button mouse which
+ generates left+right events when the middle button is used. This is
+ for Microsoft protocol only (from Ted Goldblatt)
+ 70. Reorganise the way SpeedUp options are handled so that the speedup code
+ is only linked into the server when the appropriate chipset driver is
+ included.
+ 69. Fix inb/inw inlines for gcc without gas
+ 68. Code to use memory to the right of the screen for caching (S3)
+ 67. Various compilation-related fixes
+
+XFree86 1.9B (16 August 1993)
+ 66. Fix memory leak on server reset
+
+XFree86 1.9Ai (16 August 1993)
+ 65. Fix LinkKit
+ 64. Cirrus driver was ignoring clocks when a VideoRam line is specified
+ 63. Fix VT switching for Mach8 and ibm8514 servers
+ 62. Fix server reset for S3 server
+ 61. Fix problems in mach32ImageFill for virtual width != 1024
+ 60. Text save/restore added to Mach32 server
+
+XFree86 1.9Ah (15 August 1993)
+ 59. Updates to SuperProbe so it can detect the latest S3 chip revisions
+ 58. VT switching support for the S3 server
+ 57. Fix for S3 image write problems with screen width 1024 & 2MB videoram
+
+XFree86 1.9Ag (14 August 1993)
+ 56. Another stipple fill fix in cfb.banked
+ 55. S3 clock select fixes -- allows clock probing to work
+ 54. Fix initialisation of miCacheFreeSlot
+
+XFree86 1.9Af (13 August 1993)
+ 53. Allow programmable clocks to be specified with 'Clocks "prog_clk_type"'
+ in Xconfig.
+ 52. Virtual size fixes for S3
+
+XFree86 1.9Ae (13 August 1993)
+ 51. Extended I/O and IOPL handling for BSDI.
+ 50. Set virtual size for S3 if not given.
+
+XFree86 1.9Ad (13 August 1993)
+ 49. Imake config updates
+ 48. Created libxf86_hw in common_hw, and moved clock probe code there.
+ 47. XF86_Mach8 and XF86_8514 compilable.
+
+XFree86 1.9Ac (12 August 1993)
+ 46. S3 updates (diff15)
+ 45. XF86_Mach32 compilable
+
+XFree86 1.9Ab (11 August 1993)
+ 44. XF86_S3 compilable and runnable on Linux
+ 43a Cirrus driver updates (including fix for line problem)
+ 43. Fix problem in Xlib compose-key code that caused auto-repeat problems
+ on some SVR4.
+ 42. Keep /dev/console open for pccons on 386BSD to work around keyboard
+ hanging problem (from Mark Weaver)
+ 41. Fix for zero width horiz, vert lines with rop other than GXcopy, GXxor
+ (from Mark Weaver)
+
+XFree86 1.9Aa (6 August 1993)
+ 40. Include accel dirs (not compilable yet)
+
+XFree86 1.9A (4 August 1993)
+ 39. Fix authorisation for LOCALCONN connections on SYSV.
+ 38. OS-lib fixes
+
+XFree86 1.9e (1 August 1993)
+ 37. Make the ET4000 Option "force_bits" standard behaviour
+ 36. Fix problem of renderer config not being handled properly in the LinkKit
+ 35. Update screen configuration handling to better suit multiple servers.
+
+XFree86 1.9d (29 July 1993)
+ 34. Mach OS-lib fixes
+
+XFree86 1.9c (28 July 1993)
+ 33. Lots of SCO patches (including fixing the bogus window problem, xterm,
+ font server, PEX)
+ 32. SuperProbe updates (includes identification of AT&T RAMDACs and
+ detection of 8514/A and ATI Mach-xx chipsets)
+ 31. Fix for bug in cfbgetsp.c
+ 30. Include pixmap cache support in mi, mfb, cfb.
+ 29. SVR3/ISC updates for gcc 2.4.5
+ 28. Moved OS-specific parts of x386Io.c to the OS-lib
+ 27. OS-lib fixes.
+ 26. Converted the experimental ET4000 RCCONF code to an Option flag:
+ "fast_dram"
+ 25. Fix SIOCGIFCONF related problems in xdm, chooser and server/os/access.c
+ on SVR4 and 386BSD (thanks to Ian Donaldson and Peter Wemm).
+ 24. Support for easily adding multiple servers to server/Imakefile and
+ the LinkKit
+
+XFree86 1.9b (13 July 1993)
+ 23. Fix for interlaced support in the Cirrus driver
+ 22. OS-library added to separate out OS-specifics under ddx/x386
+ 21. Fix initialisation of supported pixmap formats
+ 20. Fix for authorisation on streams connections for SVR3
+ 19. Fix other line bugs (fLineH.s, suLine.s, suVHLine.s)
+ 18. Really make the horizontal panning symmetric
+ 17. Fix 2MB support on Cirrus 5426
+ 16. Fix line bug in non-speedup code (fLineBres.s)
+
+XFree86 1.9a (3 July 1993)
+ 15. Added support for BSDI's BSD/386 (from Hans Nasten)
+ 14. SuperProbe updates for C&T chipsets
+ 13. Make horizontal panning symmetric
+ 12. Allow Cirrus driver to address 2MB on the 5426 cards (not tested)
+ 11. Add ChipRounding to the vga ChipRec so that chip-specific rounding of
+ virtualX can be handled properly
+ 10. OSF/1 patches (Marc Evans)
+ 9. Fix for xload problem on Linux
+ 8. Fix for ATI text-mode font restore problem
+ 7. Experimental code to set the RCCONF register on ET4000 cards (this is
+ only used if Et4000SetRCConf is set to YES in site.def)
+ 6. Allow "black" and "white" colours to be specified in Xconfig for the mono
+ vga server
+ 5. Fix Xconfig visual spec check for mono servers
+ 4. Fixed some long file names (in extensions/lib/PEXlib, fonts/bdf/misc)
+ 3. Fix xman bug introduced in 1.2Da
+ 2. Fix bank-switching bug in cfbfillsp.c
+ 1. Fix a couple problems that show up when using a XFree86 patched source
+ tree on non-i386 systems
+
+XFree86 1.3 (5 June 1993)
+98. Updates to ncr driver
+97. NCR imake config changes
+96. Docs updated for gzip extension change ".z" -> ".gz"
+95. Experimental "force_bits" option flag for ET4000
+
+XFree86 1.2Da (2 June 1993)
+94. Modify xman to use groff instead of nroff for Linux
+93. Modify xload to use /proc/loadavg for Linux
+92. Change ownership of /dev/console and /dev/tty0 for Linux
+91. Added xmodmap.std to the etc dir which lists the default key map in a form
+ that can be read by xmodmap(1)
+90. Various small SVR3 adjustments, and new README.SVR3
+89. Add a README for the LinkKit
+88. Support for banked mono in ET3000 driver (thanks to Joerg Wunsch)
+87. ET3000 probe changes
+86. README.Linux updates
+
+XFree86 1.2D (26 May 1993)
+85. Merge in MIT fix-25
+84. OSF/1 support is incomplete -- so remove references to it in the docs
+83. Add -keeptty flag to prevent server from detaching its controlling tty
+ (useful when debugging)
+82. Include support for 77C22E in ncr driver
+81. Set bank 0 for save/restore in trident driver [removed]
+80. Workaround for mouse loss when VT switching on SCO
+79. Compile-time support for SCO 3.2.4
+78. Don't include PEX in mono server (even when BuildPex is set) because it
+ only works for 8-bit PseudoColour
+77. Mach support for SuperProbe
+76. Various SVR3 shared lib fixes including fixes for AT&T SVR3.2, XDM auth
+ support and fixes for initialisation problems that showed up with Motif.
+75. Ignore SIGHUP in xterm for ISC 2.2.1, 3.0
+74. rgb/Imakefile fix
+73. Imake.tmpl updates for ISC
+
+XFree86 1.2Cb (19 May 1993)
+72. Code to slow down DAC access
+71. Possible fix for font restore bug on Linux and 386BSD (works for some
+ people, but not everyone)
+70. Merge in MIT fix-24
+69. Xosdefs.h mod for Mach
+68. Eliminate various compiler warnings with PEX
+67. Modify lndir to ignore directories called "CVS"
+66. Fix overscan restore problem when mode switching
+65. Fix a Cirrus-specific font/text restore problem
+
+XFree86 1.2Ca (16 May 1993)
+64. Fix for lndir to work with Linux (Gnu ls)
+63. Documentation updates
+62. Allow PEX to be turned on/off at link-time with the LinkKit
+61. Add "hibit_high" and "hibit_low" Option flags to handle some ET4000
+ cards when the server is started from a high-res text mode
+60. Fix screen corruption when mode-resolving fails (problem was introduced
+ in 1.2Bb)
+59. Fix to pvga1 driver for 90C11
+58. kbd_mode modified to be a no-op for codrv
+57. Imake.tmpl updates for SCO and OSF/1
+56. Remove need for <sys/ioctl_pc.h> with LinkKit on 386BSD
+
+XFree86 1.2C (8 May 1993)
+55. Modify Cirrus driver to set the reported clocks to the preset values
+ rather than probing them. Probing can be forced with the "Probe_Clocks"
+ Option flag.
+
+XFree86 1.2Bb (6 May 1993)
+54. Compatibility support for codrv 0.1.1 (run-time only)
+53. Merge in OSF/1 support (from Marc Evans)
+52. Merge in SCO support (from David McCullough)
+
+XFree86 1.2Ba (4 May 1993)
+51. SuperProbe updates (can now be compiled with a K&R compiler)
+50. Compaq driver (from Hans Oey)
+49. Merge codrv and pccons support so that a single server can support
+ both
+48. Cirrus driver for CLGD542x cards (no accelerated support) (from Bill
+ Reynolds)
+47. Allow inline'd macros to be disabled for debugging purposes (by compiling
+ the video drivers with -DNO_INLINE)
+46. Print OS version in startup message
+
+XFree86 1.2B (19 April 1993)
+45. ET4000 text clock restoration modified -- maybe it will fix the problems
+ when restoring to a high res text mode
+44. Sample SVGA driver stubs and documentation added
+43. Xconfig option to specify VGA BIOS base address (not all are at 0xC0000)
+42. Major rewrite of tvga driver. Now supports 8800CS, 8900B, 8900C, 8900CL,
+ 9000 in all modes.
+41. Xconfig option to clear DTR after opening MouseSystems mouse (only for
+ SYSV, Linux, 386BSD)
+40. Change server names. X386 -> XF86_SVGA, X386mono -> XF86_Mono.
+
+XFree86 1.2Aa (17 April 1993)
+39. SuperProbe will now find vga BIOS at addresses other than 0xC0000
+38. Support for building Linux shared libs (DLL version)
+37. Remove case-sensitivity of the Chipset option.
+36. Save and restore registers affected by clock probing
+35. Some more Xconfig validity checks
+34. Change 'Vendor' keyword in Xconfig to 'Option'
+33. Fix to make use of the RGBPath specified in Xconfig (this was pointed out
+ by Greg Hartman back in Sept)
+32. Use XWINHOME to specify ProjectRoot at run-time
+31. PEX patches for Linux
+30. libX11 shared lib problem fixed (for SVR4)
+
+XFree86 1.2A (3 April 1993)
+29. More pvga1/wd driver tuning, added rudimentary support for 90c20
+28. Improve overscan handling
+27. modeDB.txt updates
+
+XFree86 1.2e (27 March 1993)
+26. Minix/Amoeba updates
+25. New et3000 probe (to prevent tvga8900CL being falsly detected as et3000)
+24. More interlace tuning for pvga1 and tvga8900 drivers
+23. SuperProbe
+22. XDMCP fixes for Linux (and others)
+
+XFree86 1.2d (24 March 1993)
+21. Added support for Minix-386 and Amoeba (from Kees Verstoep)
+
+XFree86 1.2c (20 March 1993)
+20. Merged in MIT fix-23
+19. Support for 9th clock on WD90Cxx chips
+18. NCR 77C22 driver (from Stuart Anderson)
+17. Allow multiple Clocks lines in Xconfig
+16. Changes to external clock program code to handle VT switching better
+15. ISC 2.0.2 support (from Aki Atoji)
+14. Include driver source instead of objects in LinkKit
+
+XFree86 1.2b (1 March 1993)
+13. Improved ISC support for xman
+12. Improved handling of overscan colour
+11. Make the server's -pn option the default (compile time configurable)
+10. Hga2 support for 386BSD and Mach
+9. pvga1 driver support for WD90C3x
+8. Portable assembler macros (from Greg Sharp)
+7. More flexible handling of Vendor strings in Xconfig
+6. Store clock resolutions to nearest 1kHz.
+5. Removed old SpeedUp version
+4. Changes in LinkKit to handle distributions built with PEX support
+
+XFree86 1.2a (20 February 1993)
+3. Xlib support for run-time selectable multiple LOCAL connection types
+ for SVR3, SVR4
+2. Fix mapping problem when using codrv and a non-US keyboard mapping
+1. Fix for TVGA interlaced modes
+
+
+XFree86 1.2 (8 February 1993)
+74. README updates
+73. ATI driver updates
+72. Banked mono doesn't work on ET3000 -- so turned off for that driver
+71. Merged in MIT fix-22
+70. Changes so that XFree86 patched source will build on other platforms.
+
+XFree86 1.1F (1 February 1993)
+69. Add check for presence of "Modes" line in Xconfig
+68. Add assembler code for byte-order swapping in mfb
+67. More svr3 shlib "tuning"
+
+XFree86 1.1E (26 January 1993)
+66. Change to pvga1 driver to get correct clock ordering for 90C30
+65. Fix linux problem building liboldX
+64. server locking to prevent clobbering of local connection pipes
+63. xhost fix for LOCALCONN
+62. Add missing svr3 shlib patches
+
+XFree86 1.1D (24 January 1993)
+61. Removed SVR3 shlib stubs from clients
+
+XFree86 1.1Ce (23 January 1993)
+60. SVR3 shared lib support (from Thomas Wolfram)
+59. Added Hercules driver (from Davor Matic)
+58. Re-map scancodes for Codrv so that the keycodes the server sees are the
+ same on all platforms
+57. Modify NumPad handling so that Shift works properly.
+
+XFree86 1.1Cd (13 January 1993)
+56. Commented out force VT disabling -- causes problems with Esix 4.0.3A
+55. Support for tvga9000 (from Gertjan Akkerman)
+54. Ignore FontPath in Xconfig when a FontPath is provided with the -fp option
+53. Support for new Linux VTs
+52. Turn off Alt-Sysreq-F (forced VT switch) by default for SYSV. Added an
+ Xconfig option to prevent this disabling (AllowForceVT)
+51. X386keybd man page added
+50. mfb.banked fixes
+
+XFree86 1.1Cc (3 January 1993)
+49. tvga driver updates for banked mono
+48. Fixes to cfbblt, mfbblt for single-banked drivers
+
+XFree86 1.1Cb (1 January 1993)
+47. Added -verbose (default) and -quiet flags, and print out more information
+ in verbose mode
+46. Improved banking for mfb.banked
+
+XFree86 1.1Ca (30 December 1992)
+45. cmfb code (from Davor Matic), and an experimental mfb.banked
+44. Flush mouse input after opening
+43. Fix problem starting X from within an X session
+
+XFree86 1.1C (23 December 1992)
+42. Added -probeonly option which causes the server to exit after the
+ device probe stage.
+41. Merged in MIT fix-21
+40. Support for an external clock setting program
+39. Patches for Destiny (SVR4.2)
+
+XFree86 1.1Ba (17 December 1992)
+38. Merged in MIT fix-20
+37. Various improved error messages
+36. Improve accuracy of clock probing code -- add delay so VCO can
+ stabilise before starting the measurement
+35. Store dot-clocks to .1MHz accuracy
+34. Make the server's -dpi option work
+33. Extend fontpath validation to the compiled-in default fontpath
+32. Increase server priority while probing for clocks
+31. Fixed KDSETRAD bug introduced in 1.1a (affected DELL)
+30. Bell support for pccons driver on 386BSD
+
+XFree86 1.1B (21 November 1992)
+29. Hack for ISC local connection on SVR4 with ACP (requires the ISC
+ client binary to be edited)
+28. Added code to change IOPL on SYSV for extended I/O (including patch
+ scripts for the SVR4 kernel)
+27. Merged in MIT fix-18 and fix-19
+26. Support for PS/2 mouse
+
+XFree86 1.1A (16 November 1992)
+25. Fix problems compiling with a non-ansi compiler.
+
+XFree86 1.1c (8 November 1992)
+24. Xconfig options to set default mapping of some special keys
+23. Code to validate the fontpath given in Xconfig
+22. Patches for Logitech Trackman/Mouseman (from Christian Ziemann)
+21. Updates for version 0.1.1 of Holger's co driver
+20. Fix for et3000 text mode restoration (from Holger Veit)
+19. Fix NumLock support -- use two sets of keycodes for num keypad
+18. Add Compose / Multi-key support to Xlib (from MIT contrib)
+17. Don't reset state of lock keys when starting the server
+16. Fix code for setting visual type from Xconfig
+
+XFree86 1.1b (21 October 1992)
+15. Xload support for Linux
+14. Use Xconfig.cpp to generate the sample Xconfig with paths consistent with
+ the configuration.
+13. Allow multiple "FontPath" lines in Xconfig which are concatenated to build
+ the FontPath.
+12. Blank and clear the screen during server startup
+11. Fix tegblt code for mono server (instead of the previous workaround)
+10. Fix non-32bit tiles and stipples for mono server with 8-bit scanlines
+9. Fix circle/ellipse drawing for mono server
+8. Use 8-bit bitmap scanlines for mono server (can now remove pixmap hack)
+7. Add check in server to see if euid==0. If not, exit with a warning.
+
+XFree86 1.1a (11 October 1992)
+6. Add a VTInit option to Xconfig to run a program on the VT during
+ screen initialisation.
+5. Fix security holes in reading Xconfig files, and the undocumented
+ -mono and -colour options.
+4. Use KDMKTONE for bell for systems that support it
+3. Allow 4 clocks for generic driver
+2. Mods to allow compile time selection of 128k display mapping for mono
+ (this is experimental and may be removed)
+1. Holger's 386BSD co driver support (compile-time selectable)
+
+
+XFree86 1.1 (1 October 1992)
+70. Public release
+69. Set mailbox for 386bsd in Xaw
+
+XFree86 1.0Zb (30 September 1992)
+68. Mods to startx so that an absolute path is not required for a server
+67. Make the right-hand <ALt> key behave like Alt_R
+66. Updates to X386.man
+65. Add -mono and -colour (undocumented) options to server
+64. Look for Xconfig file in /etc before /usr/X386/lib/X11
+63. Print out Trident version in probe routine and add README.trident
+
+XFree86 1.0Za (27 September 1992)
+62. cfb.banked changes for Mach's BSD cpp.
+61. Add mkwhatis script for 386BSD
+60. Fix problems with xgc/lex.l
+59. Modify default keymap so Alt_L will work like both Meta_L and Alt_L.
+58. xload fixes for 386BSD
+57. Change config/x386config.sh for dumb BSD sh.
+
+XFree86 1.0Z (24 September 1992)
+56. Beta release (final for 1.1)
+55. Add ISC22, ISC30 defines
+
+XFree86 1.0Yb (21 September 1992)
+54. Included Thomas Eberhardt's updates to the compressed font code.
+53. Put Alan Hourihane's generic save/restore code into vgaHW.c
+52. Correction to xmh man page
+51. Support use of libdbm.a for ISC 3.0
+
+XFree86 1.0Ya (17 September 1992)
+50. Merge in Linux support (from Orest Zborowski)
+
+XFree86 1.0Y (14 September 1992)
+49. Beta release (second for 1.1)
+48. Removed FAS support on SVR4
+47. Changes to font and text save/restore
+
+XFree86 1.0Xc (12 September 1992)
+46. Fix xman scroll bug
+45. Update to ati driver to save more planes
+44. Single/double bank selection for drivers
+
+XFree86 1.0Xb (9 September 1992)
+43. Link Kit updates
+
+XFree86 1.0Xa (8 September 1992)
+42. Fix some Xconfig related problems
+41. Trident driver (256 colour and mono)
+40. Mono drivers for et3000, pvga1, gvga (untested)
+
+XFree86 1.0X (4 September 1992)
+39. Beta release
+38. Minor updates
+
+XFree86 1.0m (2 September 1992)
+37. Change name to XFree86
+36. Added link kit
+
+X386 1.2E 1.0l (30 August 1992)
+35. Added (experimental) ATI driver
+34. Changed configuration so that mono and colour servers can be built
+ at the same time.
+X386 1.2E 1.0k (30 August 1992)
+33. Directory re-organisation
+
+X386 1.2E 1.0j (29 August 1992)
+32. Fix problem of server crashing while resetting
+
+X386 1.2E 1.0i (28 August 1992)
+31. Portability changes to vgaFasm.h (for cc and gcc-1.??)
+30. Added a -xconfig flag to specifiy the Xconfig file from the command line.
+29. Fixed problem with xdmauth accessing memory between 640k and 1M.
+28. Round down the specified virtual width to the nearest required multiple.
+27. Fix some bugs in the Xconfig parser.
+26. Added 'vga2' keyword for Xconfig so one file can be used for both the
+ colour and mono servers.
+25. README's updated
+24. Minor speedup fix
+23. More server configuration changes
+
+X386 1.2E 1.0h (26 August 1992)
+22. cfb.banked updated for fix-17
+21. New SpeedUp code (works for any* virtual width)
+20. Monochrome VGA server
+19. Changes for compile-time selection of supported chipsets, and font
+ renderers
+18. Updated X386.man, README.Mach
+17. Fix mouse map bug for logitech (and microsoft?).
+16. Merge in changes for Mach386 (from Robert Baron, Joel Jacobson)
+15. Merge in changes for 386BSD (from Rich Murphey, Amancio Hasty)
+
+X386 1.2E 1.0g (25 August 1992)
+14. Merged in MIT fix-17
+
+X386 1.2E 1.0f (4 August 1992)
+13. SpeedUp flag for Rectangle Stipple fills
+
+X386 1.2E 1.0e (4 August 1992)
+12. Extend the trapping of unexpected fatal signals beyond just SIGSEGV.
+ The NoTrapSegV option has been changed to NoTrapSignals.
+
+X386 1.2E 1.0d (3 August 1992)
+11. Run mkfontdir in install directory rather than copying fonts.dir from
+ the build directory.
+10. Merged in MIT fix-16
+
+X386 1.2E 1.0c (1 August 1992)
+9. Run 'mcs -d' on SVR4 shared libraries
+8. Merged in official Type1 font patch
+7. Merged in MIT fix-15
+6. Fixed malloc/free problems in lib/X/XcmsLRGB.c, clients/xdm/greet.c
+5. Merged in MIT fix-14
+
+X386 1.2E 1.0b (27 July 1992)
+4. Updated version of fFill.s
+3. Bug fixes (for stipple) from Jim (require GCC at the moment)
+
+X386 1.2E 1.0a (22 July 1992)
+2. Merged in MIT fix-13
+1. Fix problem with divide by zero when bell pitch was set to zero.
+
+
+X386 1.2E 1.0 (16 July 1992)
+97. First general release
+96. Define repz to be repe for gas.
+95. Update XdmConf.svr4 to read /etc/default/login to set ulimit, etc.
+
+X386 1.2E 0.2c (15 July 1992)
+94. Allow easy selection of ansi level when building non-core clients.
+93. Install and use sessreg (for xdm)
+92. .align changes for gas
+91. README and X386.man updates
+
+X386 1.2E 0.2b (11 July 1992)
+90. Mods to SpeedUp for gas (jcxz changes).
+89. Minor change to xdm/auth.c for ISC3.0
+88. Removed SVR4 Vendor defines.
+
+X386 1.2E 0.2a (8 July 1992)
+87. Added some missing cld's to gBitBlt.s
+86. Some portability changes to fFill.s
+85. VT release problem when using FAS/SVR4 really fixed this time.
+84. Moved libinetemul.a to lib/InetEmul; library now called libXinetem.a, and
+ used in a similar way as libXbsd.a. Changes to top level Imakefile have
+ been removed.
+83. Updates to README (building under ISC2.2, compiling clients)
+82. Include libXbsd.a in ExtraLibraries for SVR4/SYSV
+
+X386 1.2E 0.2 (3 July 1992)
+81. Second beta version
+80. et debug option removed
+
+X386 1.2E 0.1i (2 July 1992)
+79. Fixed VT release problem when using FAS/SVR4.
+78. Added warning about using xdmauth.
+77. Updated XdmConf.svr4 to handle different auth types
+76. Reorganisation of some compiler and assembler related options in x386.cf
+
+X386 1.2E 0.1h (27 June 1992)
+75. More portability changes to assembler code.
+74. Updates to modeDB, XdmConf.svr4
+
+X386 1.2E 0.1g (25 June 1992)
+73. Assembler portability changes from Jon Block.
+72. Change startup message from 'X Windows System' to 'X Window System'
+
+X386 1.2E 0.1f (20 June 1992)
+71. Fixed line problem when compiling with SVR4 'cc'.
+70. Changes to make source compile with Esix 3.2D, ISC 3.0 (without TCPCONN)
+
+X386 1.2E 0.1e (17 June 1992)
+69. Removed Glenn's wrapper comments from cfb.banked files.
+68. Added a debug flag to check operation of hiclock selection, and hopefully
+ fixed the problem with that.
+67. Fixed PIC flag problem in sv4Lib.rules
+
+X386 1.2E 0.1d (13 June 1992)
+66. Xconfig is installed as Xconfig.sample so as not to overwrite a locally
+ configured one.
+65. Use HasSdbm to determine use of -lsdbm for server and rgb.
+64. Made SpeedUp the default when appropriate, and added 'SpeedUp "none"' and
+ 'NoSpeedUp' options.
+63. Updates to README, X386.man, modeDB.txt.
+62. Added a shar file with sample configuration files for xdm.
+61. Another setpgrp() change in xdm.
+60. Added command line option to specify which VT the server runs on.
+59. Changed default pointer map to the correct 1:1 map.
+58. Fixed bug in merge of SPEEDUP_TEGBLT8 which caused problems when that
+ option was not selected.
+
+X386 1.2E 0.1c (7 June 1992)
+57. Remove some setpgrp() calls in xdm. This allows xdm to work with
+ xqueue on Microport, Dell, AT&T versions.
+56. Default for server to open SCO Xsight connection for SVR4. SVR4.0.4
+ supports this as part of its "Advanced Compatibility Package". The
+ code doesn't appear to cause problems with versions of SVR4 without this
+ (the feature just can't be used on them).
+
+X386 1.2E 0.1b (3 June 1992)
+55. Fixed bug in SPEEDUP_TEGBLT8 selection in vga.c
+54. Glenn's new cfbteblt8.c
+
+X386 1.2E 0.1a (30 May 1992)
+53. Fixed problem when switching VT away too quickly after switching back.
+52. Added Vendor defines for ISC SVR4 (ISC4), AT&T SVR4 (ATT4)
+
+X386 1.2E 0.1 (29 May 1992)
+51. First beta version
+
+X386 1.2E 0.0n (28 May 1992)
+50. Added README.X386-1.2E
+49. Introductory info added to modeDB.
+48. A few missed RCS Header lines.
+
+X386 1.2E 0.0m (26 May 1992)
+47. Added options to control building 75dpi, 100dpi, and large misc fonts.
+46. More updates to modeDB.
+45. Assembly changes for more pedantic 4.0.4 assembler.
+44. Moved site-specific defines from x386.cf to site.def
+43. Define usleep as the nap syscall for all SVR4 to avoid using libucb.a
+
+X386 1.2E 0.0l (23 May 1992)
+42. Added BuildType1 option
+41. Fixed ManDir and LibmanDir in site.def
+40. Added RCS Header lines to modified files
+
+X386 1.2E 0.0k (23 May 1992)
+39. Moved Glenn's and Jim's assembler routines into ddx/x386/enhanced
+38. Local connection added to X386.man
+37. Jim's update to cfbtileodd.c
+
+X386 1.2E 0.0j (21 May 1992)
+36. Updates to ModeDB.txt
+35. New fLineH.s from Jim
+34. New gLine.s from Glenn
+
+X386 1.2E 0.0i (19 May 1992)
+33. Fixed problem with setting mouse acceleration
+32. Prettied up startup message
+
+X386 1.2E 0.0h (16 May 1992)
+31. Removed SPEEDUP_TEGBLT8 from SPEEDUP_ALL -- it causes problems for some
+ font rendering (characters coming out as solid filled blocks).
+30. Added Thomas Eberhardt's compressed bitmap font patches
+
+X386 1.2E 0.0g (15 May 1992)
+29. #undef'd SO_DONTLINGER in os/connection.c for SVR4 -- it is not properly
+ defined for SVR4, and it removes the familiar startup error message.
+28. Changed SPEEDUP_VHLINE to SPEEDUP_LINE since it's not just for V, H lines
+27. Included Glenn's gLine.s
+26. Modified auto-detect HiClock code to use Thomas' method of making 16
+ clocks available with ET4000. HiClock option has been removed since
+ this change makes it obsolete. X386.man and Xconfig have been updated
+ accordingly.
+25. Fix problem switching after SIGHUP is sent while VT switched away.
+24. Take x386Resetting out of os/utils.c and put it in x386Init.c
+23. Turn on screen saver before copying screen to pixmap when switching away
+22. Fixed typo in vga.c related to SPEEDUP_TEGBLT8
+
+X386 1.2E 0.0f (14 May 1992)
+21. Removed special handling of SIGSEGV when server is exiting.
+20. Take care of server exiting and resetting when VT is switched away.
+19. Copy screen to dummy pixmap when switching away, and copy it back when
+ switching back. (The contents were of the dummy pixmap were previously
+ ignored.) Masking window is no longer used.
+
+X386 1.2E 0.0e (13 May 1992)
+18. Add missing argument in call of GlennsFillBoxSolid -- hopefully fixes
+ SIGSEGV problem.
+17. Added x386Version.h, CHANGELOG
+16. Added a couple of #undef's in cfbhrzvert.c
+15. Fold in public-patch-9 for cfb/cfbbresd.c into cfb.banked/cfbbresd.c
+14. casting for VGABASE in cfbbitblt.c
+13. #include fix in connection.c
+12. Disable building of FontServer in site.def
+
+X386 1.2E 0.0d (12 May 1992)
+11. Changes to gFillCopy.s, gVHLine.s to improve hseg100 performance.
+10. Change the way GCOps are initialised when SpeedUp is selected
+9. Add SpeedUp to cfbteblt8.c that assumes xdim=1024
+
+X386 1.2E 0.0c (10 May 1992)
+8. Allow SpeedUp Xconfig option to individually select various speedups
+
+X386 1.2E 0.0b (10 May 1992)
+7. Autodetect for HiClock option (not tested yet)
+6. Fix for cfbblt not setting read on dst for GC ops that require it
+5. Minor change in X386.man
+
+X386 1.2E 0.0a (09 May 1992)
+4. Reset screen saver timer for ForceScreenSaver(Reset)
+3. Reset screen saver when switching back
+2. Raise masking window when switching back so all windows get expose events
+1. Use dummy buffer for screen writes when VT is switched away
+
+X386 1.2E 0.0 (07 May 1992)
diff --git a/hw/xfree86/doc/devel/DebuggingHints b/hw/xfree86/doc/devel/DebuggingHints
new file mode 100644
index 000000000..300fe4813
--- /dev/null
+++ b/hw/xfree86/doc/devel/DebuggingHints
@@ -0,0 +1,192 @@
+
+ Xserver Debugging
+ =================
+
+This file is intended to collect helpful hints on Xserver debugging.
+I merely outline my experiences here. Somebody else might have better
+methods on doing it. This person is therefore invited to share this
+experience with the rest of the world by adding it here.
+
+Paul Flinders has made some patches to gdb to add support for loadable
+modules. This version of gdb is currently available as binary for
+Linux/x86 on Paul's web site:
+
+ www.dawa.demon.co.uk/xfree-gdb
+
+This web-site also contains the patches to gdb 4.18 so you may port it
+to other platforms.
+
+It loads the module symbols and supports all gdb features like
+breakpointing, disassembling and single stepping. It also shows the
+exact location of a signal 11. Paul has fixed the code so that all of
+this is working even if using modules compiled without -g. You can
+find his latest version on his web site.
+
+If no module aware gdb is available the following hints might help:
+
+1. Use remote login. This can be done thru a network connection or
+ simply by connecting a serial console. This enables you to watch
+ the Xservers output while running set breakpoints with gdb etc.
+ Don't even try to run the Xserver from a system console. Whenever
+ something happens gdb waits for input. However the Xserver has
+ locked the system console including the keyboard, therefore you'll
+ never be able to send any input to gdb. Even if your process
+ doesn't crash or you haven't set any breakpoints a vt switch can be
+ hazardous: When doing vt switching a signal is sent; unless you did
+
+ gdb> handle SIGUSR1 nostop
+
+ gdb waits for you to continue the program which cannot happen as
+ you don't have access to gdb's console.
+
+2. You can compile any source file with debugging symbols to obtain
+ more information about where an error occurred. Simply go to the
+ directory which holds the corresponding object file and do:
+
+ # rm <file>.o
+ # xc/config/util/makeg.sh <file>.o
+
+ After relinking the server or module gdb is able to obtain the
+ necessary debugging information and will show the exact line in the
+ source where the error ccurred. See also:
+ xc/config/util/makeg.man.
+
+3. In some cases it might be useful to have the assembler output of a
+ compiled source file. This can be obtained by doing:
+
+ # make <file>.s
+
+ or
+
+ # xc/config/util/makeg.sh <file>.s
+
+ Make will use exactly the same rules it uses for building *.o files.
+
+4. In some cases it might be useful to set breakpoints in modules. If
+ no module aware gdb is available you should add a call to one of
+ the three dummy breakpoint functions
+
+ xf86Break1(), xf86Break2() and xf86Break3()
+
+ to the source file and recompile the module. You now just have to
+ set a breakpoint onto the appropriate dummy functions. These
+ functions are located in the core part of the server and therefore
+ will be available any time.
+
+5. Without module support gdb is not able to print the function where
+ an error occurred in a module.
+
+ If you get a line like:
+
+ (gdb) bt
+ #0 0x823b4f5 in ?? ()
+ ....
+
+ You may obtain the function the address belongs to by calling
+ LoaderPrintSymbol():
+
+ (gdb) call LoaderPrintSymbol(0x823b4f5)
+
+ The symbol returned might not always be the name of the function
+ which contains the address. In case of static functions the symbol
+ is not known to the loader. However LoaderPrintSymbol() will print
+ the nearest known function and the offset from its start. You may
+ easily find the exact location of the address if you do:
+
+ # objdump --disassemble <file>.o
+
+ <file>.o is the name of the object file containing the symbol printed.
+
+6. Locating static symbols in modules is simpler if the module is a
+ single object file instead of a library. Such a object file can
+ easily be build from a library: # mkdir tmp # cd tmp; ar x
+ module-path/<libname>.a # ld -r *.o -o module-path/<name>.o
+
+ When calling LoaderPrintSymbol() the closes public symbol will be
+ printed together with the offset from the symbol's address. If a
+ static symbol comes before the first public symbol in a module The
+ following trick may help:
+
+ create a file 1-<name>.c in tmp/
+ containing:
+ void Dummy-<name>() {}
+
+ Compile it:
+
+ # gcc -c 1-<name>.c
+
+ and do the link step above.
+
+ This way Dummy-<name>() will be the first public function in the
+ module. All addresses in static function can now be printed
+ relatively to this address if no other public function comes before
+ this static one.
+
+7. In some situations it is quite helpful to add debugging symbols to
+ the binary. This can be done per object file. Simply remove the
+ object file and do
+
+ # makeg
+
+ When looking for a bug in a module these debugging infos can be
+ very helpful: Calling LoaderPrintSymbol() as described above will
+ return a function and an offset giving the exact location of the
+ address with respect to this function entry point. When
+ disassembling an object file with debugging symbols: # objdump -d
+ -l <file>.o one will receive a disassembled output containing line
+ number information. Thus one can locate the exact line of code
+ where the error occurred.
+
+8. To quickly trace the value of a variable declared in a module three
+ dummy variables have been added to the core part:
+
+ CARD32 xf86DummyVar1;
+ CARD32 xf86DummyVar2;
+ CARD32 xf86DummyVar3;
+
+ The variable can be assigned to one of them. One can then use gdb
+ to return the value of this variable:
+
+ gdb> p /x xf86DummyVar1
+
+9. Sometimes it might be useful to check how the preprocessor replaced
+ symbols. One can obtain a preprocessed version of the source file
+ by doing:
+
+ make <filename>.i
+
+ This will generate a preprocessed source in <filename>.i.
+
+10. xfree() can catch if one tries to free a memory range twice. You
+ will get the message:
+
+ Xalloc error: range already freed in Xrealloc() :-(
+
+ To find the location from which xfree() was called one can
+ breakpoint on XfreeTrap(). The backtrace should show the origin of the
+ call this call.
+
+11. To access mapped physical memory the following functions might be
+ useful.
+
+ These may be used to access physical memory that was mapped using
+ the flags VIDMEM_FRAMEBUFFER or VIDMEM_MMIO32:
+
+ CARD8 xf86PeekFb8(CARD8 *p);
+ CARD16 xf86PeekFb16(CARD16 *p);
+ CARD32 xf86PeekFb32(CARD32 *p);
+ void xf86PokeFb8(CARD8 *p, CARD8 v);
+ void xf86PokeFb16(CARD16 *p, CARD16 v);
+ void xf86PokeFb32(CARD16 *p, CARD32 v);
+
+ Physical memory which was mapped by setting VIDMEM_MMIO should be
+ accessed using the following. Here the base address to which the
+ memory is mapped and the offset are required separately.
+
+ CARD8 xf86PeekMmio8(pointer Base, unsigned long Offset);
+ CARD16 xf86PeekMmio16(pointer Base, unsigned long Offset);
+ CARD32 xf86PeekMmio32(pointer Base, unsigned long Offset);
+ void xf86PokeMmio8(pointer Base, unsigned long Offset, CARD8 v);
+ void xf86PokeMmio16(pointer Base, unsigned long Offset, CARD16 v);
+ void xf86PokeMmio32(pointer Base, unsigned long Offset, CARD32 v);
+
diff --git a/hw/xfree86/doc/devel/Domain.note b/hw/xfree86/doc/devel/Domain.note
new file mode 100644
index 000000000..3db2aefae
--- /dev/null
+++ b/hw/xfree86/doc/devel/Domain.note
@@ -0,0 +1,159 @@
+The purpose of the changes described here is to implement a more general
+framework for multi-head on systems with more than one host-to-PCI bridge.
+The changes also implement a basic port of XFree86 to SPARC Solaris.
+
+These changes are derived from David S. Miller's submission #4653 to the
+patch list. David Andrew of Sun Microsystems was also kind enough to
+arrange for a hardware loan for development of these changes.
+
+These changes are known to work on several SPARC SunOS and UltraSPARC
+Linux configurations. Linux kernel work is in progress to port these
+changes to Linux/PowerPC.
+
+Several loose ends still need to be addressed before these changes can be
+considered stable. The bulk of this note is devoted to enumerating what
+remains to be done, along with other notes, broken down into various broad
+categories.
+
+SPARC SunOS (aka Solaris)
+-------------------------
+- An overview of this XFree86 port is available in README.Solaris.
+- The keyboard map code in hw/xfree86/os-support/sunos/sun_kbdEv.c needs
+ to be extended to handle more than only the sun5 keyboard I targeted it
+ for. Even for the sun5, the map is incomplete as several keys are not
+ mapped. What is there is just barely usable.
+- On exit, the server will zero out /dev/fb, but that might not be the
+ right thing to do for all primary adapters. This does however
+ appear to emulate the behaviour of Sun's commercial servers. It also
+ eliminates the need for output drivers to save and restore video memory
+ contents. (They still need to save/restore the mode timing however.)
+ This also chimes into a long-standing XFree86 policy to not save/restore
+ video memory contents if the mode on entry is found to be non-VGA, a
+ policy several existing drivers comply with.
+- The SBUS drivers (sunbw2, suncg14, suncg3, suncg6, sunffb, sunleo and
+ suntcx), the common layer's SBUS code and the fbdev driver have all
+ only been compile tested. There are likely to be Linux'isms within
+ them that remain to be dealt with.
+- It still needs to be verified whether or not this work adversely
+ affected support for ix86 Solaris.
+
+UltraSPARC Linux
+----------------
+- Although this code can be compiled using any Linux/SPARC64 kernel, it
+ can only run successfully using 2.4.12 or later.
+- I haven't had time to sufficiently dig into XKB to properly configure it
+ for sun5 keyboards. Given XFree86 on Linux/SPARC has been around for a
+ while, it's likely someone has already done this, and I'd appreciate
+ receiving a copy of a working XF86Config input section.
+
+PowerPC Linux
+-------------
+- As mentioned above, kernel work is in progress to port this PCI scheme
+ to Linux/PowerPC.
+- Aside from kernel work, the inX() and outX() definitions in compiler.h
+ will need to be changed to do something akin to their SPARC definitions,
+ i.e. consider their port argument to be a virtual address.
+
+Other Linux ports to multi-domain architectures
+-----------------------------------------------
+- Comments in os-support/bus/linuxPci.c document the kernel interface
+ required to port these changes. In short, Linux ports, such as Alpha
+ and mips, should follow SPARC and PowerPC's lead in providing support to
+ mmap() PCI devices through their /proc/bus/pci pseudo-files and to treat
+ such requests for host bridges as requests to mmap() space provided by
+ these bridges.
+
+Other OS's
+----------
+- In the right hands, either linuxPci.c or sparcPci.c can be used as a
+ guide for what would need to be done to port this scheme to other OS's.
+ Perhaps the largest difference between the two (in terms of interface to
+ the common layer) is that the SunOS port includes internally generated
+ domain numbers in PCITAG's, whereas the Linux port doesn't need to. The
+ remainder of the PCI code (which is OS-independent) can handle either
+ scheme.
+- Required entry points are xf86GetPciDomain(), xf86MapDomainMemory(),
+ xf86MapDomainIO() and xf86ReadDomainMemory(). Replacements for
+ xf86BusAccWindowsFromOS(), xf86PciBusAccWindowsFromOS() and
+ xf86AccResFromOS() might also be required.
+- Development of these changes has detected the fact that the XFree86 port
+ to the PowerMax OS is broken, and has been for some time, i.e. since
+ shortly after its introduction, back in the 3.9* days.
+
+SPARC PCI (OS-independent)
+--------------------------
+- The "Simba" PCI-to-PCI bridge used in SPARC's does not implement VGA
+ routing, as defined in the PCI specs. Fortunately, OpenPROM seems to
+ always route VGA resources to the bus with PCI connectors, but this also
+ causes the common layer to not mark any PCI adapter as primary.
+
+Multiple PCI domains (architecture- and OS-independent)
+-------------------------------------------------------
+- This implementation assumes every host-to-PCI bridge provides access to
+ a separate PCI domain. Each such domain provides three different
+ "address" spaces: PCI configuration, I/O and memory. The
+ implementation can also deal with situations where more than one PCI
+ domain share (different subsets of) the same PCI configuration space. I
+ have unconfirmed information that suggests it might be necessary to also
+ allow the sharing of PCI memory spaces.
+- This implementation also assumes the CPU's physical address space
+ includes the entirety of each domain's I/O and memory spaces. I know
+ this'll need to be changed to deal with the so-called UniNorth bridge,
+ found on PowerPC's, which allows access to only a subset of the memory
+ space behind it.
+- Ideally, the common layer should mark as primary up to one PCI adapter
+ per domain. This has yet to be done.
+- Something needs to be done about PCI master aborts on primary buses.
+ For details on this, see my long-winded diatribe in sparcPci.c, and
+ related comments in linuxPci.c. Suffice it to say here that I see the
+ eventual implementation of host bridge drivers within XFree86 as
+ unavoidable at this point.
+- DGA is broken on multi-domain platforms. The information passed to the
+ client to locate the framebuffer still needs to be revised. The best way
+ to deal with this is to change all drivers' OpenFramebuffer() function to
+ call a common layer routine to set the device name and displacements to be
+ returned to the DGA client.
+
+Output drivers
+--------------
+Most drivers currently used on ix86 need(ed) source code changes.
+- Calls to xf86ReadBIOS() and xf86MapVidMem() were replaced with calls to
+ xf86ReadDomainMemory() and xf86MapDomainMemory() respectively. Except
+ for the "ati" and "atimisc" modules, this has already been done.
+- All ix86-style I/O port numbers need to be declared as an IOADDRESS, a
+ type defined in xf86Pci.h as "unsigned long". Such port numbers also
+ need to be offset by a displacement which is also defined as an
+ IOADDRESS. Before a driver's PreInit() is called, the common layer
+ makes this displacement available in ScrnInfoRec.domainIOBase. For
+ single-domain architectures, such as ix86, domainIOBase will always be
+ zero. Current use of vgaHWRec.PIOOffset has also been adjusted
+ accordingly. Some drivers have been changed to keep a copy of this
+ displacement in their private structure. Internally, an IOADDRESS is
+ actually a pointer that has been recasted to an unsigned long, but the
+ common layer "hides" this fact from the driver ABI, which means that I/O
+ port numbers, as seen by drivers, remain as integers rather than
+ addresses. Aside from the ati and atimisc modules, s3, sis and tseng
+ are the only modules left whose I/O still needs to be converted (I've
+ temporarily run out of steam).
+- Note that these conversions are not necessarily sufficient to produce
+ drivers that will work on any given multi-domain architecture. A driver
+ that, for example, had endianness problems, still does. But, at least,
+ these conversions, along with the supporting common layer changes, make
+ PCI drivers more widely amenable to porting.
+- rdinx(), wrinx(), modinx(), testrg(), testinx() and testinx2() are not
+ given enough information to allow for the relocation of their I/O. They
+ are consequently being deleted. The apm and ark drivers, the only
+ remaining callers of the first three, have been changed to use local
+ definitions instead. The last three (test*()) were already unused.
+- As a temporary measure, these changes completely disable ISA-style
+ probing on SPARC's and PowerPC's. This means that driver calls to
+ xf86MatchIsaInstances(), while still valid, will always return detection
+ failure on SPARC's and PowerPC's. This will be dealt with when a more
+ general master abort handling scheme is implemented.
+- I need to make a decision about the master abort issues mentionned above
+ before I can convert the "ati" and "atimisc" modules. Consequently,
+ these modules still need to be compiled with -DAVOID_CPIO on
+ multi-domain architectures, and support for Mach64 variants as
+ non-primary heads is not yet available.
+
+$XFree86: xc/programs/Xserver/hw/xfree86/Domain.note,v 1.2 2002/01/25 21:55:49 tsi Exp $
diff --git a/hw/xfree86/doc/devel/RAC.Notes b/hw/xfree86/doc/devel/RAC.Notes
new file mode 100644
index 000000000..0aec9d795
--- /dev/null
+++ b/hw/xfree86/doc/devel/RAC.Notes
@@ -0,0 +1,696 @@
+I. Abstract
+===========
+
+Graphics devices are accessed thru ranges in I/O or memory space. While
+most modern graphics devices allow relocation of such ranges many of
+them still require the use of well established interfaces such as VGA
+memory and IO ranges or 8514/A IO ranges. Up to version 3.3 of
+XFree86 only a single graphics device could be driven. Therfore there
+was no need to address the issue of sharing such memory or I/O ranges
+among several devices. Starting with version 4.0 XFree86 is capable of
+driving more than one graphics interface in a multi-head environment.
+Therefore a mechanism needed to be designed which was capable of
+controlling the sharing the access to memory and I/O ranges. In this
+document we describe to use of the RAC (Resource Access Control)
+system in the XFree86 server which provides the service of controlling
+access to interface resources.
+
+II. Introduction
+================
+
+Terms and definitions:
+
+II.1. Bus
+---------
+
+'Bus' is ambiguous as it is used for different things: It may refer to
+physical incompatible extension connectors in a computer system. The
+RAC system knows two such systems: The ISA bus and the PCI bus. (On
+the software level EISA, MC and VL buses are currently treated like
+ISA buses). 'Bus' may always refer to logically different entities on
+a single bus system which are connected via bridges. A PCI system may
+have several distinct PCI buses connecting each other by PCI-PCI
+bridges or to the host CPU by HOST-PCI bridges.
+
+Systems that host more than one bus system link these together using
+bridges. Bridges are a concern to RAC as they might block or pass
+specific resources. PCI-PCI bridges may be set up to pass VGA
+resources to the secondary bus. PCI-ISA buses pass any resources not
+decoded on the primary PCI bus to the ISA bus. This way VGA resources
+(although exclusive on the ISA bus) can be shared by ISA and PCI
+cards. Currently HOST-PCI bridges are not yet handled by RACY as they
+require specific drivers.
+
+II.2. Entity
+------------
+
+The smallest independently addressable unit on a system bus is
+referred to as an entity. So far we know ISA and PCI entities. PCI
+entities can be located on the PCI bus by an unique ID consisting of
+the bus, card and function number.
+
+II.3. Resource
+--------------
+
+ 'Resource' refers to a range of memory or I/O addresses an entity
+can decode.
+
+If a device is capable of disabling this decoding the resource is
+called sharable. For PCI devices a generic method is provided to
+control resource decoding. Other devices will have to provide a device
+specific function to control decoding.
+
+If the entity is capable of decoding this range at a different
+location this resource is considered relocatable. Resource which start
+at a specific address and occupy a single continuous range are called
+block resources.
+
+Alternatively resource addresses can be decoded in a way that they
+satisfy the condition:
+
+ address & mask == base
+
+with base & mask == base. Resources addressed in such a way are
+considered sparse resources.
+
+
+II.4. Server States
+------------------
+
+The resource access control system knows two server states: the SETUP
+and the OPERATING state. The setup state is entered whenever a mode
+change takes place or the server exits or does VT switching. During
+this state any entity resource is under resource access control.
+During OPERATING state only those entities are controlled which
+actually have shared resources that conflict with others. The
+determination which entity is to be placed under RAC during OPERATING
+state takes place after ScreenInit() during the first server
+generation. This doesn't apply if only one screen is active: in this
+case no RAC is needed and the screen is simply left enabled while the
+server is active.
+
+
+III. Theory of operation
+========================
+
+III.1. General
+--------------
+
+The common level has knowledge of generic access control mechanisms
+for devices on certain bus systems (currently the PCI bus) as well as
+of methods to enable or disable access to the buses
+itself. Furthermore it can access information on resources decoded by
+these devices and if necessary modify it.
+
+When first starting the Xserver collects all this information, saves
+it for restoration checks it for consistency and if necessary corrects
+it. Finally it disables all resources on a generic level prior to
+calling any driver function.
+
+ The user should provide a device section in XF86Config for each
+graphics device installed in his system. Each such entity which is
+never to be used as X display device might be marked as inactive by
+adding the keyword "Inactive" to the device section.
+
+When the Probe() function of each driver is called the device sections
+are matched against the devices found in the system. The driver may
+probe devices at this stage that cannot be identified by using device
+independent methods. Access to all resources that can be controlled in
+a device independent way is disabled. The Probe() function should
+register all non-relocatable resources at this stage. If a resource
+conflict is found between exclusive resources the driver will fail
+immediately. Optionally the driver might specify an EntityInit(),
+EntityLeave() and EntityEnter() function.
+
+EntityInit() can be used to disable any shared resources that are not
+controlled by the generic access control functions. It is called prior
+to the PreInit phase regardless if an entity is active or not. When
+calling the EntityInit(), EntityEnter() and EntityLeave() functions
+the common level will disable access to all other entities on a
+generic level. Since the common level has no knowledge of device
+specific methods to disable access to resources it cannot be
+guaranteed that certain resources are not decoded by any other entity
+until the EntityInit() or EntityEnter() phase is finished. Device
+drivers should therefore register all those resources which they are
+going to disable. If these resources are never to be used by any
+driver function they may be flagged 'ResInit' so that they can be
+removed from the resource list after processing all EntityInit()
+functions. EntityEnter() should disable decoding of all resources
+which are not registered as exclusive and which are not handled by the
+generic access control in the common level. The difference to
+EntityInit() is that the latter one is only called once during
+lifetime of the server. It can therefore be used to set up variables
+prior to disabling resources. EntityLeave() should restore the
+original state when exiting the server or switching to a different vt.
+It also needs to disable device specific access functions if they need
+to be disabled on server exit or VT switch. The default state is to
+enable them before giving up the VT.
+
+In PreInit() phase each driver should check if any sharable resources
+it has registered during Probe() has been denied and take appropriate
+action which could simply be to fail. If it needs to access resources
+it has disabled during EntitySetup() it can do so provided it has
+registered these and will disable them before returning from
+PreInit(). This also applies to all other driver functions. Several
+functions are provided to request resource ranges, register these,
+correct PCI config space and add replacements for the generic access
+functions. Resources may be marked 'disabled' or 'unused' during
+OPERATING stage. Although these steps could also be performed in
+ScreenInit(), this is not desirable.
+
+Following PreInit() phase the common level determines if resource
+access control is needed. This is the case if more than one screen is
+used. If necessary the RAC wrapper module is loaded. In ScreenInit()
+the drivers can decide which operations need to be placed under
+RAC. Available are the frame buffer operations, the pointer operations
+and the colormap operations. Any operation that requires resources
+which might be disabled during OPERATING state should be set to use
+RAC. This can be specified separately for memory and IO resources.
+
+When ScreenInit() phase is done the common level will determine which
+shared resources are requested by more than one driver and set the
+access functions accordingly. This is done following these rules:
+
+a. The sharable resources registered by each entity are compared. if
+ a resource is registered by more than one entity the entity will be
+ marked to need to share this resources type (IO or MEM).
+
+b. A resource marked 'disabled' during OPERATING state will be ignored
+ entirely.
+
+c. A resource marked 'unused' will only conflicts with an overlapping
+ resource of an other entity if the second is actually in use during
+ OPERATING state.
+
+d. If an 'unused' resource was found to conflict however the entity
+ does not use any other resource of this type the entire resource
+ type will be disabled for that entity.
+
+The driver has the choice among different ways to control access to
+certain resources:
+
+a. It can relay on the generic access functions. This is probably the
+ most common case. Here the driver only needs to register any
+ resource it is going to use.
+
+b. It can replace the generic access functions by driver specific
+ ones. This will mostly be used in cases where no generic access
+ functions are available. In this case the driver has to make sure
+ these resources are disabled when entering the PreInit() stage.
+ Since the replacement functions are registered in PreInit() the
+ driver will have to enable these resources itself if it needs to
+ access them during this state. The driver can specify if the
+ replacement functions can control memory and/or I/O resources
+ separately.
+
+c. The driver can enable resources itself when it needs them. Each
+ driver function enabling them needs to disable them before it will
+ return. This should be used if a resource which can be controlled
+ in a device dependent way is only required during SETUP state. This
+ way it can be marked 'unused' during OPERATING state.
+
+A resource which is decoded during OPERATING state however never
+accessed by the driver should be marked unused.
+
+Since access switching latencies are an issue during Xserver
+operation, the common level attempts to minimize the number of
+entities that need to be placed under RAC control. When a wrapped
+operation is called, the EnableAccess() function is called before
+control is passed on. EnableAccess() checks if a screen is under
+access control. If not it just establishes bus routing and returns. If
+the screen needs to be under access control, EnableAccess() determines
+which resource types (MEM,IO) are required. Then it tests if this
+access is already established. If so it simply returns. If not it
+disables the currently established access, fixes bus routing and
+enables access to all entities registered for this screen.
+
+Whenever a mode switch or a vt-switch is performed the common level
+will return to SETUP state.
+
+III.3. Resource Types
+---------------------
+
+Resource have certain properties. When registering resources each
+range is accompanied by a flag consisting of the or'ed flags of the
+different properties the resource has. Each resource range may be
+classified according to
+
+- its physical properties ie. if it addresses
+ memory (ResMem) or
+ I/O space (ResIo),
+- if it addresses a
+ block (ResBlock) or
+ sparse (ResSparse)
+ range,
+- its access properties.
+
+There are two known access properties:
+
+- ResExclusive
+ for resources which may not be shared with any other device and
+- ResShared
+ for resources which can be disabled and therefore can be shared.
+
+If it is desirable to test a resource against any type a generic
+access type 'ResAny' is provided. If this is set the resource will
+conflict with any resource of a different entity intersecting its
+range. Further it can be specified that a resource is decoded however
+never used during any stage (ResUnused) or during OPERATING state
+(ResUnusedOpr). A resource only visible during the init functions (ie.
+EntityInit(), EntityEnter() and EntityLeave() should be registered
+with the flag 'ResInit'. A resource that might conflict with
+background resource ranges may be flagged with 'ResBios'. This might
+be useful when registering resources ranges that were assigned by the
+system Bios.
+
+Several predefined resource lists are available for VGA and 8514/A
+resources in common/sf86Resources.h.
+
+IV. Available Functions
+=======================
+
+The functions provided for resource management will be listed in order
+of use in the driver.
+
+IV.1. Probe phase
+-----------------
+
+In this stage each driver detects those resources it is able to drive,
+creates an entity record for each of them, registers non-relocatable
+resources and allocates screens and adds the resources to screens.
+
+Two helper functions are provided for matching device sections in the
+XF86Config file to the devices:
+
+ int xf86MatchPciInstances(const char *driverName, int vendorID,
+ SymTabPtr chipsets, PciChipsets *PCIchipsets,
+ GDevPtr *devList, int numDevs, DriverPtr drvp,
+ int **foundEntities);
+
+ int xf86MatchIsaInstances(const char *driverName, SymTabPtr chipsets,
+ IsaChipsets *ISAchipsets, DriverPtr drvp,
+ FindIsaDevProc FindIsaDevice, GDevPtr *devList,
+ int numDevs, int **foundEntities);
+
+Both functions return the number of matched entities and their indices
+in foundEntities list.
+
+They make use of several sub functions which are also available on the
+driver level:
+
+ Bool xf86ComparePciBusString(const char *busID, int bus,
+ int device, int func);
+
+and
+
+ Bool xf86ParseIsaBusString(const char *busID);
+
+are called to interpret the busID in the device section. The functions:
+
+ int xf86ClaimPciSlot(int bus, int device, int func, DriverPtr drvp,
+ int chipset, GDevPtr dev, Bool active);
+
+ int xf86ClaimIsaSlot(DriverPtr drvp, int chipset, GDevPtr dev, Bool
+ active);
+
+are used to allocate the entities and initialize their data
+structures. Both functions return the index of the newly allocated
+entity record or (-1) should the function fail. Before probing an ISA
+card
+
+ Bool xf86IsPrimaryIsa();
+
+gets called to determine if the primary card was not detected on the
+PCI bus.
+
+Two helper functions are provided to aid configuring entities:
+
+ Bool xf86ConfigActivePciEntity(ScrnInfoPtr pScrn, int entityIndex,
+ PciChipsets *p_chip, resList res,
+ EntityProc init, EntityProc enter,
+ EntityProc leave, pointer private);
+ Bool xf86ConfigActiveIsaEntity(ScrnInfoPtr pScrn, int entityIndex,
+ IsaChipsets *i_chip, resList res,
+ EntityProc init, EntityProc enter,
+ EntityProc leave, pointer private);
+
+They are used to register the init/enter/leave functions described
+above as well as the non-relocatable resources. Generally the list of
+fixed resources is obtained from the Isa/PciChipsets lists. However
+an additional list of resources may be passed. Generally this is not
+required. The init/enter/leave functions have to be of type
+
+ typedef void (*EntityProc)(int entityIndex,pointer private);
+
+They are passed the entity index and a pointer to a private scratch
+area. This are can be set up during Probe() and its address can be
+passed to xf86ConfigActiveIsaEntity() xf86ConfigActivePciEntity() as
+the last argument.
+
+These helper functions use:
+
+ void xf86ClaimFixedResources(resList list, int entityIndex);
+
+ To register the non relocatable resources which cannot be disabled
+ and which therefore would cause the server to fail immediately if
+ they were found to conflict. It also records non-relocatable but
+ sharable resources for processing after the Probe() phase.
+
+ Bool xf86SetEntityFuncs(int entityIndex, EntityProc init,
+ EntityProc enter, EntityProc leave, pointer);
+
+ This function registers the init/enter/leave() functions along with
+ the pointer to their private area to the entity.
+
+ void xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex);
+
+ adds the entity to the screen.
+
+These functions are also available on the driver level. A detailed
+Probe() function is listed below. For most drivers this can be used
+with little change.
+
+Please note that VGA resources have to be claimed in Probe()
+phase. Otherwise they are not routed to the bus.
+
+IV.2. PreInit() phase
+---------------------
+
+During this phase the remaining resource should be registered.
+PreInit() should call
+
+ EntityInfoPtr xf86GetEntityInfo(int entityIndex);
+
+To obtain a pointer to an EntityInfoRec for each entity it is able to
+drive and check if any resource are listed in 'resources'. These have
+been rejected in the post-Probe() phase. The driver should decide if
+it can continue without using these or if it should fail. The pointer
+to the EntityInfoRec should be freed if not needed any more.
+
+Several functions are provided to simplify resource registration:
+
+ Bool xf86IsEntityPrimary(int entityIndex);
+
+is used to determine if the entity is the display device that is used
+during boot-up and text mode.
+
+ Bool xf86IsScreenPrimary(int scrnIndex);
+
+finds out if the primary entity is registered for the screen with
+specified index.
+
+ pciVideoPtr xf86GetPciInfoForEntity(int entityIndex);
+
+returns a pointer to the pciVideoRec of the specified entity. If the
+entity is not a PCI device NULL is returned.
+
+The primary function for registration of resources is
+
+ resPtr xf86RegisterResources(int entityIndex, resList list, int access);
+
+it tries to register the resources in 'list'. If list is NULL it tries
+to determine the resources automatically. This only works for entities
+that provide a generic way to read out the resource ranges they
+decode. So far this is only the case for PCI devices. By default the
+PCI resources are registered as shared (ResShared) if the driver wants
+to set a different access type it can do so by specifying the access
+flags in the third argument. A value of 0 means to use the default
+settings. If for any reason the resource broker is not able to
+register some of the requested resources the function will return a
+pointer to a list of the failed ones. In this case the driver may move
+the resource to different locations. In case of PCI bus entities this
+is done by passing the list of failed resources to
+
+ resPtr xf86ReallocatePciResources(int entityIndex, resPtr pRes);
+
+this function returns a list of reallocated resource. This list needs
+to be passed to xf86RegisterResources() again to be registered with
+the broker.
+
+Two functions are provided to obtain a resource range of a given type:
+
+ resRange xf86GetBlock(long type, memType size,
+ memType window_start, memType window_end,
+ memType align_mask, resPtr avoid);
+ resRange xf86GetSparse(long type, unsigned long fixed_bits,
+ unsigned long decode_mask, unsigned long address_mask,
+ resPtr avoid);
+
+The first one tries to find a block range of size 'size' and type
+'type' in a window bound by window_start and window_end with the
+alignment specified in alignment mask. Optionally a list of resource
+ranges which should be avoided inside this window can be passed. On
+failure it will return a zero range of type 'ResEnd'.
+
+The latter function does the same for sparse resources. A spares range
+is determined by to parameters: the mask and the base value. An
+address satisfying
+
+ mask & address == base
+
+belongs to the specific spares range. 'mask' and 'base' themselves
+have to satisfy:
+
+ mask & base == base.
+
+Here three values have to be specified: the address mask which marks
+all bits of the mask part of the address, the decode_mask which masks
+out the bits which are hard coded and are therefore not available for
+relocation and the values of the fixed bits. The function tries to
+find a base that satisfies the given condition. If the function fails
+it will return a zero range of type 'ResEnd'. Optionally it might be
+passed a list of resource ranges to avoid.
+
+Certain PCI devices are broken in the sense that they return invalid
+size information for a certain resource. In this case the driver can
+supply the correct size and make sure that the resource range
+allocated for the card is large enough to hold the address range
+decoded by the card. The function:
+
+ Bool xf86FixPciResource(int entityIndex, unsigned int prt, CARD32 alignment,
+ long type);
+
+is used for that. The parameter prt contains the number of the PCI
+base register that needs to be modified. A value of 6 refers to the
+BIOS base register. The size is specified in the alignment
+register. Since PCI resources need to span an integral range of the
+size 2^n the alignment also specifies the number of addresses that
+will be decoded. If the driver specifies a type mask it can override
+the default type for PCI resources which is 'ResShared'. The resource
+broker needs to know that to find a matching resource range. This
+function should be called before calling xf86RegisterResources().
+
+ Bool xf86CheckPciMemBase(pciVideoPtr pPci, unsigned long base);
+
+checks that the memory base value specified in base matches one of the
+PCI base address register values for the given PCI device.
+
+The driver may replace the generic access control functions for an
+entity by it's own ones.
+
+ void xf86SetAccessFuncs(EntityInfoPtr pEnt, xf86SetAccessFuncPtr funcs,
+ xf86SetAccessFuncPtr oldFuncs);
+
+ with:
+
+ typedef struct {
+ xf86AccessPtr mem;
+ xf86AccessPtr io;
+ xf86AccessPtr io_mem;
+ } xf86SetAccessFuncRec, *xf86SetAccessFuncPtr;
+
+is used for that. The driver can pass three functions: one for I/O
+access, one for memory access and one for combined memory and I/O
+access. If the memory access and combined access functions are
+identical the common level assumes that the memory access cannot be
+controlled independently of I/O access, if the I/O access function and
+the combined access functions are the same it is assumed that I/O can
+not be controlled independently. If memory and I/O have to be
+controlled together all three values should be the same. If a non
+NULL value is passed as third argument it is interpreted as an address
+where to store the old access records. If the third argument is NULL
+it will be assumed that the generic access should be enabled before
+replacing the access functions. Otherwise it will be disabled. The
+driver may enable them itself using the returned values. It should do
+this from his replacement access functions as the generic access may
+be disabled by the common level on certain occasions. If replacement
+functions are specified they must control all resources of the
+specific type registered for the entity.
+
+To find out if specific resource range is conflicting with another
+resource
+
+ memType xf86ChkConflict(resRange *rgp, int entityIndex);
+
+may be called. If a non-zero value is returned a conflict is found.
+
+ resPtr xf86SetOperatingState(resList list, int entityIndex, int mask);
+
+is used to set the state of a resource during OPERATING state. 'list'
+holds a list to which 'mask' is to be applied. The parameter 'mask'
+may have the value 'ResUnusedOpr' and 'ResDisableOpr'. The first one
+should be used if a resource isn't used during OPERATING state however
+decoded by the device while the latter one indicates that the resource
+is not decoded during OPERATING state. Note that the resource ranges
+have to match those specified during registration. If a range has been
+specified starting at A and ending at B and suppose C us a value
+satisfying A < C < B one may not specify the resource range (A,B) by
+splitting it into two ranges (A,C) and (C,B).
+
+Two functions are provided for special cases:
+
+ void xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex);
+
+may be used to remove an entity from a screen. This only makes sense
+if a screen has more than one entity assigned or the screen is to be
+deleted. No test is made if the screen has any entities left.
+
+ void xf86DeallocateResourcesForEntity(int entityIndex, long type);
+
+deallocates all resources of a given type registered for a certain
+entity from the resource broker list.
+
+IV.3. ScreenInit() phase
+------------------------
+
+Setting up the rac flags is all that remains to do in ScreenInit()
+phase (Note that these flags might also be set up in PreInit() phase).
+The ScrnInfoRec has separate flags for memory and PIO access:
+racIoFlags and racMemFlags. They specifies which graphics operations
+might require the use of resources which might be disabled for some
+reason. Note that even exclusive resources might be disabled if they
+are disabled along with shared resources. For example if a driver has
+registered the VGA PIO resources and lets the common level disable
+these by disabling PIO access in PCI config space (the standard way),
+exclusive PCI PIO ranges will also be disabled. Therefore the driver
+has to flag any operations requiring PCI PIO resources in racIoFlags.
+The avaliable flags are defined in rac/xf86RAC.h. Available are:
+
+ RAC_FB for framebuffer operations (including hw acceleration)
+ RAC_CURSOR for Cursor operations
+ (??? I'm not sure if we need this for SW cursor it depends
+ on which level the sw cursor is drawn)
+ RAC_COLORMAP for colormap operations
+ RAC_VIEWPORT for the call to RACAdjustFrame()
+
+The flags are or'ed.
+
+V. Appendix
+===========
+
+A. Sample Probe() Function
+--------------------------
+
+static Bool
+XXXProbe(DriverPtr drv, int flags)
+{
+ Bool foundScreen = FALSE;
+ int numDevSections, numUsed;
+ GDevPtr *devSections;
+ int *usedChips;
+ int i;
+
+ /*
+ * Find the config file Device sections that match this
+ * driver, and return if there are none.
+ */
+ if ((numDevSections = xf86MatchDevice(CHIPS_DRIVER_NAME,
+ &devSections)) <= 0) {
+ return FALSE;
+ }
+ /* PCI BUS */
+ /* test if PCI bus present */
+ if (xf86GetPciVideoInfo() ) {
+ /* match PCI instances with ones supported by the driver */
+ numUsed = xf86MatchPciInstances(XXX_NAME, PCI_VENDOR_XXX,
+ XXXChipsets, XXXPCIchipsets,
+ devSections,numDevSections, drv,
+ &usedChips);
+ if (numUsed > 0) {
+ for (i = 0; i < numUsed; i++) {
+ /* Allocate a ScrnInfoRec */
+ ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
+ pScrn->driverVersion = VERSION;
+ pScrn->driverName = XXX_DRIVER_NAME;
+ pScrn->name = XXX_NAME;
+ pScrn->Probe = XXXProbe;
+ pScrn->PreInit = XXXPreInit;
+ pScrn->ScreenInit = XXXScreenInit;
+ pScrn->SwitchMode = XXXSwitchMode;
+ pScrn->AdjustFrame = XXXAdjustFrame;
+ pScrn->EnterVT = XXXEnterVT;
+ pScrn->LeaveVT = XXXLeaveVT;
+ pScrn->FreeScreen = XXXFreeScreen;
+ pScrn->ValidMode = XXXValidMode;
+ foundScreen = TRUE;
+ /* add screen to entity */
+ xf86ConfigActivePciEntity(pScrn,usedChips[i],XXXPCIchipsets,
+ NULL,NULL,NULL,NULL,NULL);
+ }
+ }
+ }
+
+ /* Isa Bus */
+ numUsed = xf86MatchIsaInstances(XXX_NAME,XXXChipsets,XXXISAchipsets,
+ drv,chipsFindIsaDevice,devSections,
+ numDevSections,&usedChips);
+ if(numUsed >= 0)
+ for (i = 0; i < numUsed; i++) {
+ ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
+
+ pScrn->driverVersion = VERSION;
+ pScrn->driverName = XXX_DRIVER_NAME;
+ pScrn->name = XXX_NAME;
+ pScrn->Probe = XXXProbe;
+ pScrn->PreInit = XXXPreInit;
+ pScrn->ScreenInit = XXXScreenInit;
+ pScrn->SwitchMode = XXXSwitchMode;
+ pScrn->AdjustFrame = XXXAdjustFrame;
+ pScrn->EnterVT = XXXEnterVT;
+ pScrn->LeaveVT = XXXLeaveVT;
+ pScrn->FreeScreen = XXXFreeScreen;
+ pScrn->ValidMode = XXXValidMode;
+ foundScreen = TRUE;
+ xf86ConfigActiveIsaEntity(pScrn,usedChips[i],XXXISAchipsets,
+ NULL,NULL,NULL,NULL,NULL);
+ }
+ xfree(devSections);
+ return foundScreen;
+}
+
+B. Porting Issues
+-----------------
+
+Here are some hints on porting code developed for RAC 1 to RAC 2.
+
+1. a. Initialization of RAC is now entirely done on the common level.
+ Therefore the call to xf86RACInit() can be removed.
+
+ b. Also there is no need for the racSymbols list.
+
+ c. LoadSubModule(..,rac) should be removed.
+
+ d. racSymbols should be removed from LoaderRequestSymList(racSymbols,..)
+
+2. a. if the driver uses the predefined resource lists xf86Resources.h
+ needs to be included.
+
+ b. RES_VGA should be changed to RES_EXCLUSIVE_VGA
+
+3. The device list now belongs to the EntityInfoRec.
+ Change pScrn->device to xxx->pEnt->device.
+
+4. Rewrite the Probe() function. The example given above should work
+ as a guideline.
+
+5. Register all necessary resources in PreInit() by calling
+ xf86RegisterResources().
+
+6. If applicable set the operating state of the registered resources
+ by calling xf86SetOperatingState(). This should be done during
+ PreInit(). If necessary it might still be done in ScreenInit()
+
+7. Set up the racIoFlags and racMemFlags.
+
+
+ LocalWords: ISA
diff --git a/hw/xfree86/doc/devel/README.DRIcomp b/hw/xfree86/doc/devel/README.DRIcomp
new file mode 100644
index 000000000..1e9773ccc
--- /dev/null
+++ b/hw/xfree86/doc/devel/README.DRIcomp
@@ -0,0 +1,543 @@
+ DRI Compilation Guide
+
+ VA Linux Systems, Inc. Professional Services - Graphics.
+
+ 21 April 2001
+
+1. Preamble
+
+1.1 Copyright
+
+Copyright © 2000-2001 by VA Linux Systems, Inc. All Rights Reserved.
+
+Permission is granted to make and distribute verbatim copies of this document
+provided the copyright notice and this permission notice are preserved on all
+copies.
+
+1.2 Trademarks
+
+OpenGL is a registered trademark and SGI is a trademark of Silicon Graphics,
+Inc. Unix is a registered trademark of The Open Group. The `X' device and X
+Window System are trademarks of The Open Group. XFree86 is a trademark of
+The XFree86 Project. Linux is a registered trademark of Linus Torvalds.
+Intel is a registered trademark of Intel Corporation. 3Dlabs, GLINT, and
+Oxygen are either registered trademarks or trademarks of 3Dlabs Inc. Ltd.
+3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Inter-
+active, Incorporated. Matrox is a registered trademark of Matrox Electronic
+Systems Ltd. ATI Rage and Radeon is a registered trademark of ATI Technolo-
+gies, Inc. All other trademarks mentioned are the property of their respec-
+tive owners.
+
+2. Introduction
+
+This document describes how to download, compile and install the DRI. The
+DRI provides 3D graphics hardware acceleration for the XFree86 project. This
+information is intended for experienced Linux developers. Beginners are
+probably better off installing precompiled packages.
+
+Edits, corrections and updates to this document may be mailed to <brian@tung-
+stengraphics.com>.
+
+Last updated on 13 February 2002 by Brian Paul.
+
+3. Prerequisites
+
+You'll need the following:
+
+ o An installation of XFree86 4.1 or later. The DRI tree has been pruned
+ down to minimize its size. But in order to build the DRI tree you need
+ to have recent X header files, etc. already installed. If you don't
+ have XFree86 4.1 (or later) installed you can probably install it from
+ RPMs (or another package format). Or, you can download XFree86 as
+ sources and compile/install it yourself.
+
+ o At least 200MB of free disk space. If you compile for debugging (the -g
+ option) then you'll need about 600MB.
+
+ o GCC compiler and related tools.
+
+ o ssh (secure shell) if you're a DRI developer and don't want to use
+ anonymous CVS download.
+
+ o A 2.4.x Linux Kernel. See below for details.
+
+ o FreeBSD support is not currently being maintained and may not work.
+
+The DRI 3D drivers generally work on systems with Intel or AMD CPUs. How-
+ever, limited support for Alpha and PowerPC support is underway.
+
+For 3dfx Voodoo hardware, you'll also need the Glide3 runtime library
+(libglide3-v3.so for Voodoo3 or libglide3-v5.so for Voodoo4/5). These can be
+downloaded from the DRI website. You can compile them yourself, but it's
+often a painful process.
+
+For Matrox G200/G400, Intel i810/i830 or ATI Rage128/Radeon hardware, you'll
+also need AGP support in your Linux kernel, either built-in or as a loadable
+module.
+
+4. Linux Kernel Preparation
+
+Only the Linux 2.4.x kernels are currently supported by the DRI hardware
+drivers. 2.5.x kernels may work, but aren't tested.
+
+Most of the DRI drivers require AGP support and using Intel Pentium III SSE
+optimizations also requires an up-to-date Linux kernel. Configuring your
+kernel correctly is very important, as features such as SSE optimizations
+will be disabled if your kernel does not support them. Thus, if you have a
+Pentium III processor, you must configure your kernel for the Pentium III
+processor family.
+
+Building a new Linux kernel can be difficult for beginners but there are
+resources on the Internet to help. This document assumes experience with
+configuring, building and installing Linux kernels.
+
+Linux kernels can be downloaded from www.kernel.org
+
+Here are the basic steps for kernel setup.
+
+ o Download the needed kernel and put it in /usr/src. Create a directory
+ for the source and unpack it. For example:
+
+ cd /usr/src
+ rm -f linux
+ mkdir linux-2.4.x
+ ln -s linux-2.4.x linux
+ bzcat linux-2.4.x.tar.bz2 | tar xf -
+
+ It is critical that /usr/src/linux point to your new kernel sources,
+ otherwise the kernel headers will not be used when building the DRI.
+ This will almost certainly cause compilation problems.
+
+ o Read /usr/src/linux/Documentation/Changes. This file lists the minimum
+ requirements for all software packages required to build the kernel.
+ You must upgrade at least gcc, make, binutils and modutils to at least
+ the versions specified in this file. The other packages may not be
+ needed. If you are upgrading from Linux 2.2.x you must upgrade your
+ modutils package for Linux 2.4.x.
+
+ o Configure your kernel. You might, for example, use make menuconfig and
+ do the following:
+
+ o Go to Code maturity level options
+
+ o Enable Prompt for development and/or incomplete code/drivers
+
+ o hit ESC to return to the top-level menu
+
+ o Go to Processor type and features
+
+ o Select your processor type from Processor Family
+
+ o hit ESC to return to the top-level menu
+
+ o Go to Character devices
+
+ o Disable Direct Rendering Manager (XFree86 DRI support) since we'll
+ use the DRI code from the XFree86/DRI tree and will compile it
+ there.
+
+ o Go to /dev/agpgart (AGP Support) (EXPERIMENTAL) (NEW)
+
+ o Hit SPACE twice to build AGP support into the kernel
+
+ o Enable all chipsets' support for AGP
+
+ o It's recommended that you turn on MTRRs under Processor type and
+ Features, but not required.
+
+ o Configure the rest of the kernel as required for your system (i.e. Eth-
+ ernet, SCSI, etc)
+
+ o Exit, saving your kernel configuration.
+
+ o Edit your /etc/lilo.conf file. Make sure you have an image entry as
+ follows (or similar):
+
+ image=/boot/vmlinuz
+ label=linux.2.4.x
+ read-only
+ root=/dev/hda1
+
+ The important part is that you have /boot/vmlinuz without a trailing
+ version number. If this is the first entry in your /etc/lilo.conf AND
+ you haven't set a default, then this will be your default kernel.
+
+ o Compile the new kernel.
+
+ cd /usr/src/linux-2.4.x
+ make dep
+ make bzImage
+ make modules
+ make modules_install
+ make install
+
+ Note that last make command will automatically run lilo for you.
+
+ o Now reboot to use the new kernel.
+
+5. CPU Architectures
+
+In general, nothing special has to be done to use the DRI on different CPU
+architectures. There are, however, a few optimizations that are CPU-depen-
+dent. Mesa will determine at runtime which CPU-dependent optimizations
+should be used and enable them where appropriate.
+
+5.1 Intel Pentium III Features
+
+The Pentium III SSE instructions are used in optimized vertex transformation
+functions in the Mesa-based DRI drivers. On Linux, SSE requires a recent
+kernel (such as 2.4.0-test11 or later) both at compile time and runtime.
+
+5.2 AMD 3DNow! Features
+
+AMD's 3DNow! instructions are used in optimized vertex transformation func-
+tions in the Mesa-based DRI drivers. 3DNow! is supported in most versions of
+Linux.
+
+5.3 Alpha Features
+
+On newer Alpha processors a significant performance increase can be seen with
+the addition of the -mcpu= option to GCC. This option is dependent on the
+architecture of the processor. For example, -mcpu=ev6 will build specifi-
+cally for the EV6 based AXP's, giving both byte and word alignment access to
+the DRI/Mesa drivers.
+
+To enable this optimization edit your xc/config/host.def file and add the
+line:
+
+#define DefaultGcc2AxpOpt -O2 -mcpu=ev6
+
+Additional speed improvements to 3D rendering can be achieved by installing
+Compaq's Math Libraries (CPML) which can be obtained from http://www.sup-
+port.compaq.com/alpha-tools/software/index.html
+
+Once installed, you can add this line to your host.def to build with the CPML
+libraries:
+
+#define UseCompaqMathLibrary YES
+
+The host.def file is explained below.
+
+6. Downloading the XFree86/DRI CVS Sources
+
+The DRI project is hosted by SourceForge. The DRI source code, which is a
+subset of the XFree86 source tree, is kept in a CVS repository there.
+
+The DRI CVS sources may be accessed either anonymously or as a registered
+SourceForge user. It's recommended that you become a registered SourceForge
+user so that you may submit non-anonymous bug reports and can participate in
+the mailing lists.
+
+6.1 Anonymous CVS download:
+
+ 1. Create a directory to store the CVS files:
+
+ cd ~
+ mkdir DRI-CVS
+
+ You could put your CVS directory in a different place but we'll use
+ ~/DRI-CVS/ here.
+
+ 2. Check out the CVS sources:
+
+ cd ~/DRI-CVS
+ cvs -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri login
+ (hit ENTER when prompted for a password)
+ cvs -z3 -d:pserver:anonymous@cvs.dri.sourceforge.net:/cvsroot/dri co xc
+
+ The -z3 flag causes compression to be used in order to reduce the down-
+ load time.
+
+6.2 Registered CVS download:
+
+ 1. Create a directory to store the CVS files:
+
+ cd ~
+ mkdir DRI-CVS
+
+ You could put your CVS directory in a different place but we'll use
+ ~/DRI-CVS/ here.
+
+ 2. Set the CVS_RSH environment variable:
+
+ setenv CVS_RSH ssh // if using csh or tcsh
+ export CVS_RSH=ssh // if using sh or bash
+
+ 3. Check out the CVS sources:
+
+ cd ~/DRI-CVS
+ cvs -z3 -d:ext:YOURID@cvs.dri.sourceforge.net:/cvsroot/dri co xc
+
+ Replace YOURID with your CVS login name. You'll be prompted to enter
+ your sourceforge password.
+
+ The -z3 flag causes compression to be used in order to reduce the down-
+ load time.
+
+6.3 Updating your CVS sources
+
+In the future you'll want to occasionally update your local copy of the DRI
+source code to get the latest changes. This can be done with:
+
+ cd ~/DRI-CVS
+ cvs -z3 update -dA xc
+
+The -d flag causes any new subdirectories to be created and -A causes most
+recent trunk sources to be fetched, not branch sources.
+
+7. Mesa
+
+Most of the DRI 3D drivers are based on Mesa (the free implementation of the
+OpenGL API). The relevant files from Mesa are already included in the
+XFree86/DRI source tree. There is no need to download or install the Mesa
+source files separately.
+
+Sometimes a newer version of Mesa will be available than the version included
+in XFree86/DRI. Upgrading Mesa within XFree86/DRI is not always straightfor-
+ward. It can be an error-prone undertaking, especially for beginners, and is
+not generally recommended. The DRI developers will upgrade Mesa when appro-
+priate.
+
+8. Compiling the XFree86/DRI tree
+
+8.1 Make a build tree
+
+Rather than placing object files and library files right in the source tree,
+they're instead put into a parallel build tree. The build tree is made with
+the lndir command:
+
+ cd ~/DRI-CVS
+ ln -s xc XFree40
+ mkdir build
+ cd build
+ lndir -silent -ignorelinks ../XFree40
+
+The build tree will be populated with symbolic links which point back into
+the CVS source tree.
+
+Advanced users may have several build trees for compiling and testing with
+different options.
+
+8.2 Edit the host.def file
+
+The ~/DRI-CVS/build/xc/config/cf/host.def file is used to configure the
+XFree86 build process. You can change it to customize your build options or
+make adjustments for your particular system configuration
+
+The default host.def file will look something like this:
+
+ #define DefaultCCOptions -Wall
+ (i386) #define DefaultGcc2i386Opt -O2
+ (Alpha) #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 (or similar)
+ #define LibraryCDebugFlags -O2
+ #define BuildServersOnly YES
+ #define XF86CardDrivers vga tdfx mga ati i810
+ #define LinuxDistribution LinuxRedHat
+ #define DefaultCCOptions -ansi GccWarningOptions -pipe
+ #define BuildXF86DRI YES
+ /* Optionally turn these on for debugging */
+ /* #define GlxBuiltInTdfx YES */
+ /* #define GlxBuiltInMga YES */
+ /* #define GlxBuiltInR128 YES */
+ /* #define GlxBuiltInRadeon YES */
+ /* #define DoLoadableServer NO */
+ #define SharedLibFont NO
+
+The ProjectRoot variable specifies where the XFree86 files will be installed.
+We recommend installing the DRI files over your existing XFree86 installation
+- it's generally safe to do and less error-prone. This policy is different
+than what we used to recommend.
+
+If XFree86 4.x is not installed in /usr/X11R6/ you'll have to add the follow-
+ing to the host.def file:
+
+ #define ProjectRoot pathToYourXFree86installation
+
+Note the XF86CardDrivers line to be sure your card's driver is listed.
+
+If you want to enable 3DNow! optimizations in Mesa and the DRI drivers, you
+should add the following:
+
+ #define MesaUse3DNow YES
+
+You don't have to be using an AMD processor in order to enable this option.
+The DRI will look for 3DNow! support and runtime and only enable it if appli-
+cable.
+
+If you want to enable SSE optimizations in Mesa and the DRI drivers, you must
+upgrade to a Linux 2.4.x kernel. Mesa will verify that SSE is supported by
+both your processor and your operating system, but to build Mesa inside the
+DRI you need to have the Linux 2.4.x kernel headers in /usr/src/linux. If
+you enable SSE optimizations with an earlier version of the Linux kernel in
+/usr/src/linux, Mesa will not compile. You have been warned. If you do have
+a 2.4.x kernel, you should add the following:
+
+ #define MesaUseSSE YES
+
+8.3 Compilation
+
+To compile the complete DRI tree:
+
+ cd ~/DRI-CVS/build/xc/
+ make World >& world.log
+
+Or if you want to watch the compilation progress:
+
+ cd ~/DRI-CVS/build/xc/
+ make World >& world.log &
+ tail -f world.log
+
+With the default compilation flags it's normal to get a lot of warnings dur-
+ing compilation.
+
+Building will take some time so you may want to go check your email or visit
+slashdot.
+
+WARNING: do not use the -j option with make. It's reported that it does not
+work with XFree86/DRI.
+
+8.4 Check for compilation errors
+
+Using your text editor, examine world.log for errors by searching for the
+pattern ***.
+
+Verify that the DRI kernel module(s) for your system were built:
+
+ cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel
+ ls
+
+For the 3dfx Voodoo, you should see tdfx.o. For the Matrox G200/G400, you
+should see mga.o. For the ATI Rage 128, you should see r128.o. For the ATI
+Radeon, you should see radeon.o. For the Intel i810, you should see i810.o.
+
+If the DRI kernel module(s) failed to build you should verify that you're
+using the right version of the Linux kernel. The most recent kernels are not
+always supported.
+
+If your build machine is running a different version of the kernel than your
+target machine (i.e. 2.2.x vs. 2.4.x), make will select the wrong kernel
+headers. This can be fixed by explicitly setting the value of TREE. If the
+path to your kernel source is /usr/src/linux-2.4.x,
+
+ cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel
+ make TREE=/usr/src/linux-2.4.x/include
+
+or alternatively, edit Makefile to include this change.
+
+After fixing the errors, run make World again. Later, you might just compile
+parts of the source tree but it's important that the whole tree will build
+first.
+
+8.5 DRI kernel module installation
+
+The DRI kernel modules will be in ~/DRI-CVS/build/xc/pro-
+grams/Xserver/hw/xfree86/os-support/linux/drm/kernel/.
+
+To load the appropriate DRM module in your running kernel you can either use
+ismod and restart your X server or copy the kernel module to /lib/mod-
+ules/2.4.x/kernel/drivers/char/drm/ then run depmod and restart your X
+server.
+
+Make sure you first unload any older DRI kernel modules that might be already
+loaded.
+
+Note that some DRM modules require that the agpgart module be loaded first.
+
+9. Normal Installation and Configuration
+
+Most users will want to install the new X server and use it in place of their
+old X server. This section explains how to do that.
+
+Developers, on the other hand, may just want to test the X server without
+actually installing it as their default server. If you want to do that, skip
+to the next section.
+
+9.1 Installation
+
+Here are the installation commands:
+
+ su
+ cd ~/DRI-CVS/build/xc
+ make install
+
+9.2 Update the XF86Config File
+
+You may need to edit your XF86Config file to enable the DRI. The config file
+is usually installed as /etc/X11/XF86Config-4. See the DRI User Guide for
+details, but basically, you need to load the "glx" and "dri" modules and add
+a "DRI" section.
+
+On the DRI web site, in the resources section, you'll find example XF86Config
+files for a number of graphics cards. These configuration files also setup
+DRI options so it's highly recommended that you look at these examples.
+
+The XFree86 4.x server can generate a basic configuration file itself. Sim-
+ply do this:
+
+ cd /usr/X11R6/bin
+ ./XFree86 -configure
+
+A file named /root/XF86Config.new will be created. It should allow you to
+try your X server but you'll almost certainly have to edit it. For example,
+you should add HorizSync and VertRefresh options to the Monitor section and
+Modes options to the Screen section. Also, the ModulePath option in the
+Files section should be set to /usr/X11R6/lib/modules.
+
+9.3 Start the New X Server
+
+The new X server should be ready to use now. Start your X server in your
+usual manner. Often times the startx command is used:
+
+ startx
+
+10. Testing the Server Without Installing It
+
+As mentioned at the start of section 9, developers may want to simply run the
+X server without installing it. This can save some time and allow you to
+keep a number of X servers available for testing.
+
+10.1 Configuration
+
+As described in the preceding section, you'll need to create a configuration
+file for the new server. Put the XF86Config file in your ~/DRI-
+CVS/build/xc/programs/Xserver directory.
+
+Be sure the ModulePath option in your XF86Config file is set correctly.
+
+10.2 A Startup Script
+
+A simple shell script can be used to start the X server. Here's an example.
+
+ #!/bin/sh
+ export DISPLAY=:0
+ ./XFree86 -xf86config XF86Config & \
+ sleep 2
+ fvwm2 &
+ xset b off
+ xmodmap -e "clear mod4"
+ xsetroot -solid "#00306f"
+ xterm -geometry 80x40+0+0
+
+You might name this script start-dri. Put it in your ~/DRI-CVS/build/xc/pro-
+grams/Xserver directory.
+
+To test the server run the script:
+
+ cd ~/DRI-CVS/build/xc/programs/Xserver
+ ./start-dri
+
+For debugging, you may also want to capture the log messages printed by the
+server in a file. If you're using the C-shell:
+
+ ./start-dri >& log
+
+11. Where To Go From Here
+
+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.19 2002/11/26 01:05:50 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp,v 3.16 2002/11/26 02:24:01 dawes Exp $
diff --git a/hw/xfree86/doc/devel/Registry b/hw/xfree86/doc/devel/Registry
new file mode 100644
index 000000000..9c4111348
--- /dev/null
+++ b/hw/xfree86/doc/devel/Registry
@@ -0,0 +1,410 @@
+This is the XFree86 driver/module registry. To avoid name space clashes and
+to maintain some consistency between drivers the important name spaces are
+maintained here.
+
+1. Module Names.
+
+Each module is required to have a unique name. Registered names are:
+
+GLcore
+acecad
+afb
+apm
+ark
+ati
+atimisc
+bitmap
+bt8xx
+calcomp
+cfb
+cfb16
+cfb24
+cfb32
+chips
+cirrus
+citron
+cyrix
+dbe
+ddc
+digitaledge
+dmc
+dri
+drm
+dynapro
+elo2300
+elographics
+extmod
+fb
+fbdev
+fbdevhw
+fi12x6
+freetype
+glide
+glint
+glx
+hyperpen
+i128
+i2c
+i740
+i810
+imstt
+int10
+joystick
+keyboard
+layer
+magellan
+magictouch
+mfb
+mga
+microtouch
+mouse
+msp34xx
+mutouch
+neomagic
+newport
+nv
+pcidata
+penmount
+pex5
+r128
+radeon
+rac
+ramdac
+record
+rendition
+s3
+s3virge
+savage
+scanpci
+shadow
+shadowfb
+siliconmotion
+sis
+spaceorb
+speedo
+summa
+sunbw2
+suncg14
+suncg3
+suncg6
+sunffb
+sunleo
+suntcx
+tdfx
+tga
+trident
+tseng
+type1
+v4l
+vbe
+vesa
+vga
+vgahw
+vmware
+void
+wacom
+xaa
+xf1bpp
+xf24_32bpp
+xf4bpp
+xf8_16bpp
+xf8_32bpp
+xf8_32wid
+xie
+xtrap
+xtt
+
+2. External Module Object Symbols.
+
+Each module is required to use a unique prefix or prefixes for all of
+its externally visible symbols. They should be unique without regard to
+case. Registered prefixes are:
+
+ati
+bt8xx
+cfb
+chips
+fi12x6
+glide
+glint
+mfb
+mga
+msp34xx
+neo
+permedia
+tseng
+vga
+vgahw
+vmware
+xaa
+xf1bpp
+xf4bpp
+
+3. Chipset Names.
+
+Each video driver is required to use a unique set of chipset names. Case,
+white space and underscore characters are ignored when comparing chipset
+names. All names listed here are in lower case with all white space and
+underscores removed. Registered chipset names are:
+
+ati
+ativga
+ct64200
+ct64300
+ct65520
+ct65525
+ct65530
+ct65535
+ct65540
+ct65545
+ct65546
+ct65548
+ct65550
+ct65554
+ct65555
+ct68554
+ct69000
+et4000
+et4000w32
+et4000w32i
+et4000w32p
+et6000
+et6100
+generic
+ibmvga
+ibm8514
+mach32
+mach64
+mach8
+mga2064w
+mga1064sg
+mga2164w
+mga2164wagp
+neo2070
+neo2090
+neo2093
+neo2097
+neo2160
+neo2200
+tipm2
+vgawonder
+voodoo
+
+4. Option Names.
+
+Option names and their usage should be consistent between drivers.
+Case, white space and underscore characters are ignored when comparing
+option names. The prefix "no" may be added or removed from boolean
+option names. All names listed here are in their preferred user-visible
+form. Some registered option names are:
+
+Types are: B = boolean, O = set/unset (no value), I = integer, S = string,
+ A = optional string, F = floating point number Q = frequency
+
+Scopes are: F = global flags, V = video driver, C = common (per screen),
+ I = input drivers, X = XAA, Xv = Xv extension, M = misc.
+
+Names currently in use:
+
+Name Type Scope Description
+----------------------------------------------------------------------------
+AllowMouseOpenFail B F ignore mouse dev open failure
+AllowNonLocalModInDev B F allow non-local mod of input devs
+AllowNonLocalXvidtune B F allow non-local VidMode connections
+BlankTime I F Screen saver timeout (min)
+DisableModInDev B F disallow changing input devs
+DisableVidModeExtension B F disable VidMode extension
+DontVTSwitch B F disable Ctrl-Alt-Fn
+DontZap B F disable Ctrl-Alt-BS sequence
+DontZoom B F disable Ctrl-Alt-+/-
+NoTrapSignals B F don't trap signals
+OffTime I F Time before DPMS off mode active (min)
+PciProbe1 O F use PCI probe algorithm 1
+PciProbe2 O F use PCI probe algorithm 2
+PciForceConfig1 O F force PCI config type 1
+PciForceConfig2 O F force PCI config type 2
+Pixmap I F depth 24 pixmap size (24 or 32)
+StandbyTime I F Time before DPMS standby active (min)
+SuspendTime I F Time before DPMS suspend mode active (min)
+
+BackingStore B C Enable backing store
+DDC B C Enable/disable DDC
+DDC1 B C Enable/disable DDC1
+DDC2 B C Enable/disable DDC2
+DPMS O C Enable DPMS
+MTRR B C Enable/disable setting MTRRs
+
+BaudRate I I Serial port baud rate
+ButtonNumber I I Button number (for touch screen?)
+ButtonThreshold I I ??
+ClearDTR O I Clear serial port DTR
+ClearRTS O I Clear serial port RTS
+DataBits I I Serial port data bits
+DemandLoad O I ??
+Device S I Device file name
+DeviceName S I Input device name
+FlowControl S I Serial flow control ("xon", "none")
+HistorySize I I ??
+MaxX I I Maximum X coordinate
+MaxY I I Maximum Y coordinate
+MinX I I Minimum X coordinate
+MinY I I Minimum Y coordinate
+Parity S I Serial port parity ("odd", "even", "none")
+ReportDelay I I ??
+ReportingMode S I may be "raw" or "scaled"
+ScreenNumber I I Screen number (for touch screen)
+SendCoreEvents B I Send core events
+SendDragEvents B I Send drag events
+StopBits I I Serial port stop bits
+SwapXY B I Swap the X and Y axes
+UntouchDelay I I ??
+Vmin I I Tty VMIN
+Vtime I I Tty VTIME
+
+
+18BitBus B V ??
+8Plus16 B V Enable depth 8 + depth 16 with overlay
+8Plus24 B V Enable depth 8 + depth 24 with overlay
+BlockWrite B V Enable/disable block write
+ColorKey I V Set the color key for overlay modes
+CompositeSync B V Composite sync
+CRTDisplay B V Force display on CRT, not LCD
+CRTScreen B V Display on CRT, not LCD (Obsolete)
+EarlyRasPrecharge O V Early RAS pre-charge
+FastDRAM O V Fast DRAM
+FifoAggressive O V Aggressive FIFO setting
+FifoConservative O V Conservative FIFO setting
+FifoModerate O V Moderate FIFO setting
+FireGL3000 B V Card is Diamond FireGL3000
+FixPanelSize B V ??
+FPClock8 Q V Flat panel clock for 8bpp fb (MHz)
+FPClock16 Q V Flat panel clock for 16bpp fb (MHz)
+FPClock24 Q V Flat panel clock for 24bpp fb (MHz)
+FPClock32 Q V Flat panel clock for 32bpp fb (MHz)
+FPMVRAM O V Fast page mode VRAM
+FramebufferWC B V Enable/disable WC for the framebuffer
+GlideDevice I V Selects which Voodoo board to use
+HiBitHigh O V High clock bit default to set
+HiBitLow O V High clock bit default to cleared
+HWClocks B V Enable/disable HW clocks
+HWCursor B V Enable/disable HW cursor
+LateRasPrecharge O V Late RAS pre-charge
+Legend O V Card is Legend ET4000
+LCDCenter B V Enable/disable centering for LCD displays
+Linear B V Enable/disable linear framebuffer
+MCLK Q V Specify the current MCLK value (MHz)
+MedDRAM B V Medium speed DRAM
+MemCfg1 I V ??
+MemCfg2 I V ??
+MGASDRAM B V Mga card has SDRAM
+MMIO B V Enable/disable memory mapped I/O
+MMIOCache B V Enable/Disable MMIO cache
+MuxThreshold I V Multiplexing threshold (kHz)
+NoAccel B V Disable/enable acceleration
+NoClockChip B V ??
+NoStretch B V Disable/enable stretching for LCD displays
+OnAtExit B V Leave video signal on when exiting server
+OverclockMem B V Enable memory overclocking
+Overlay A V Enable multi-depth/overlay. An optional
+ string "M,N" may be specified, where
+ M, N are the depths.
+PanelDisplay B V Force display on LCD
+PciBurst B V Enable/disable PCI burst mode
+PciRetry B V Enable/disable PCI retries
+ProbeClocks B V Force probe for non-programmable clocks
+ReferenceClock Q V Clock generator reference frequency
+RGBbits I V Number of significant bits per rgb
+Rotate S V Rotate the virtual display (CW or CCW)
+SetLCDClk Q V Set LCD clock (MHz)
+SetMclk Q V Set Memory Clock (MHz)
+ShadowFB B V Enable shadow framebuffer layer
+ShowCache B V Enable viewing of offscreen memory
+ShowOverscan O V Set the overscan area to a visible colour
+SlowDRAM O V Slow DRAM
+SlowEDODRAM O V Slow EDO DRAM
+STN B V STN screen type (??)
+SWCursor B V Enable/disable SW cursor
+SuspendHack B V ??
+SyncOnGreen B V Enable/disable sync on green
+TurboQueue B V Enable/disable turbo queue
+UseFBDev B V Use the fbdev driver interface
+UseModeLine B V Use Modeline (??)
+W32Interleave B V ??
+
+Buffers I Xv Number of buffers
+Device S Xv Device file name
+Expose B Xv Disable occlusion clipping (see DESIGN)
+FramesPerSec I Xv Max. refresh frequency
+
+XAA options. All are of type "O" and scope "X", and are self-explanatory
+
+XaaNoColor8x8PatternFillRect
+XaaNoColor8x8PatternFillTrap
+XaaNoCPUToScreenColorExpandFill
+XaaNoDashedBresenhamLine
+XaaNoDashedTwoPointLine
+XaaNoScreenToScreenCopy
+XaaNoImageReadRect
+XaaNoImageWriteRect
+XaaNoMono8x8PatternFillRect
+XaaNoMono8x8PatternFillTrap
+XaaNoOffscreenPixmaps
+XaaNoPixmapCache
+XaaNoScanlineCPUToScreenColorExpandFill
+XaaNoScanlineImageWriteRect
+XaaNoScreenToScreenColorExpandFill
+XaaNoSolidBresenhamLine
+XaaNoSolidFillRect
+XaaNoSolidFillTrap
+XaaNoSolidHorVertLine
+XaaNoSolidTwoPointLine
+
+
+Names used in previous versions:
+
+16Clocks
+8Clocks
+ClkDiv2
+EDO VRAM
+ExternDisp
+ExtFramBuf
+FastVRAM
+FavorBitBlt
+InternDisp
+NoBitBlt
+NoFontCache
+NoImageBlt
+NoMemAccess
+NoPciDisconnect
+NoPixmapCache
+NoProgramClocks
+NoSplitXfer
+OverrideBIOS
+OverrideValidateMode
+ProgLcdModeRegs
+ProgLcdModeStretch
+SlowDRAMrefresh
+SlowVRAM
+SwapHiBit
+
+
+5. Ramdac Names.
+
+Ramdac names should be consistent between drivers. Case, white space
+and underscore characters are ignored when comparing ramdac names. All
+names listed here are in lower case with all white space and underscores
+removed.
+
+
+6. Clock Chip Names.
+
+Clock chip names should be consistent between drivers. Case, white
+space and underscore characters are ignored when comparing clock chip
+names. All names listed here are in lower case with all white space
+and underscores removed.
+
+
+
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/Registry,v 1.19 2003/02/20 04:05:12 dawes Exp $
diff --git a/hw/xfree86/doc/sgml/DESIGN.sgml b/hw/xfree86/doc/sgml/DESIGN.sgml
new file mode 100644
index 000000000..322ab00e0
--- /dev/null
+++ b/hw/xfree86/doc/sgml/DESIGN.sgml
@@ -0,0 +1,7415 @@
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+ <!-- config file keyword markup -->
+ <!ENTITY s.key STARTTAG "bf">
+ <!ENTITY e.key ENDTAG "bf">
+ <!-- specific config file keywords -->
+ <!ENTITY k.device "&s.key;Device&e.key;">
+ <!ENTITY k.monitor "&s.key;Monitor&e.key;">
+ <!ENTITY k.display "&s.key;Display&e.key;">
+ <!ENTITY k.inputdevice "&s.key;InputDevice&e.key;">
+ <!ENTITY k.screen "&s.key;Screen&e.key;">
+ <!ENTITY k.serverlayout "&s.key;ServerLayout&e.key;">
+ <!ENTITY k.driver "&s.key;Driver&e.key;">
+ <!ENTITY k.module "&s.key;Module&e.key;">
+ <!ENTITY k.identifier "&s.key;Identifier&e.key;">
+ <!ENTITY k.serverflags "&s.key;ServerFlags&e.key;">
+ <!-- command line markup -->
+ <!ENTITY s.cmd STARTTAG "tt">
+ <!ENTITY e.cmd ENDTAG "tt">
+ <!-- inline code markup -->
+ <!ENTITY s.code STARTTAG "tt">
+ <!ENTITY e.code ENDTAG "tt">
+ <!-- function indent -->
+ <!ENTITY f.indent "&nl&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp">
+] >
+
+<article>
+
+<title>XFree86 X server ``New Design'' (DRAFT)
+<author>The XFree86 Project, Inc
+<date>Last modified 2003 January 22
+
+
+
+
+
+
+
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.52 2003/02/25 19:31:00 dawes Exp $
+</ident>
+
+
+<p>
+<bf>NOTE</bf>: This is a DRAFT document, and the interfaces described here
+are subject to change without notice.
+
+
+<sect>Preface
+<p>
+
+The broad design principles are:
+<itemize>
+ <item>keep it reasonable
+ <itemize>
+ <item>We cannot rewrite the complete server
+ <item>We don't want to re-invent the wheel
+ </itemize>
+ <item>keep it modular
+ <itemize>
+ <item>As many things as possible should go into modules
+ <item>The basic loader binary should be minimal
+ <item>A clean design with well defined layering is important
+ <item>DDX specific global variables are a nono
+ <item>The structure should be flexible enough to allow
+ future extensions
+ <item> The structure should minimize duplication of common code
+ </itemize>
+ <item>keep important features in mind
+ <itemize>
+ <item>multiple screens, including multiple instances of drivers
+ <item>mixing different color depths and visuals on different
+ and ideally even on the same screen
+ <item>better control of the PCI device used
+ <item>better config file parser
+ <item>get rid of all VGA compatibility assumptions
+ </itemize>
+</itemize>
+
+Unless we find major deficiencies in the DIX layer, we should avoid
+making changes there.
+
+<sect>The XF86Config File
+<p>
+
+The XF86Config file format is similar to the old format, with the following
+changes:
+
+<sect1>&k.device; section
+<p>
+
+ The &k.device; sections are similar to what they used to be, and
+ describe hardware-specific information for a single video card.
+ &k.device;
+ Some new keywords are added:
+
+
+ <descrip>
+ <tag>Driver "drivername"</tag>
+ Specifies the name of the driver to be used for the card. This
+ is mandatory.
+ <tag>BusID "busslot"</tag>
+ Specifies uniquely the location of the card on the bus. The
+ purpose is to identify particular cards in a multi-headed
+ configuration. The format of the argument is intentionally
+ vague, and may be architecture dependent. For a PCI bus, it
+ is something like "bus:slot:func".
+ </descrip>
+
+ A &k.device; section is considered ``active'' if there is a reference
+ to it in an active &k.screen; section.
+
+<sect1>&k.screen; section
+<p>
+
+ The &k.screen; sections are similar to what they used to be. They
+ no longer have a &k.driver; keyword, but an &k.identifier; keyword
+ is added. (The &k.driver; keyword may be accepted in place of the
+ &k.identifier; keyword for compatibility purposes.) The identifier
+ can be used to identify which screen is to be active when multiple
+ &k.screen sections are present. It is possible to specify the active
+ screen from the command line. A default is chosen in the absence
+ of one being specified. A &k.screen; section is considered ``active''
+ if there is a reference to it either from the command line, or from
+ an active &k.serverlayout; section.
+
+<sect1>&k.inputdevice; section
+<p>
+
+ The &k.inputdevice; section is a new section that describes
+ configuration information for input devices. It replaces the old
+ &s.key;Keyboard&e.key;, &s.key;Pointer&e.key; and &s.key;XInput&e.key;
+ sections. Like the &k.device; section, it has two mandatory keywords:
+ &k.identifier; and &k.driver;. For compatibility purposes the old
+ &s.key;Keyboard&e.key; and &s.key;Pointer&e.key; sections are
+ converted by the parser into &k.inputdevice; sections as follows:
+
+ <descrip>
+ <tag>&s.key;Keyboard&e.key;</tag>
+ &k.identifier; "Implicit Core Keyboard"<newline>
+ &k.driver; "keyboard"
+ <tag>&s.key;Pointer&e.key;</tag>
+ &k.identifier; "Implicit Core Pointer"<newline>
+ &k.driver; "mouse"
+ </descrip>
+
+ An &k.inputdevice; section is considered active if there is a
+ reference to it in an active &k.serverlayout; section. An
+ &k.inputdevice; section may also be referenced implicitly if there
+ is no &k.serverlayout; section, if the &s.cmd;-screen&e.cmd; command
+ line options is used, or if the &k.serverlayout; section doesn't
+ reference any &k.inputdevice; sections. In this case, the first
+ sections with drivers "keyboard" and "mouse" are used as the core
+ keyboard and pointer respectively.
+
+<sect1>&k.serverlayout; section
+<p>
+
+ The &k.serverlayout; section is a new section that is used to identify
+ which &k.screen; sections are to be used in a multi-headed configuration,
+ and the relative layout of those screens. It also identifies which
+ &k.inputdevice; sections are to be used. Each &k.serverlayout section
+ has an identifier, a list of &k.screen; section identifiers, and a list of
+ &k.inputdevice; section identifiers. &k.serverflags; options may also be
+ included in a &k.serverlayout; section, making it possible to override
+ the global values in the &k.serverflags; section.
+
+ A &k.serverlayout; section can be made active by being referenced on
+ the command line. In the absence of this, a default will be chosen
+ (the first one found). The screen names may optionally be followed
+ by a number specifying the preferred screen number, and optionally
+ by information specifying the physical positioning of the screen,
+ either in absolute terms or relative to another screen (or screens).
+ When no screen number is specified, they are numbered according to
+ the order in which they are listed. The old (now obsolete) method
+ of providing the positioning information is to give the names of
+ the four adjacent screens. The order of these is top, bottom, left,
+ right. Here is an example of a &k.serverlayout; section for two
+ screens using the old method, with the second located to the right
+ of the first:
+
+ <code>
+ Section "ServerLayout"
+ Identifier "Main Layout"
+ Screen 0 "Screen 1" "" "" "" "Screen 2"
+ Screen 1 "Screen 2"
+ Screen "Screen 3"
+ EndSection
+ </code>
+
+ The preferred way of specifying the layout is to explicitly specify
+ the screen's location in absolute terms or relative to another
+ screen.
+
+ In the absolute case, the upper left corner's coordinates are given
+ after the &s.key;Absolute&e.key; keyword. If the coordinates are
+ omitted, a value of &s.code;(0,0)&e.code; is assumed. An example
+ of absolute positioning follows:
+
+ <code>
+ Section "ServerLayout"
+ Identifier "Main Layout"
+ Screen 0 "Screen 1" Absolute 0 0
+ Screen 1 "Screen 2" Absolute 1024 0
+ Screen "Screen 3" Absolute 2048 0
+ EndSection
+ </code>
+
+ In the relative case, the position is specified by either using one of
+ the following keywords followed by the name of the reference screen:
+
+ <quote>
+ &s.key;RightOf&nl;
+ LeftOf&nl;
+ Above&nl;
+ Below&nl;
+ Relative&e.key;
+ </quote>
+
+ When the &s.key;Relative&e.key; keyword is used, the reference screen
+ name is followed by the coordinates of the new screen's origin
+ relative to reference screen. The following example shows how to use
+ some of the relative positioning options.
+
+ <code>
+ Section "ServerLayout"
+ Identifier "Main Layout"
+ Screen 0 "Screen 1"
+ Screen 1 "Screen 2" RightOf "Screen 1"
+ Screen "Screen 3" Relative "Screen 1" 2048 0
+ EndSection
+ </code>
+
+<sect1>Options
+<p>
+
+ Options are used more extensively. They may appear in most sections
+ now. Options related to drivers can be present in the &k.screen;,
+ &k.device; and &k.monitor; sections and the &k.display; subsections.
+ The order of precedence is &k.display;, &k.screen;, &k.monitor;,
+ &k.device;. Options have been extended to allow an optional value
+ to be specified in addition to the option name. For more details
+ about options, see the <ref id="options" name="Options"> section
+ for details.
+
+<sect>Driver Interface
+<p>
+
+The driver interface consists of a minimal set of entry points that are
+required based on the external events that the driver must react to.
+No non-essential structure is imposed on the way they are used beyond
+that. This is a significant difference compared with the old design.
+
+The entry points for drawing operations are already taken care of by
+the framebuffer code (including, XAA). Extensions and enhancements to
+framebuffer code are outside the scope of this document.
+
+This approach to the driver interface provides good flexibility, but does
+increase the complexity of drivers. To help address this, the XFree86
+common layer provides a set of ``helper'' functions to take care of things
+that most drivers need. These helpers help minimise the amount of code
+duplication between drivers. The use of helper functions by drivers is
+however optional, though encouraged. The basic philosophy behind the
+helper functions is that they should be useful to many drivers, that
+they should balance this against the complexity of their interface. It
+is inevitable that some drivers may find some helpers unsuitable and
+need to provide their own code.
+
+Events that a driver needs to react to are:
+
+ <descrip>
+ <tag>ScreenInit</tag>
+
+ An initialisation function is called from the DIX layer for each
+ screen at the start of each server generation.
+
+ <tag>Enter VT</tag>
+
+ The server takes control of the console.
+
+ <tag>Leave VT</tag>
+
+ The server releases control of the console.
+
+ <tag>Mode Switch</tag>
+
+ Change video mode.
+
+ <tag>ViewPort change</tag>
+
+ Change the origin of the physical view port.
+
+ <tag>ScreenSaver state change</tag>
+
+ Screen saver activation/deactivation.
+
+ <tag>CloseScreen</tag>
+
+ A close screen function is called from the DIX layer for each screen
+ at the end of each server generation.
+ </descrip>
+
+
+In addition to these events, the following functions are required by
+the XFree86 common layer:
+
+ <descrip>
+ <tag>Identify</tag>
+
+ Print a driver identifying message.
+
+ <tag>Probe</tag>
+
+ This is how a driver identifies if there is any hardware present that
+ it knows how to drive.
+
+ <tag>PreInit</tag>
+
+ Process information from the XF86Config file, determine the
+ full characteristics of the hardware, and determine if a valid
+ configuration is present.
+ </descrip>
+
+The VidMode extension also requires:
+
+ <descrip>
+ <tag>ValidMode</tag>
+
+ Identify if a new mode is usable with the current configuration.
+ The PreInit function (and/or helpers it calls) may also make use
+ of the ValidMode function or something similar.
+ </descrip>
+
+
+Other extensions may require other entry points. The drivers will
+inform the common layer of these in such cases.
+
+<sect>Resource Access Control Introduction
+<p>
+
+Graphics devices are accessed through ranges in I/O or memory space.
+While most modern graphics devices allow relocation of such ranges many
+of them still require the use of well established interfaces such as
+VGA memory and IO ranges or 8514/A IO ranges. With modern buses (like
+PCI) it is possible for multiple video devices to share access to these
+resources. The RAC (Resource Access Control) subsystem provides a
+mechanism for this.
+
+<sect1>Terms and Definitions
+<p>
+
+<sect2>Bus
+<p>
+
+ ``Bus'' is ambiguous as it is used for different things: it may refer
+ to physical incompatible extension connectors in a computer system.
+ The RAC system knows two such systems: The ISA bus and the PCI bus.
+ (On the software level EISA, MCA and VL buses are currently treated
+ like ISA buses). ``Bus'' may also refer to logically different
+ entities on a single bus system which are connected via bridges. A
+ PCI system may have several distinct PCI buses connecting each other
+ by PCI-PCI bridges or to the host CPU by HOST-PCI bridges.
+
+ Systems that host more than one bus system link these together using
+ bridges. Bridges are a concern to RAC as they might block or pass
+ specific resources. PCI-PCI bridges may be set up to pass VGA
+ resources to the secondary bus. PCI-ISA buses pass any resources not
+ decoded on the primary PCI bus to the ISA bus. This way VGA resources
+ (although exclusive on the ISA bus) can be shared by ISA and PCI
+ cards. Currently HOST-PCI bridges are not yet handled by RAC as they
+ require specific drivers.
+
+<sect2>Entity
+<p>
+
+ The smallest independently addressable unit on a system bus is
+ referred to as an entity. So far we know ISA and PCI entities. PCI
+ entities can be located on the PCI bus by an unique ID consisting of
+ the bus, card and function number.
+
+<sect2>Resource
+<p>
+
+ ``Resource'' refers to a range of memory or I/O addresses an entity
+ can decode.
+
+ If a device is capable of disabling this decoding the resource is
+ called sharable. For PCI devices a generic method is provided to
+ control resource decoding. Other devices will have to provide a
+ device specific function to control decoding.
+
+ If the entity is capable of decoding this range at a different
+ location this resource is considered relocatable.
+
+ Resources which start at a specific address and occupy a single
+ continuous range are called block resources.
+
+ Alternatively resource addresses can be decoded in a way that they
+ satisfy the conditions:
+ <quote><verb>
+ address & mask == base
+ </verb></quote>
+ and
+ <quote><verb>
+ base & mask == base
+ </verb></quote>
+ Resources addressed in such a way are called sparse resources.
+
+<sect2>Server States
+<p>
+
+ The resource access control system knows two server states: the
+ SETUP and the OPERATING state. The SETUP state is entered whenever
+ a mode change takes place or the server exits or does VT switching.
+ During this state all entity resources are under resource access
+ control. During OPERATING state only those entities are controlled
+ which actually have shared resources that conflict with others.
+
+<sect>Control Flow in the Server and Mandatory Driver Functions
+<p>
+
+At the start of each server generation, &s.code;main()&e.code;
+(&s.code;dix/main.c&e.code;) calls the DDX function
+&s.code;InitOutput()&e.code;. This is the first place that the DDX gets
+control. &s.code;InitOutput()&e.code; is expected to fill in the global
+&s.code;screenInfo&e.code; struct, and one
+&s.code;screenInfo.screen[]&e.code; entry for each screen present. Here
+is what &s.code;InitOutput()&e.code; does:
+
+<sect1>Parse the XF86Config file
+<p>
+
+ This is done at the start of the first server generation only.
+
+ The XF86Config file is read in full, and the resulting information
+ stored in data structures. None of the parsed information is
+ processed at this point. The parser data structures are opaque to
+ the video drivers and to most of the common layer code.
+
+ The entire file is parsed first to remove any section ordering
+ requirements.
+
+
+<sect1>Initial processing of parsed information and command line options
+<p>
+
+ This is done at the start of the first server generation only.
+
+ The initial processing is to determine paths like the
+ &s.key;ModulePath&e.key;, etc, and to determine which &k.serverlayout;,
+ &k.screen; and &k.device; sections are active.
+
+
+<sect1>Enable port I/O access
+<p>
+
+ Port I/O access is controlled from the XFree86 common layer, and is
+ ``all or nothing''. It is enabled prior to calling driver probes, at
+ the start of subsequent server generations, and when VT switching
+ back to the Xserver. It is disabled at the end of server generations,
+ and when VT switching away from the Xserver.
+
+ The implementation details of this may vary on different platforms.
+
+
+<sect1>General bus probe
+<p>
+
+ This is done at the start of the first server generation only.
+
+ In the case of ix86 machines, this will be a general PCI probe.
+ The full information obtained here will be available to the drivers.
+ This information persists for the life of the Xserver. In the PCI
+ case, the PCI information for all video cards found is available by
+ calling &s.code;xf86GetPciVideoInfo()&e.code;.
+
+ <quote>
+ &s.code;pciVideoPtr *xf86GetPciVideoInfo(void)&e.code;
+ <quote><p>
+ returns a pointer to a list of pointers to
+ &s.code;pciVideoRec&e.code; entries, of which there is one for
+ each detected PCI video card. The list is terminated with a
+ &s.code;NULL&e.code; pointer. If no PCI video cards were
+ detected, the return value is &s.code;NULL&e.code;.
+
+ </quote>
+ </quote>
+
+ After the bus probe, the resource broker is initialised.
+
+
+<sect1>Load initial set of modules
+<p>
+
+ This is done at the start of the first server generation only.
+
+ The core server contains a list of mandatory modules. These are loaded
+ first. Currently the only module on this list is the bitmap font module.
+
+ The next set of modules loaded are those specified explicitly in the
+ &k.module; section of the config file.
+
+ The final set of initial modules are the driver modules referenced
+ by the active &k.device; and &k.inputdevice; sections in the config
+ file. Each of these modules is loaded exactly once.
+
+
+<sect1>Register Video and Input Drivers
+<p>
+
+ This is done at the start of the first server generation only.
+
+ When a driver module is loaded, the loader calls its
+ &s.code;Setup&e.code; function. For video drivers, this function
+ calls &s.code;xf86AddDriver()&e.code; to register the driver's
+ &s.code;DriverRec&e.code;, which contains a small set of essential
+ details and driver entry points required during the early phase of
+ &s.code;InitOutput()&e.code;. &s.code;xf86AddDriver()&e.code; adds
+ it to the global &s.code;xf86DriverList[]&e.code; array.
+
+ The &s.code;DriverRec&e.code; contains the driver canonical name,
+ the &s.code;Identify()&e.code;,
+ &s.code;Probe()&e.code; and &s.code;AvailableOptions()&e.code;
+ function entry points as well as a pointer
+ to the driver's module (as returned from the loader when the driver
+ was loaded) and a reference count which keeps track of how many
+ screens are using the driver. The entry driver entry points are
+ those required prior to the driver allocating and filling in its
+ &s.code;ScrnInfoRec&e.code;.
+
+ For a static server, the &s.code;xf86DriverList[]&e.code; array is
+ initialised at build time, and the loading of modules is not done.
+
+ A similar procedure is used for input drivers. The input driver's
+ &s.code;Setup&e.code; function calls
+ &s.code;xf86AddInputDriver()&e.code; to register the driver's
+ &s.code;InputDriverRec&e.code;, which contains a small set of
+ essential details and driver entry points required during the early
+ phase of &s.code;InitInput()&e.code;.
+ &s.code;xf86AddInputDriver()&e.code; adds it to the global
+ &s.code;xf86InputDriverList[]&e.code; array. For a static server,
+ the &s.code;xf86InputDriverList[]&e.code; array is initialised at
+ build time.
+
+ Both the &s.code;xf86DriverList[]&e.code; and
+ &s.code;xf86InputDriverList[]&e.code; arrays have been initialised
+ by the end of this stage.
+
+ Once all the drivers are registered, their
+ &s.code;ChipIdentify()&e.code; functions are called.
+
+ <quote>
+ &s.code;void ChipIdentify(int flags)&e.code;
+ <quote>
+ This is expected to print a message indicating the driver name,
+ a short summary of what it supports, and a list of the chipset
+ names that it supports. It may use the xf86PrintChipsets() helper
+ to do this.
+ </quote>
+ </quote>
+
+ <quote>
+ &s.code;void xf86PrintChipsets(const char *drvname, const char *drvmsg,
+ &f.indent;SymTabPtr chips)&e.code;
+ <quote>
+ This function provides an easy way for a driver's ChipIdentify
+ function to format the identification message.
+ </quote>
+ </quote>
+
+<sect1>Initialise Access Control
+<p>
+
+ This is done at the start of the first server generation only.
+
+ The Resource Access Control (RAC) subsystem is initialised before
+ calling any driver functions that may access hardware. All generic
+ bus information is probed and saved (for restoration later). All
+ (shared resource) video devices are disabled at the generic bus
+ level, and a probe is done to find the ``primary'' video device. These
+ devices remain disabled for the next step.
+
+
+<sect1>Video Driver Probe<label id="probe">
+<p>
+ This is done at the start of the first server generation only. The
+ &s.code;ChipProbe()&e.code; function of each registered video driver
+ is called.
+
+ <quote><p>
+ &s.code;Bool ChipProbe(DriverPtr drv, int flags)&e.code;
+ <quote><p>
+ The purpose of this is to identify all instances of hardware
+ supported by the driver. The flags value is currently either 0,
+ &s.code;PROBE_DEFAULT&e.code; or &s.code;PROBE_DETECT&e.code;.
+ &s.code;PROBE_DETECT&e.code; is used if "-configure" or "-probe"
+ command line arguments are given and indicates to the
+ &s.code;Probe()&e.code; function that it should not configure the
+ bus entities and that no XF86Config information is available.
+
+ The probe must find the active device sections that match the
+ driver by calling &s.code;xf86MatchDevice()&e.code;. The number
+ of matches found limits the maximum number of instances for this
+ driver. If no matches are found, the function should return
+ &s.code;FALSE&e.code; immediately.
+
+ Devices that cannot be identified by using device-independent
+ methods should be probed at this stage (keeping in mind that access
+ to all resources that can be disabled in a device-independent way
+ are disabled during this phase). The probe must be a minimal
+ probe. It should just determine if there is a card present that
+ the driver can drive. It should use the least intrusive probe
+ methods possible. It must not do anything that is not essential,
+ like probing for other details such as the amount of memory
+ installed, etc. It is recommended that the
+ &s.code;xf86MatchPciInstances()&e.code; helper function be used
+ for identifying matching PCI devices, and similarly the
+ &s.code;xf86MatchIsaInstances()&e.code; for ISA (non-PCI) devices
+ (see the <ref id="rac" name="RAC"> section). These helpers also
+ checks and claims the appropriate entity. When not using the
+ helper, that should be done with &s.code;xf86CheckPciSlot()&e.code;
+ and &s.code;xf86ClaimPciSlot()&e.code; for PCI devices and
+ &s.code;xf86ClaimIsaSlot()&e.code; for ISA devices (see the
+ <ref id="rac" name="RAC"> section).
+
+ The probe must register all non-relocatable resources at this
+ stage. If a resource conflict is found between exclusive resources
+ the driver will fail immediately. This is usually best done with
+ the &s.code;xf86ConfigPciEntity()&e.code; helper function
+ for PCI and &s.code;xf86ConfigIsaEntity()&e.code; for ISA
+ (see the <ref id="rac" name="RAC"> section). It is possible to
+ register some entity specific functions with those helpers. When
+ not using the helpers, the &s.code;xf86AddEntityToScreen()&e.code;
+ &s.code;xf86ClaimFixedResources()&e.code; and
+ &s.code;xf86SetEntityFuncs()&e.code; should be used instead (see
+ the <ref id="rac" name="RAC"> section).
+
+ If a chipset is specified in an active device section which the
+ driver considers relevant (ie it has no driver specified, or the
+ driver specified matches the driver doing the probe), the Probe
+ must return &s.code;FALSE&e.code; if the chipset doesn't match
+ one supported by the driver.
+
+ If there are no active device sections that the driver considers
+ relevant, it must return &s.code;FALSE&e.code;.
+
+ Allocate a &s.code;ScrnInfoRec&e.code; for each active instance of the
+ hardware found, and fill in the basic information, including the
+ other driver entry points. This is best done with the
+ &s.code;xf86ConfigIsaEntity()&e.code; helper function for ISA
+ instances or &s.code;xf86ConfigPciEntity()&e.code; for PCI instances.
+ These functions allocate a &s.code;ScrnInfoRec&e.code; for active
+ entities. Optionally &s.code;xf86AllocateScreen()&e.code;
+ function may also be used to allocate the &s.code;ScrnInfoRec&e.code;.
+ Any of these functions take care of initialising fields to defined
+ ``unused'' values.
+
+ Claim the entities for each instance of the hardware found. This
+ prevents other drivers from claiming the same hardware.
+
+ Must leave hardware in the same state it found it in, and must not
+ do any hardware initialisation.
+
+ All detection can be overridden via the config file, and that
+ parsed information is available to the driver at this stage.
+
+ Returns &s.code;TRUE&e.code; if one or more instances are found,
+ and &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+
+ &s.code;int xf86MatchDevice(const char *drivername,
+ &f.indent;GDevPtr **driversectlist)&e.code;
+ <quote><p>
+
+ This function takes the name of the driver and returns via
+ &s.code;driversectlist&e.code; a list of device sections that
+ match the driver name. The function return value is the number
+ of matches found. If a fatal error is encountered the return
+ value is &s.code;-1&e.code;.
+
+ The caller should use &s.code;xfree()&e.code; to free
+ &s.code;*driversectlist&e.code; when it is no longer needed.
+
+ </quote>
+
+ &s.code;ScrnInfoPtr xf86AllocateScreen(DriverPtr drv, int flags)&e.code;
+ <quote><p>
+ This function allocates a new &s.code;ScrnInfoRec&e.code; in the
+ &s.code;xf86Screens[]&e.code; array. This function is normally
+ called by the video driver &s.code;ChipProbe()&e.code; functions.
+ The return value is a pointer to the newly allocated
+ &s.code;ScrnInfoRec&e.code;. The &s.code;scrnIndex&e.code;,
+ &s.code;origIndex&e.code;, &s.code;module&e.code; and
+ &s.code;drv&e.code; fields are initialised. The reference count
+ in &s.code;drv&e.code; is incremented. The storage for any
+ currently allocated ``privates'' pointers is also allocated and
+ the &s.code;privates&e.code; field initialised (the privates data
+ is of course not allocated or initialised). This function never
+ returns on failure. If the allocation fails, the server exits
+ with a fatal error. The flags value is not currently used, and
+ should be set to zero.
+ </quote>
+ </quote>
+
+ At the completion of this, a list of &s.code;ScrnInfoRecs&e.code;
+ have been allocated in the &s.code;xf86Screens[]&e.code; array, and
+ the associated entities and fixed resources have been claimed. The
+ following &s.code;ScrnInfoRec&e.code; fields must be initialised at
+ this point:
+
+ <quote><verb>
+ driverVersion
+ driverName
+ scrnIndex(*)
+ origIndex(*)
+ drv(*)
+ module(*)
+ name
+ Probe
+ PreInit
+ ScreenInit
+ EnterVT
+ LeaveVT
+ numEntities
+ entityList
+ access
+ </verb></quote>
+
+ <tt>(*)</tt> These are initialised when the &s.code;ScrnInfoRec&e.code;
+ is allocated, and not explicitly by the driver.
+
+ The following &s.code;ScrnInfoRec&e.code; fields must be initialised
+ if the driver is going to use them:
+
+ <quote><verb>
+ SwitchMode
+ AdjustFrame
+ FreeScreen
+ ValidMode
+ </verb></quote>
+
+<sect1>Matching Screens
+<p>
+
+ This is done at the start of the first server generation only.
+
+ After the Probe phase is finished, there will be some number of
+ &s.code;ScrnInfoRecs&e.code;. These are then matched with the active
+ &k.screen; sections in the XF86Config, and those not having an active
+ &k.screen; section are deleted. If the number of remaining screens
+ is 0, &s.code;InitOutput()&e.code; sets
+ &s.code;screenInfo.numScreens&e.code; to &s.code;0&e.code; and
+ returns.
+
+ At this point the following fields of the &s.code;ScrnInfoRecs&e.code;
+ must be initialised:
+
+ <quote><verb>
+ confScreen
+ </verb></quote>
+
+
+<sect1>Allocate non-conflicting resources
+<p>
+
+ This is done at the start of the first server generation only.
+
+ Before calling the drivers again, the resource information collected
+ from the Probe phase is processed. This includes checking the extent
+ of PCI resources for the probed devices, and resolving any conflicts
+ in the relocatable PCI resources. It also reports conflicts, checks
+ bus routing issues, and anything else that is needed to enable the
+ entities for the next phase.
+
+ If any drivers registered an &s.code;EntityInit()&e.code; function
+ during the Probe phase, then they are called here.
+
+
+<sect1>Sort the Screens and pre-check Monitor Information
+<p>
+
+ This is done at the start of the first server generation only.
+
+ The list of screens is sorted to match the ordering requested in the
+ config file.
+
+ The list of modes for each active monitor is checked against the
+ monitor's parameters. Invalid modes are pruned.
+
+
+<sect1>PreInit
+<p>
+
+ This is done at the start of the first server generation only.
+
+ For each &s.code;ScrnInfoRec&e.code;, enable access to the screens entities and call
+ the &s.code;ChipPreInit()&e.code; function.
+
+ <quote><p>
+ &s.code;Bool ChipPreInit(ScrnInfoRec screen, int flags)&e.code;
+ <quote><p>
+ The purpose of this function is to find out all the information
+ required to determine if the configuration is usable, and to
+ initialise those parts of the &s.code;ScrnInfoRec&e.code; that
+ can be set once at the beginning of the first server generation.
+
+ The number of entities registered for the screen should be checked
+ against the expected number (most drivers expect only one). The
+ entity information for each of them should be retrieved (with
+ &s.code;xf86GetEntityInfo()&e.code;) and checked for the correct
+ bus type and that none of the sharable resources registered during
+ the Probe phase was rejected.
+
+ Access to resources for the entities that can be controlled in a
+ device-independent way are enabled before this function is called.
+ If the driver needs to access any resources that it has disabled
+ in an &s.code;EntityInit()&e.code; function that it registered,
+ then it may enable them here providing that it disables them before
+ this function returns.
+
+ This includes probing for video memory, clocks, ramdac, and all
+ other HW info that is needed. It includes determining the
+ depth/bpp/visual and related info. It includes validating and
+ determining the set of video modes that will be used (and anything
+ that is required to determine that).
+
+ This information should be determined in the least intrusive way
+ possible. The state of the HW must remain unchanged by this
+ function. Although video memory (including MMIO) may be mapped
+ within this function, it must be unmapped before returning. Driver
+ specific information should be stored in a structure hooked into
+ the &s.code;ScrnInfoRec&e.code;'s &s.code;driverPrivate&e.code;
+ field. Any other modules which require persistent data (ie data
+ that persists across server generations) should be initialised in
+ this function, and they should allocate a ``privates'' index to
+ hook their data into by calling
+ &s.code;xf86AllocateScrnInfoPrivateIndex().&e.code; The ``privates''
+ data is persistent.
+
+ Helper functions for some of these things are provided at the
+ XFree86 common level, and the driver can choose to make use of
+ them.
+
+ All additional resources that the screen needs must be registered
+ here. This should be done with
+ &s.code;xf86RegisterResources()&e.code;. If some of the fixed
+ resources registered in the Probe phase are not needed or not
+ decoded by the hardware when in the OPERATING server state, their
+ status should be updated with
+ &s.code;xf86SetOperatingState()&e.code;.
+
+ Modules may be loaded at any point in this function, and all
+ modules that the driver will need must be loaded before the end
+ of this function. Either the &s.code;xf86LoadSubModule()&e.code;
+ or the &s.code;xf86LoadDrvSubModule()&e.code; function should be
+ used to load modules depending on whether a
+ &s.code;ScrnInfoRec&e.code; has been set up. A driver may unload
+ a module within this function if it was only needed temporarily,
+ and the &s.code;xf86UnloadSubModule()&e.code; function should be used
+ to do that. Otherwise there is no need to explicitly unload modules
+ because the loader takes care of module dependencies and will
+ unload submodules automatically if/when the driver module is
+ unloaded.
+
+ The bulk of the &s.code;ScrnInfoRec&e.code; fields should be filled
+ out in this function.
+
+ &s.code;ChipPreInit()&e.code; returns &s.code;FALSE&e.code; when
+ the configuration is unusable in some way (unsupported depth, no
+ valid modes, not enough video memory, etc), and &s.code;TRUE&e.code;
+ if it is usable.
+
+ It is expected that if the &s.code;ChipPreInit()&e.code; function
+ returns &s.code;TRUE&e.code;, then the only reasons that subsequent
+ stages in the driver might fail are lack or resources (like xalloc
+ failures). All other possible reasons for failure should be
+ determined by the &s.code;ChipPreInit()&e.code; function.
+
+ </quote>
+ </quote>
+
+ The &s.code;ScrnInfoRecs&e.code; for screens where the &s.code;ChipPreInit()&e.code; fails are removed.
+ If none remain, &s.code;InitOutput()&e.code; sets &s.code;screenInfo.numScreens&e.code; to &s.code;0&e.code; and returns.
+
+ At this point, further fields of the &s.code;ScrnInfoRecs&e.code; would normally be
+ filled in. Most are not strictly mandatory, but many are required
+ by other layers and/or helper functions that the driver may choose
+ to use. The documentation for those layers and helper functions
+ indicates which they require.
+
+ The following fields of the &s.code;ScrnInfoRecs&e.code; should be filled in if the
+ driver is going to use them:
+
+ <quote><verb>
+ monitor
+ display
+ depth
+ pixmapBPP
+ bitsPerPixel
+ weight (>8bpp only)
+ mask (>8bpp only)
+ offset (>8bpp only)
+ rgbBits (8bpp only)
+ gamma
+ defaultVisual
+ maxHValue
+ maxVValue
+ virtualX
+ virtualY
+ displayWidth
+ frameX0
+ frameY0
+ frameX1
+ frameY1
+ zoomLocked
+ modePool
+ modes
+ currentMode
+ progClock (TRUE if clock is programmable)
+ chipset
+ ramdac
+ clockchip
+ numClocks (if not programmable)
+ clock[] (if not programmable)
+ videoRam
+ biosBase
+ memBase
+ memClk
+ driverPrivate
+ chipID
+ chipRev
+ </verb></quote>
+
+ <quote><p>
+ &s.code;pointer xf86LoadSubModule(ScrnInfoPtr pScrn, const char *name)&e.code:
+ and
+ &s.code;pointer xf86LoadDrvSubModule(DriverPtr drv, const char *name)&e.code:
+ <quote><p>
+ Load a module that a driver depends on. This function loads the
+ module &s.code;name&e.code; as a sub module of the driver. The
+ return value is a handle identifying the new module. If the load
+ fails, the return value will be &s.code;NULL&e.code;. If a driver
+ needs to explicitly unload a module it has loaded in this way,
+ the return value must be saved and passed to
+ &s.code;xf86UnloadSubModule()&e.code; when unloading.
+
+ </quote>
+
+ &s.code;void xf86UnloadSubModule(pointer module)&e.code;
+ <quote><p>
+ Unloads the module referenced by &s.code;module&e.code;.
+ &s.code;module&e.code; should be a pointer returned previously
+ by &s.code;xf86LoadSubModule()&e.code; or
+ &s.code;xf86LoadDrvSubModule()&e.code; .
+
+ </quote>
+ </quote>
+
+<sect1>Cleaning up Unused Drivers
+<p>
+
+ At this point it is known which screens will be in use, and which
+ drivers are being used. Unreferenced drivers (and modules they
+ may have loaded) are unloaded here.
+
+
+<sect1>Consistency Checks
+<p>
+
+ The parameters that must be global to the server, like pixmap formats,
+ bitmap bit order, bitmap scanline unit and image byte order are
+ compared for each of the screens. If a mismatch is found, the server
+ exits with an appropriate message.
+
+
+<sect1>Check if Resource Control is Needed
+<p>
+
+ Determine if resource access control is needed. This is the case
+ if more than one screen is used. If necessary the RAC wrapper module
+ is loaded.
+
+<sect1>AddScreen (ScreenInit)
+<p>
+
+ At this point, the valid screens are known.
+ &s.code;AddScreen()&e.code; is called for each of them, passing
+ &s.code;ChipScreenInit()&e.code; as the argument.
+ &s.code;AddScreen()&e.code; is a DIX function that allocates a new
+ &s.code;screenInfo.screen[]&e.code; entry (aka
+ &s.code;pScreen&e.code;), and does some basic initialisation of it.
+ It then calls the &s.code;ChipScreenInit()&e.code; function, with
+ &s.code;pScreen&e.code; as one of its arguments. If
+ &s.code;ChipScreenInit()&e.code; returns &s.code;FALSE&e.code;,
+ &s.code;AddScreen()&e.code; returns &s.code;-1&e.code;. Otherwise
+ it returns the index of the screen. &s.code;AddScreen()&e.code;
+ should only fail because of programming errors or failure to allocate
+ resources (like memory). All configuration problems should be
+ detected BEFORE this point.
+
+ <quote><p>
+ &s.code;Bool ChipScreenInit(int index, ScreenPtr pScreen,
+ &f.indent;int argc, char **argv)&e.code;
+ <quote><p>
+ This is called at the start of each server generation.
+
+ Fill in all of &s.code;pScreen&e.code;, possibly doing some of
+ this by calling ScreenInit functions from other layers like mi,
+ framebuffers (cfb, etc), and extensions.
+
+ Decide which operations need to be placed under resource access
+ control. The classes of operations are the frame buffer operations
+ (&s.code;RAC_FB&e.code;), the pointer operations
+ (&s.code;RAC_CURSOR&e.code;), the viewport change operations
+ (&s.code;RAC_VIEWPORT&e.code;) and the colormap operations
+ (&s.code;RAC_COLORMAP&e.code;). Any operation that requires
+ resources which might be disabled during OPERATING state should
+ be set to use RAC. This can be specified separately for memory
+ and IO resources (the &s.code;racMemFlags&e.code; and
+ &s.code;racIoFlags&e.code; fields of the &s.code;ScrnInfoRec&e.code;
+ respectively).
+
+ Map any video memory or other memory regions.
+
+ Save the video card state. Enough state must be saved so that
+ the original state can later be restored.
+
+ Initialise the initial video mode. The &s.code;ScrnInfoRec&e.code;'s
+ &s.code;vtSema&e.code; field should be set to &s.code;TRUE&e.code;
+ just prior to changing the video hardware's state.
+
+ </quote>
+ </quote>
+
+
+ The &s.code;ChipScreenInit()&e.code; function (or functions from other
+ layers that it calls) should allocate entries in the
+ &s.code;ScreenRec&e.code;'s &s.code;devPrivates&e.code; area by
+ calling &s.code;AllocateScreenPrivateIndex()&e.code; if it needs
+ per-generation storage. Since the &s.code;ScreenRec&e.code;'s
+ &s.code;devPrivates&e.code; information is cleared for each server
+ generation, this is the correct place to initialise it.
+
+ After &s.code;AddScreen()&e.code; has successfully returned, the
+ following &s.code;ScrnInfoRec&e.code; fields are initialised:
+
+ <quote><verb>
+ pScreen
+ racMemFlags
+ racIoFlags
+ </verb></quote>
+
+ The &s.code;ChipScreenInit()&e.code; function should initialise the
+ &s.code;CloseScreen&e.code; and &s.code;SaveScreen&e.code; fields
+ of &s.code;pScreen&e.code;. The old value of
+ &s.code;pScreen-&gt;CloseScreen&e.code; should be saved as part of
+ the driver's per-screen private data, allowing it to be called from
+ &s.code;ChipCloseScreen()&e.code;. This means that the existing
+ &s.code;CloseScreen()&e.code; function is wrapped.
+
+<sect1>Finalising RAC Initialisation
+<p>
+
+ After all the &s.code;ChipScreenInit()&e.code; functions have been
+ called, each screen has registered its RAC requirements. This
+ information is used to determine which shared resources are requested
+ by more than one driver and set the access functions accordingly.
+ This is done following these rules:
+
+ <enum>
+ <item>The sharable resources registered by each entity are compared.
+ If a resource is registered by more than one entity the entity
+ will be marked to indicate that it needs to share this resources
+ type (IO or MEM).
+
+ <item>A resource marked ``disabled'' during OPERATING state will be
+ ignored entirely.
+
+ <item>A resource marked ``unused'' will only conflict with an overlapping
+ resource of an other entity if the second is actually in use
+ during OPERATING state.
+
+ <item>If an ``unused'' resource was found to conflict but the entity
+ does not use any other resource of this type the entire resource
+ type will be disabled for that entity.
+ </enum>
+
+
+<sect1>Finishing InitOutput()
+<p>
+
+ At this point &s.code;InitOutput()&e.code; is finished, and all the
+ screens have been setup in their initial video mode.
+
+
+<sect1>Mode Switching
+<p>
+
+ When a SwitchMode event is received, &s.code;ChipSwitchMode()&e.code;
+ is called (when it exists):
+
+ <quote><p>
+ &s.code;Bool ChipSwitchMode(int index, DisplayModePtr mode, int flags)&e.code;
+ <quote><p>
+ Initialises the new mode for the screen identified by
+ &s.code;index;&e.code;. The viewport may need to be adjusted
+ also.
+
+ </quote>
+ </quote>
+
+
+<sect1>Changing Viewport
+<p>
+
+ When a Change Viewport event is received,
+ &s.code;ChipAdjustFrame()&e.code; is called (when it exists):
+
+ <quote><p>
+ &s.code;void ChipAdjustFrame(int index, int x, int y, int flags)&e.code;
+ <quote><p>
+ Changes the viewport for the screen identified by
+ &s.code;index;&e.code;.
+
+ It should be noted that many chipsets impose restrictions on where the
+ viewport may be placed in the virtual resolution, either for alignment
+ reasons, or to prevent the start of the viewport from being positioned
+ within a pixel (as can happen in a 24bpp mode). After calculating the
+ value the chipset's panning registers need to be set to for non-DGA
+ modes, this function should recalculate the ScrnInfoRec's
+ &s.code;frameX0&e.code;, &s.code;frameY0&e.code, &s.code;frameX1&e.code;
+ and &s.code;frameY1&e.code; fields to correspond to that value. If
+ this is not done, switching to another mode might cause the position
+ of a hardware cursor to change.
+
+ </quote>
+ </quote>
+
+
+<sect1>VT Switching
+<p>
+
+ When a VT switch event is received, &s.code;xf86VTSwitch()&e.code;
+ is called. &s.code;xf86VTSwitch()&e.code; does the following:
+
+ <descrip>
+ <tag>On ENTER:</tag>
+ <itemize>
+ <item>enable port I/O access
+
+ <item>save and initialise the bus/resource state
+
+ <item>enter the SETUP server state
+
+ <item>calls &s.code;ChipEnterVT()&e.code; for each screen
+
+ <item>enter the OPERATING server state
+
+ <item>validate GCs
+
+ <item>Restore fb from saved pixmap for each screen
+
+ <item>Enable all input devices
+ </itemize>
+ <tag>On LEAVE:</tag>
+ <itemize>
+ <item>Save fb to pixmap for each screen
+
+ <item>validate GCs
+
+ <item>enter the SETUP server state
+
+ <item>calls &s.code;ChipLeaveVT()&e.code; for each screen
+
+ <item>disable all input devices
+
+ <item>restore bus/resource state
+
+ <item>disables port I/O access
+ </itemize>
+ </descrip>
+
+ <quote><p>
+ &s.code;Bool ChipEnterVT(int index, int flags)&e.code;
+ <quote><p>
+ This function should initialise the current video mode and
+ initialise the viewport, turn on the HW cursor if appropriate,
+ etc.
+
+ Should it re-save the video state before initialising the video
+ mode?
+
+ </quote>
+
+ &s.code;void ChipLeaveVT(int index, int flags)&e.code;
+ <quote><p>
+ This function should restore the saved video state. If
+ appropriate it should also turn off the HW cursor, and invalidate
+ any pixmap/font caches.
+
+ </quote>
+
+ Optionally, &s.code;ChipLeaveVT()&e.code; may also unmap memory
+ regions. If so, &s.code;ChipEnterVT()&e.code; will need to remap
+ them. Additionally, if an aperture used to access video memory is
+ unmapped and remapped in this fashion, &s.code;ChipEnterVT()&e.code;
+ will also need to notify the framebuffer layers of the aperture's new
+ location in virtual memory. This is done with a call to the screen's
+ &s.code;ModifyPixmapHeader()&e.code; function, as follows
+
+ <quote><p>
+ &s.code;(*pScreen->ModifyPixmapHeader)(pScrn->ppix,
+ &f.indent;-1, -1, -1, -1, -1, <it>NewApertureAddress</it>);&e.code;
+ <quote><p>
+ where the &s.code``ppix''&e.code; field in a ScrnInfoRec
+ points to the pixmap used by the screen's
+ &s.code;SaveRestoreImage()&e.code; function to hold the screen's
+ contents while switched out.
+
+ </quote>
+ </quote>
+
+ Currently, aperture remapping, as described here, should not be
+ attempted if the driver uses the &s.code;xf8_16bpp&e.code; or
+ &s.code;xf8_32bpp&e.code; framebuffer layers. A pending
+ restructuring of VT switching will address this restriction in
+ the near future.
+
+ </quote>
+
+ Other layers may wrap the &s.code;ChipEnterVT()&e.code; and
+ &s.code;ChipLeaveVT()&e.code; functions if they need to take some
+ action when these events are received.
+
+<sect1>End of server generation
+<p>
+
+ At the end of each server generation, the DIX layer calls
+ &s.code;ChipCloseScreen()&e.code; for each screen:
+
+ <quote><p>
+ &s.code;Bool ChipCloseScreen(int index, ScreenPtr pScreen)&e.code;
+ <quote><p>
+ This function should restore the saved video state and unmap the
+ memory regions.
+
+ It should also free per-screen data structures allocated by the
+ driver. Note that the persistent data held in the
+ &s.code;ScrnInfoRec&e.code;'s &s.code;driverPrivate&e.code; field
+ should not be freed here because it is needed by subsequent server
+ generations.
+
+ The &s.code;ScrnInfoRec&e.code;'s &s.code;vtSema&e.code; field
+ should be set to &s.code;FALSE&e.code; once the video HW state
+ has been restored.
+
+ Before freeing the per-screen driver data the saved
+ &s.code;CloseScreen&e.code; value should be restored to
+ &s.code;pScreen-&gt;CloseScreen&e.code;, and that function should
+ be called after freeing the data.
+
+ </quote>
+ </quote>
+
+<sect>Optional Driver Functions
+<p>
+
+The functions outlined here can be called from the XFree86 common layer,
+but their presence is optional.
+
+<sect1>Mode Validation
+<p>
+
+ When a mode validation helper supplied by the XFree86-common layer is
+ being used, it can be useful to provide a function to check for hw
+ specific mode constraints:
+
+ <quote><p>
+ &s.code;ModeStatus ChipValidMode(int index, DisplayModePtr mode,
+ &f.indent;Bool verbose, int flags)&e.code;
+ <quote><p>
+ Check the passed mode for hw-specific constraints, and return the
+ appropriate status value.
+
+ </quote>
+ </quote>
+
+<p>
+This function may also modify the effective timings and clock of the passed
+mode. These have been stored in the mode's &s.code;Crtc*&e.code; and
+&s.code;SynthClock&e.code; elements, and have already been adjusted for
+interlacing, doublescanning, multiscanning and clock multipliers and dividers.
+The function should not modify any other mode field, unless it wants to modify
+the mode timings reported to the user by &s.code;xf86PrintModes()&e.code;.
+
+<p>
+The function is called once for every mode in the XF86Config Monitor section
+assigned to the screen, with &s.code;flags&e.code; set to
+&s.code;MODECHECK_INITIAL&e.code;. It is subsequently called for every mode
+in the XF86Config Display subsection assigned to the screen, with
+&s.code;flags&e.code; set to &s.code;MODECHECK_FINAL&e.code;. In the second
+case, the mode will have successfully passed all other tests. In addition,
+the &s.code;ScrnInfoRec&e.code;'s &s.code;virtualX&e.code;,
+&s.code;virtualY&e.code; and &s.code;displayWidth&e.code; fields will have been
+set as if the mode to be validated were to be the last mode accepted.
+
+<p>
+In effect, calls with MODECHECK_INITIAL are intended for checks that do not
+depend on any mode other than the one being validated, while calls with
+MODECHECK_FINAL are intended for checks that may involve more than one mode.
+
+<sect1>Free screen data
+<p>
+
+ When a screen is deleted prior to the completion of the ScreenInit
+ phase the &s.code;ChipFreeScreen()&e.code; function is called when defined.
+
+ <quote><p>
+ &s.code;void ChipFreeScreen(int scrnindex, int flags)&e.code;
+ <quote><p>
+ Free any driver-allocated data that may have been allocated up to
+ and including an unsuccessful &s.code;ChipScreenInit()&e.code;
+ call. This would predominantly be data allocated by
+ &s.code;ChipPreInit()&e.code; that persists across server
+ generations. It would include the &s.code;driverPrivate&e.code;,
+ and any ``privates'' entries that modules may have allocated.
+
+ </quote>
+ </quote>
+
+
+<sect>Recommended driver functions
+<p>
+
+The functions outlined here are for internal use by the driver only.
+They are entirely optional, and are never accessed directly from higher
+layers. The sample function declarations shown here are just examples.
+The interface (if any) used is up to the driver.
+
+<sect1>Save
+<p>
+
+ Save the video state. This could be called from &s.code;ChipScreenInit()&e.code; and
+ (possibly) &s.code;ChipEnterVT()&e.code;.
+
+ <quote><p>
+ &s.code;void ChipSave(ScrnInfoPtr pScrn)&e.code;
+ <quote><p>
+ Saves the current state. This will only be saving pre-server
+ states or states before returning to the server. There is only
+ one current saved state per screen and it is stored in private
+ storage in the screen.
+
+ </quote>
+ </quote>
+
+<sect1>Restore
+<p>
+
+ Restore the original video state. This could be called from the
+ &s.code;ChipLeaveVT()&e.code; and &s.code;ChipCloseScreen()&e.code;
+ functions.
+
+ <quote><p>
+ &s.code;void ChipRestore(ScrnInfoPtr pScrn)&e.code;
+ <quote><p>
+ Restores the saved state from the private storage. Usually only
+ used for restoring text modes.
+
+ </quote>
+ </quote>
+
+
+<sect1>Initialise Mode
+<p>
+
+ Initialise a video mode. This could be called from the
+ &s.code;ChipScreenInit()&e.code;, &s.code;ChipSwitchMode()&e.code;
+ and &s.code;ChipEnterVT()&e.code; functions.
+
+ <quote><p>
+ &s.code;Bool ChipModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)&e.code;
+ <quote><p>
+ Programs the hardware for the given video mode.
+
+ </quote>
+ </quote>
+
+
+<sect>Data and Data Structures
+<p>
+
+<sect1>Command line data
+<p>
+
+Command line options are typically global, and are stored in global
+variables. These variables are read-only and are available to drivers
+via a function call interface. Most of these command line values are
+processed via helper functions to ensure that they are treated consistently
+by all drivers. The other means of access is provided for cases where
+the supplied helper functions might not be appropriate.
+
+Some of them are:
+
+<quote><verb>
+ xf86Verbose verbosity level
+ xf86Bpp -bpp from the command line
+ xf86Depth -depth from the command line
+ xf86Weight -weight from the command line
+ xf86Gamma -{r,g,b,}gamma from the command line
+ xf86FlipPixels -flippixels from the command line
+ xf86ProbeOnly -probeonly from the command line
+ defaultColorVisualClass -cc from the command line
+</verb></quote>
+
+If we ever do allow for screen-specific command line options, we may
+need to rethink this.
+
+These can be accessed in a read-only manner by drivers with the following
+functions:
+
+ <quote><p>
+ &s.code;int xf86GetVerbosity()&e.code;
+ <quote><p>
+ Returns the value of &s.code;xf86Verbose&e.code;.
+
+ </quote>
+
+ &s.code;int xf86GetDepth()&e.code;
+ <quote><p>
+ Returns the &s.cmd;-depth&e.cmd; command line setting. If not
+ set on the command line, &s.code;-1&e.code; is returned.
+
+ </quote>
+
+ &s.code;rgb xf86GetWeight()&e.code;
+ <quote><p>
+ Returns the &s.cmd;-weight&e.cmd; command line setting. If not
+ set on the command line, &s.code;{0, 0, 0}&e.code; is returned.
+
+ </quote>
+
+ &s.code;Gamma xf86GetGamma()&e.code;
+ <quote><p>
+ Returns the &s.cmd;-gamma&e.cmd; or &s.cmd;-rgamma&e.cmd;,
+ &s.cmd;-ggamma&e.cmd;, &s.cmd;-bgamma&e.cmd; command line settings.
+ If not set on the command line, &s.code;{0.0, 0.0, 0.0}&e.code;
+ is returned.
+
+ </quote>
+
+ &s.code;Bool xf86GetFlipPixels()&e.code;
+ <quote><p>
+ Returns &s.code;TRUE&e.code; if &s.cmd;-flippixels&e.cmd; is
+ present on the command line, and &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+
+ &s.code;const char *xf86GetServerName()&e.code;
+ <quote><p>
+ Returns the name of the X server from the command line.
+
+ </quote>
+ </quote>
+
+<sect1>Data handling
+<p>
+
+Config file data contains parts that are global, and parts that are
+Screen specific. All of it is parsed into data structures that neither
+the drivers or most other parts of the server need to know about.
+
+The global data is typically not required by drivers, and as such, most
+of it is stored in the private &s.code;xf86InfoRec&e.code;.
+
+The screen-specific data collected from the config file is stored in
+screen, device, display, monitor-specific data structures that are separate
+from the &s.code;ScrnInfoRecs&e.code;, with the appropriate elements/fields
+hooked into the &s.code;ScrnInfoRecs&e.code; as required. The screen
+config data is held in &s.code;confScreenRec&e.code;, device data in
+the &s.code;GDevRec&e.code;, monitor data in the &s.code;MonRec&e.code;,
+and display data in the &s.code;DispRec&e.code;.
+
+The XFree86 common layer's screen specific data (the actual data in use
+for each screen) is held in the &s.code;ScrnInfoRecs&e.code;. As has
+been outlined above, the &s.code;ScrnInfoRecs&e.code; are allocated at probe
+time, and it is the responsibility of the Drivers' &s.code;Probe()&e.code;
+and &s.code;PreInit()&e.code; functions to finish filling them in based
+on both data provided on the command line and data provided from the
+Config file. The precedence for this is:
+
+ <quote>
+ command line -&gt; config file -&gt; probed/default data
+ </quote>
+
+For most things in this category there are helper functions that the
+drivers can use to ensure that the above precedence is consistently
+used.
+
+As well as containing screen-specific data that the XFree86 common layer
+(including essential parts of the server infrastructure as well as helper
+functions) needs to access, it also contains some data that drivers use
+internally. When considering whether to add a new field to the
+&s.code;ScrnInfoRec&e.code;, consider the balance between the convenience
+of things that lots of drivers need and the size/obscurity of the
+&s.code;ScrnInfoRec&e.code;.
+
+Per-screen driver specific data that cannot be accommodated with the
+static &s.code;ScrnInfoRec&e.code; fields is held in a driver-defined
+data structure, a pointer to which is assigned to the
+&s.code;ScrnInfoRec&e.code;'s &s.code;driverPrivate&e.code; field. This
+is per-screen data that persists across server generations (as does the
+bulk of the static &s.code;ScrnInfoRec&e.code; data). It would typically
+also include the video card's saved state.
+
+Per-screen data for other modules that the driver uses (for example,
+the XAA module) that is reset for each server generation is hooked into
+the &s.code;ScrnInfoRec&e.code; through it's &s.code;privates&e.code;
+field.
+
+Once it has stabilised, the data structures and variables accessible to
+video drivers will be documented here. In the meantime, those things
+defined in the &s.code;xf86.h&e.code; and &s.code;xf86str.h&e.code;
+files are visible to video drivers. Things defined in
+&s.code;xf86Priv.h&e.code; and &s.code;xf86Privstr.h&e.code; are NOT
+intended to be visible to video drivers, and it is an error for a driver
+to include those files.
+
+
+<sect1>Accessing global data
+<p>
+
+Some other global state information that the drivers may access via
+functions is as follows:
+
+ <quote><p>
+ &s.code;Bool xf86ServerIsExiting()&e.code;
+ <quote><p>
+ Returns &s.code;TRUE&e.code; if the server is at the end of a
+ generation and is in the process of exiting, and
+ &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+
+ &s.code;Bool xf86ServerIsResetting()&e.code;
+ <quote><p>
+ Returns &s.code;TRUE&e.code; if the server is at the end of a
+ generation and is in the process of resetting, and
+ &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+
+ &s.code;Bool xf86ServerIsInitialising()&e.code;
+ <quote><p>
+ Returns &s.code;TRUE&e.code; if the server is at the beginning of
+ a generation and is in the process of initialising, and
+ &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+
+ &s.code;Bool xf86ServerIsOnlyProbing()&e.code;
+ <quote><p>
+ Returns &s.code;TRUE&e.code; if the -probeonly command line flag
+ was specified, and &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+
+ &s.code;Bool xf86CaughtSignal()&e.code;
+ <quote><p>
+ Returns &s.code;TRUE&e.code; if the server has caught a signal,
+ and &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+ </quote>
+
+<sect1>Allocating private data
+<p>
+
+A driver and any module it uses may allocate per-screen private storage
+in either the &s.code;ScreenRec&e.code; (DIX level) or
+&s.code;ScrnInfoRec&e.code; (XFree86 common layer level).
+&s.code;ScreenRec&e.code; storage persists only for a single server
+generation, and &s.code;ScrnInfoRec&e.code; storage persists across
+generations for the lifetime of the server.
+
+The &s.code;ScreenRec&e.code; &s.code;devPrivates&e.code; data must be
+reallocated/initialised at the start of each new generation. This is
+normally done from the &s.code;ChipScreenInit()&e.code; function, and
+Init functions for other modules that it calls. Data allocated in this
+way should be freed by the driver's &s.code;ChipCloseScreen()&e.code;
+functions, and Close functions for other modules that it calls. A new
+&s.code;devPrivates&e.code; entry is allocated by calling the
+&s.code;AllocateScreenPrivateIndex()&e.code; function.
+
+ <quote><p>
+ &s.code;int AllocateScreenPrivateIndex()&e.code;
+ <quote><p>
+ This function allocates a new element in the
+ &s.code;devPrivates&e.code; field of all currently existing
+ &s.code;ScreenRecs&e.code;. The return value is the index of this
+ new element in the &s.code;devPrivates&e.code; array. The
+ &s.code;devPrivates&e.code; field is of type
+ &s.code;DevUnion&e.code;:
+
+ <verb>
+ typedef union _DevUnion {
+ pointer ptr;
+ long val;
+ unsigned long uval;
+ pointer (*fptr)(void);
+ } DevUnion;
+ </verb>
+
+ which allows the element to be used for any of the above types.
+ It is commonly used as a pointer to data that the caller allocates
+ after the new index has been allocated.
+
+ This function will return &s.code;-1&e.code; when there is an
+ error allocating the new index.
+
+ </quote>
+ </quote>
+
+The &s.code;ScrnInfoRec&e.code; &s.code;privates&e.code; data persists
+for the life of the server, so only needs to be allocated once. This
+should be done from the &s.code;ChipPreInit()&e.code; function, and Init
+functions for other modules that it calls. Data allocated in this way
+should be freed by the driver's &s.code;ChipFreeScreen()&e.code; functions,
+and Free functions for other modules that it calls. A new
+&s.code;privates&e.code; entry is allocated by calling the
+&s.code;xf86AllocateScrnInfoPrivateIndex()&e.code; function.
+
+
+ <quote><p>
+ &s.code;int xf86AllocateScrnInfoPrivateIndex()&e.code;
+ <quote><p>
+ This function allocates a new element in the &s.code;privates&e.code;
+ field of all currently existing &s.code;ScrnInfoRecs&e.code;.
+ The return value is the index of this new element in the
+ &s.code;privates&e.code; array. The &s.code;privates&e.code;
+ field is of type &s.code;DevUnion&e.code;:
+
+ <verb>
+ typedef union _DevUnion {
+ pointer ptr;
+ long val;
+ unsigned long uval;
+ pointer (*fptr)(void);
+ } DevUnion;
+ </verb>
+
+ which allows the element to be used for any of the above types.
+ It is commonly used as a pointer to data that the caller allocates
+ after the new index has been allocated.
+
+ This function will not return when there is an error allocating
+ the new index. When there is an error it will cause the server
+ to exit with a fatal error. The similar function for allocation
+ privates in the &s.code;ScreenRec&e.code;
+ (&s.code;AllocateScreenPrivateIndex()&e.code;) differs in this
+ respect by returning &s.code;-1&e.code; when the allocation fails.
+
+ </quote>
+ </quote>
+
+<sect>Keeping Track of Bus Resources<label id="rac">
+<p>
+
+<sect1>Theory of Operation
+<p>
+
+The XFree86 common layer has knowledge of generic access control mechanisms
+for devices on certain bus systems (currently the PCI bus) as well as
+of methods to enable or disable access to the buses itself. Furthermore
+it can access information on resources decoded by these devices and if
+necessary modify it.
+
+When first starting the Xserver collects all this information, saves it
+for restoration, checks it for consistency, and if necessary, corrects
+it. Finally it disables all resources on a generic level prior to
+calling any driver function.
+
+When the &s.code;Probe()&e.code; function of each driver is called the
+device sections are matched against the devices found in the system.
+The driver may probe devices at this stage that cannot be identified by
+using device independent methods. Access to all resources that can be
+controlled in a device independent way is disabled. The
+&s.code;Probe()&e.code; function should register all non-relocatable
+resources at this stage. If a resource conflict is found between
+exclusive resources the driver will fail immediately. Optionally the
+driver might specify an &s.code;EntityInit()&e.code;,
+&s.code;EntityLeave()&e.code; and &s.code;EntityEnter()&e.code; function.
+
+&s.code;EntityInit()&e.code; can be used to disable any shared resources
+that are not controlled by the generic access control functions. It is
+called prior to the PreInit phase regardless if an entity is active or
+not. When calling the &s.code;EntityInit()&e.code;,
+&s.code;EntityEnter()&e.code; and &s.code;EntityLeave()&e.code; functions
+the common level will disable access to all other entities on a generic
+level. Since the common level has no knowledge of device specific
+methods to disable access to resources it cannot be guaranteed that
+certain resources are not decoded by any other entity until the
+&s.code;EntityInit()&e.code; or &s.code;EntityEnter()&e.code; phase is
+finished. Device drivers should therefore register all those resources
+which they are going to disable. If these resources are never to be
+used by any driver function they may be flagged &s.code;ResInit&e.code;
+so that they can be removed from the resource list after processing all
+&s.code;EntityInit()&e.code; functions. &s.code;EntityEnter()&e.code;
+should disable decoding of all resources which are not registered as
+exclusive and which are not handled by the generic access control in
+the common level. The difference to &s.code;EntityInit()&e.code; is
+that the latter one is only called once during lifetime of the server.
+It can therefore be used to set up variables prior to disabling resources.
+&s.code;EntityLeave()&e.code; should restore the original state when
+exiting the server or switching to a different VT. It also needs to
+disable device specific access functions if they need to be disabled on
+server exit or VT switch. The default state is to enable them before
+giving up the VT.
+
+In &s.code;PreInit()&e.code; phase each driver should check if any
+sharable resources it has registered during &s.code;Probe()&e.code; has
+been denied and take appropriate action which could simply be to fail.
+If it needs to access resources it has disabled during
+&s.code;EntitySetup()&e.code; it can do so provided it has registered
+these and will disable them before returning from
+&s.code;PreInit()&e.code;. This also applies to all other driver
+functions. Several functions are provided to request resource ranges,
+register these, correct PCI config space and add replacements for the
+generic access functions. Resources may be marked ``disabled'' or
+``unused'' during OPERATING stage. Although these steps could also be
+performed in &s.code;ScreenInit()&e.code;, this is not desirable.
+
+Following &s.code;PreInit()&e.code; phase the common level determines
+if resource access control is needed. This is the case if more than
+one screen is used. If necessary the RAC wrapper module is loaded. In
+&s.code;ScreenInit()&e.code; the drivers can decide which operations
+need to be placed under RAC. Available are the frame buffer operations,
+the pointer operations and the colormap operations. Any operation that
+requires resources which might be disabled during OPERATING state should
+be set to use RAC. This can be specified separately for memory and IO
+resources.
+
+When &s.code;ScreenInit()&e.code; phase is done the common level will
+determine which shared resources are requested by more than one driver
+and set the access functions accordingly. This is done following these
+rules:
+
+<enum>
+<item>The sharable resources registered by each entity are compared. If
+ a resource is registered by more than one entity the entity will be
+ marked to need to share this resources type (&s.code;IO&e.code; or
+ &s.code;MEM&e.code;).
+
+<item>A resource marked ``disabled'' during OPERATING state will be ignored
+ entirely.
+
+<item>A resource marked ``unused'' will only conflicts with an overlapping
+ resource of an other entity if the second is actually in use during
+ OPERATING state.
+
+<item>If an ``unused'' resource was found to conflict however the entity
+ does not use any other resource of this type the entire resource type
+ will be disabled for that entity.
+</enum>
+
+The driver has the choice among different ways to control access to
+certain resources:
+
+<enum>
+<item>It can rely on the generic access functions. This is probably the
+ most common case. Here the driver only needs to register any resource
+ it is going to use.
+
+<item>It can replace the generic access functions by driver specific
+ ones. This will mostly be used in cases where no generic access
+ functions are available. In this case the driver has to make sure
+ these resources are disabled when entering the &s.code;PreInit()&e.code;
+ stage. Since the replacement functions are registered in
+ &s.code;PreInit()&e.code; the driver will have to enable these
+ resources itself if it needs to access them during this state. The
+ driver can specify if the replacement functions can control memory
+ and/or I/O resources separately.
+
+<item>The driver can enable resources itself when it needs them. Each
+ driver function enabling them needs to disable them before it will
+ return. This should be used if a resource which can be controlled
+ in a device dependent way is only required during SETUP state. This
+ way it can be marked ``unused'' during OPERATING state.
+</enum>
+
+A resource which is decoded during OPERATING state however never accessed
+by the driver should be marked unused.
+
+Since access switching latencies are an issue during Xserver operation,
+the common level attempts to minimize the number of entities that need
+to be placed under RAC control. When a wrapped operation is called,
+the &s.code;EnableAccess()&e.code; function is called before control is
+passed on. &s.code;EnableAccess()&e.code; checks if a screen is under
+access control. If not it just establishes bus routing and returns.
+If the screen needs to be under access control,
+&s.code;EnableAccess()&e.code; determines which resource types
+(&s.code;MEM&e.code;, &s.code;IO&e.code;) are required. Then it tests
+if this access is already established. If so it simply returns. If
+not it disables the currently established access, fixes bus routing and
+enables access to all entities registered for this screen.
+
+Whenever a mode switch or a VT-switch is performed the common level will
+return to SETUP state.
+
+<sect1>Resource Types
+<p>
+
+Resource have certain properties. When registering resources each range
+is accompanied by a flag consisting of the ORed flags of the different
+properties the resource has. Each resource range may be classified
+according to
+
+<itemize>
+ <item>its physical properties i.e., if it addresses
+ memory (&s.code;ResMem&e.code;) or
+ I/O space (&s.code;ResIo&e.code;),
+ <item>if it addresses a
+ block (&s.code;ResBlock&e.code;) or
+ sparse (&s.code;ResSparse&e.code;)
+ range,
+ <item>its access properties.
+</itemize>
+
+There are two known access properties:
+
+<itemize>
+ <item>&s.code;ResExclusive&e.code;
+ for resources which may not be shared with any other device and
+ <item>&s.code;ResShared&e.code;
+ for resources which can be disabled and therefore can be shared.
+</itemize>
+
+If it is necessary to test a resource against any type a generic access
+type &s.code;ResAny&e.code; is provided. If this is set the resource
+will conflict with any resource of a different entity intersecting its
+range. Further it can be specified that a resource is decoded however
+never used during any stage (&s.code;ResUnused&e.code;) or during
+OPERATING state (&s.code;ResUnusedOpr&e.code;). A resource only visible
+during the init functions (ie. &s.code;EntityInit()&e.code;,
+&s.code;EntityEnter()&e.code; and &s.code;EntityLeave()&e.code; should
+be registered with the flag &s.code;ResInit&e.code;. A resource that
+might conflict with background resource ranges may be flagged with
+&s.code;ResBios&e.code;. This might be useful when registering resources
+ranges that were assigned by the system Bios.
+
+Several predefined resource lists are available for VGA and 8514/A
+resources in &s.code;common/xf86Resources.h&e.code;.
+
+<sect1>Available Functions<label id="avail">
+<p>
+
+The functions provided for resource management are listed in their order
+of use in the driver.
+
+
+<sect2>Probe Phase
+<p>
+
+In this phase each driver detects those resources it is able to drive,
+creates an entity record for each of them, registers non-relocatable
+resources and allocates screens and adds the resources to screens.
+
+Two helper functions are provided for matching device sections in the
+XF86Config file to the devices:
+
+ <quote><p>
+ &s.code;int xf86MatchPciInstances(const char *driverName, int vendorID,
+ &f.indent;SymTabPtr chipsets, PciChipsets *PCIchipsets,
+ &f.indent;GDevPtr *devList, int numDevs, DriverPtr drvp,
+ &f.indent;int **foundEntities)&e.code;
+ <quote><p>
+ This function finds matches between PCI cards that a driver supports
+ and config file device sections. It is intended for use in the
+ &s.code;ChipProbe()&e.code; function of drivers for PCI cards.
+ Only probed PCI devices with a vendor ID matching
+ &s.code;vendorID&e.code; are considered. &s.code;devList&e.code;
+ and &s.code;numDevs&e.code; are typically those found from
+ calling &s.code;xf86MatchDevice()&e.code;, and represent the active
+ config file device sections relevant to the driver.
+ &s.code;PCIchipsets&e.code; is a table that provides a mapping
+ between the PCI device IDs, the driver's internal chipset tokens
+ and a list of fixed resources.
+
+ When a device section doesn't have a &s.key;BusID&e.key; entry it
+ can only match the primary video device. Secondary devices are
+ only matched with device sections that have a matching
+ &s.key;BusID&e.key; entry.
+
+ Once the preliminary matches have been found, a final match is
+ confirmed by checking if the chipset override, ChipID override or
+ probed PCI chipset type match one of those given in the
+ &s.code;chipsets&e.code; and &s.code;PCIchipsets&e.code; lists.
+ The &s.code;PCIchipsets&e.code; list includes a list of the PCI
+ device IDs supported by the driver. The list should be terminated
+ with an entry with PCI ID &s.code;-1&e.code;". The
+ &s.code;chipsets&e.code; list is a table mapping the driver's
+ internal chipset tokens to names, and should be terminated with
+ a &s.code;NULL&e.code; entry. Only those entries with a
+ corresponding entry in the &s.code;PCIchipsets&e.code; list are
+ considered. The order of precedence is: config file chipset,
+ config file ChipID, probed PCI device ID.
+
+ In cases where a driver handles PCI chipsets with more than one
+ vendor ID, it may set &s.code;vendorID&e.code; to
+ &s.code;0&e.code;, and OR each devID in the list with (the
+ vendor&nbsp;ID&nbsp;&lt;&lt;&nbsp;16).
+
+ Entity index numbers for confirmed matches are returned as an
+ array via &s.code;foundEntities&e.code;. The PCI information,
+ chipset token and device section for each match are found in the
+ &s.code;EntityInfoRec&e.code; referenced by the indices.
+
+ The function return value is the number of confirmed matches. A
+ return value of &s.code;-1&e.code; indicates an internal error.
+ The returned &s.code;foundEntities&e.code; array should be freed
+ by the driver with &s.code;xfree()&e.code; when it is no longer
+ needed in cases where the return value is greater than zero.
+
+ </quote>
+
+ &s.code;int xf86MatchIsaInstances(const char *driverName,
+ &f.indent;SymTabPtr chipsets, IsaChipsets *ISAchipsets,
+ &f.indent;DriverPtr drvp, FindIsaDevProc FindIsaDevice,
+ &f.indent;GDevPtr *devList, int numDevs,
+ int **foundEntities)&e.code;
+ <quote><p>
+ This function finds matches between ISA cards that a driver supports
+ and config file device sections. It is intended for use in the
+ &s.code;ChipProbe()&e.code; function of drivers for ISA cards.
+ &s.code;devList&e.code; and &s.code;numDevs&e.code; are
+ typically those found from calling &s.code;xf86MatchDevice()&e.code;,
+ and represent the active config file device sections relevant to
+ the driver. &s.code;ISAchipsets&e.code; is a table that provides
+ a mapping between the driver's internal chipset tokens and the
+ resource classes. &s.code;FindIsaDevice&e.code; is a
+ driver-provided function that probes the hardware and returns the
+ chipset token corresponding to what was detected, and
+ &s.code;-1&e.code; if nothing was detected.
+
+ If the config file device section contains a chipset entry, then
+ it is checked against the &s.code;chipsets&e.code; list. When
+ no chipset entry is present, the &s.code;FindIsaDevice&e.code;
+ function is called instead.
+
+ Entity index numbers for confirmed matches are returned as an
+ array via &s.code;foundEntities&e.code;. The chipset token and
+ device section for each match are found in the
+ &s.code;EntityInfoRec&e.code; referenced by the indices.
+
+ The function return value is the number of confirmed matches. A
+ return value of &s.code;-1&e.code; indicates an internal error.
+ The returned &s.code;foundEntities&e.code; array should be freed
+ by the driver with &s.code;xfree()&e.code; when it is no longer
+ needed in cases where the return value is greater than zero.
+
+ </quote>
+ </quote>
+
+These two helper functions make use of several core functions that are
+available at the driver level:
+
+ <quote><p>
+ &s.code;Bool xf86ParsePciBusString(const char *busID, int *bus,
+ &f.indent;int *device, int *func)&e.code;
+ <quote><p>
+ Takes a &s.code;BusID&e.code; string, and if it is in the correct
+ format, returns the PCI &s.code;bus&e.code;, &s.code;device&e.code;,
+ &s.code;func&e.code; values that it indicates. The format of the
+ string is expected to be "PCI:bus:device:func" where each of `bus',
+ `device' and `func' are decimal integers. The ":func" part may
+ be omitted, and the func value assumed to be zero, but this isn't
+ encouraged. The "PCI" prefix may also be omitted. The prefix
+ "AGP" is currently equivalent to the "PCI" prefix. If the string
+ isn't a valid PCI BusID, the return value is &s.code;FALSE&e.code;.
+
+ </quote>
+
+
+ &s.code;Bool xf86ComparePciBusString(const char *busID, int bus,
+ &f.indent;int device, int func)&e.code;
+ <quote><p>
+ Compares a &s.code;BusID&e.code; string with PCI &s.code;bus&e.code;,
+ &s.code;device&e.code;, &s.code;func&e.code; values. If they
+ match &s.code;TRUE&e.code; is returned, and &s.code;FALSE&e.code;
+ if they don't.
+
+ </quote>
+
+ &s.code;Bool xf86ParseIsaBusString(const char *busID)&e.code;
+ <quote><p>
+ Compares a &s.code;BusID&e.code; string with the ISA bus ID string
+ ("ISA" or "ISA:"). If they match &s.code;TRUE&e.code; is returned,
+ and &s.code;FALSE&e.code; if they don't.
+
+ </quote>
+
+ &s.code;Bool xf86CheckPciSlot(int bus, int device, int func)&e.code;
+ <quote><p>
+ Checks if the PCI slot &s.code;bus:device:func&e.code; has been
+ claimed. If so, it returns &s.code;FALSE&e.code;, and otherwise
+ &s.code;TRUE&e.code;.
+
+ </quote>
+
+ &s.code;int xf86ClaimPciSlot(int bus, int device, int func, DriverPtr drvp,
+ &f.indent;int chipset, GDevPtr dev, Bool active)&e.code;
+ <quote><p>
+ This function is used to claim a PCI slot, allocate the associated
+ entity record and initialise their data structures. The return
+ value is the index of the newly allocated entity record, or
+ &s.code;-1&e.code; if the claim fails. This function should always
+ succeed if &s.code;xf86CheckPciSlot()&e.code; returned
+ &s.code;TRUE&e.code; for the same PCI slot.
+
+ </quote>
+
+ &s.code;Bool xf86IsPrimaryPci(void)&e.code;
+ <quote><p>
+ This function returns &s.code;TRUE&e.code; if the primary card is
+ a PCI device, and &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+
+ &s.code;int xf86ClaimIsaSlot(DriverPtr drvp, int chipset,
+ &f.indent;GDevPtr dev, Bool active)&e.code;
+ <quote><p>
+ This allocates an entity record entity and initialise the data
+ structures. The return value is the index of the newly allocated
+ entity record.
+
+ </quote>
+
+ &s.code;Bool xf86IsPrimaryIsa(void)&e.code;
+ <quote><p>
+ This function returns &s.code;TRUE&e.code; if the primary card is
+ an ISA (non-PCI) device, and &s.code;FALSE&e.code; otherwise.
+
+ </quote>
+ </quote>
+
+Two helper functions are provided to aid configuring entities:
+ <quote><p>
+ &s.code;ScrnInfoPtr xf86ConfigPciEntity(ScrnInfoPtr pScrn,
+ &f.indent;int scrnFlag, int entityIndex,
+ &f.indent;PciChipsets *p_chip,
+ &f.indent;resList res, EntityProc init,
+ &f.indent;EntityProc enter, EntityProc leave,
+ &f.indent;pointer private)&e.code;
+ <p>
+ &s.code;ScrnInfoPtr xf86ConfigIsaEntity(ScrnInfoPtr pScrn,
+ &f.indent;int scrnFlag, int entityIndex,
+ &f.indent;IsaChipsets *i_chip,
+ &f.indent;resList res, EntityProc init,
+ &f.indent;EntityProc enter, EntityProc leave,
+ &f.indent;pointer private)&e.code;
+ <quote><p>
+ These functions are used to register the non-relocatable resources
+ for an entity, and the optional entity-specific &s.code;Init&e.code;, &s.code;Enter&e.code; and
+ &s.code;Leave&e.code; functions. Usually the list of fixed resources is obtained
+ from the Isa/PciChipsets lists. However an additional list of
+ resources may be passed. Generally this is not required.
+ For active entities a &s.code;ScrnInfoRec&e.code; is allocated
+ if the &s.code;pScrn&e.code; argument is &s.code;NULL&e.code;.
+The
+ return value is &s.code;TRUE&e.code; when successful. The init, enter, leave
+ functions are defined as follows:
+
+ <quote>
+ &s.code;typedef void (*EntityProc)(int entityIndex,
+ &f.indent;pointer private)&e.code;
+ </quote>
+
+ They are passed the entity index and a pointer to a private scratch
+ area. This can be set up during &s.code;Probe()&e.code; and
+ its address can be passed to
+ &s.code;xf86ConfigIsaEntity()&e.code; and
+ &s.code;xf86ConfigPciEntity()&e.code; as the last argument.
+
+ </quote>
+ </quote>
+
+These two helper functions make use of several core functions that are
+available at the driver level:
+ <quote><p>
+ &s.code;void xf86ClaimFixedResources(resList list, int entityIndex)&e.code;
+ <quote><p>
+ This function registers the non-relocatable resources which cannot
+ be disabled and which therefore would cause the server to fail
+ immediately if they were found to conflict. It also records
+ non-relocatable but sharable resources for processing after the
+ &s.code;Probe()&e.code; phase.
+
+ </quote>
+
+ &s.code;Bool xf86SetEntityFuncs(int entityIndex, EntityProc init,
+ &f.indent;EntityProc enter, EntityProc leave, pointer)&e.code;
+ <quote><p>
+ This function registers with an entity the &s.code;init&e.code;,
+ &s.code;enter&e.code;, &s.code;leave&e.code; functions along
+ with the pointer to their private area.
+
+ </quote>
+
+ &s.code;void xf86AddEntityToScreen(ScrnInfoPtr pScrn, int entityIndex)&e.code;
+ <quote><p>
+ This function associates the entity referenced by
+ &s.code;entityIndex&e.code; with the screen.
+
+ </quote>
+ </quote>
+
+<sect2>PreInit Phase
+<p>
+
+During this phase the remaining resources should be registered.
+&s.code;PreInit()&e.code; should call &s.code;xf86GetEntityInfo()&e.code;
+to obtain a pointer to an &s.code;EntityInfoRec&e.code; for each entity
+it is able to drive and check if any resource are listed in its
+&s.code;resources&e.code; field. If resources registered in the Probe
+phase have been rejected in the post-Probe phase
+(&s.code;resources&e.code; is non-&s.code;NULL&e.code;), then the driver should
+decide if it can continue without using these or if it should fail.
+
+ <quote><p>
+ &s.code;EntityInfoPtr xf86GetEntityInfo(int entityIndex)&e.code;
+ <quote><p>
+ This function returns a pointer to the &s.code;EntityInfoRec&e.code;
+ referenced by &s.code;entityIndex&e.code;. The returned
+ &s.code;EntityInfoRec&e.code; should be freed with
+ &s.code;xfree()&e.code; when no longer needed.
+
+ </quote>
+ </quote>
+Several functions are provided to simplify resource registration:
+ <quote><p>
+ &s.code;Bool xf86IsEntityPrimary(int entityIndex)&e.code;
+ <quote><p>
+ This function returns &s.code;TRUE&e.code; if the entity referenced
+ by &s.code;entityIndex&e.code; is the primary display device (i.e.,
+ the one initialised at boot time and used in text mode).
+
+ </quote>
+
+ &s.code;Bool xf86IsScreenPrimary(int scrnIndex)&e.code;
+ <quote><p>
+ This function returns &s.code;TRUE&e.code; if the primary entity
+ is registered with the screen referenced by
+ &s.code;scrnIndex&e.code;.
+
+ </quote>
+
+ &s.code;pciVideoPtr xf86GetPciInfoForEntity(int entityIndex)&e.code;
+ <quote><p>
+ This function returns a pointer to the &s.code;pciVideoRec&e.code;
+ for the specified entity. If the entity is not a PCI device,
+ &s.code;NULL&e.code; is returned.
+
+ </quote>
+ </quote>
+
+The primary function for registration of resources is:
+ <quote><p>
+ &s.code;resPtr xf86RegisterResources(int entityIndex, resList list,
+ &f.indent;int access)&e.code;
+ <quote><p>
+ This function tries to register the resources in
+ &s.code;list&e.code;. If list is &s.code;NULL&e.code; it tries
+ to determine the resources automatically. This only works for
+ entities that provide a generic way to read out the resource ranges
+ they decode. So far this is only the case for PCI devices. By
+ default the PCI resources are registered as shared
+ (&s.code;ResShared&e.code;) if the driver wants to set a different
+ access type it can do so by specifying the access flags in the
+ third argument. A value of &s.code;0&e.code; means to use the
+ default settings. If for any reason the resource broker is not
+ able to register some of the requested resources the function will
+ return a pointer to a list of the failed ones. In this case the
+ driver may be able to move the resource to different locations.
+ In case of PCI bus entities this is done by passing the list of
+ failed resources to &s.code;xf86ReallocatePciResources()&e.code;.
+ When the registration succeeds, the return value is
+ &s.code;NULL&e.code;.
+
+ </quote>
+
+ &s.code;resPtr xf86ReallocatePciResources(int entityIndex, resPtr pRes)&e.code;
+ <quote><p>
+ This function takes a list of PCI resources that need to be
+ reallocated and returns &s.code;NULL&e.code when all relocations are
+ successful.
+ &s.code;xf86RegisterResources()&e.code; should be called again to
+ register the relocated resources with the broker.
+ If the reallocation fails, a list of the resources that could not be
+ relocated is returned.
+
+ </quote>
+ </quote>
+
+Two functions are provided to obtain a resource range of a given type:
+ <quote><p>
+ &s.code;resRange xf86GetBlock(long type, memType size,
+ &f.indent;memType window_start, memType window_end,
+ &f.indent;memType align_mask, resPtr avoid)&e.code;
+ <quote><p>
+ This function tries to find a block range of size
+ &s.code;size&e.code; and type &s.code;type&e.code; in a window
+ bound by &s.code;window_start&e.code; and &s.code;window_end&e.code;
+ with the alignment specified in &s.code;align_mask&e.code;.
+ Optionally a list of resource ranges which should be avoided within
+ the window can be supplied. On failure a zero-length range of
+ type &s.code;ResEnd&e.code; will be returned.
+
+ </quote>
+ &s.code;resRange xf86GetSparse(long type, memType fixed_bits,
+ &f.indent;memType decode_mask, memType address_mask,
+ &f.indent;resPtr avoid)&e.code;
+ <quote><p>
+ This function is like the previous one, but attempts to find a
+ sparse range instead of a block range. Here three values have to
+ be specified: the &s.code;address_mask&e.code; which marks all
+ bits of the mask part of the address, the &s.code;decode_mask&e.code;
+ which masks out the bits which are hardcoded and are therefore
+ not available for relocation and the values of the fixed bits.
+ The function tries to find a base that satisfies the given condition.
+ If the function fails it will return a zero range of type
+ &s.code;ResEnd&e.code;. Optionally it might be passed a list of
+ resource ranges to avoid.
+
+ </quote>
+ </quote>
+
+Some PCI devices are broken in the sense that they return invalid size
+information for a certain resource. In this case the driver can supply
+the correct size and make sure that the resource range allocated for
+the card is large enough to hold the address range decoded by the card.
+The function &s.code;xf86FixPciResource()&e.code; can be used to do this:
+ <quote><p>
+ &s.code;Bool xf86FixPciResource(int entityIndex, unsigned int prt,
+ &f.indent;CARD32 alignment, long type)&e.code;
+ <quote><p>
+ This function fixes a PCI resource allocation. The
+ &s.code;prt&e.code; parameter contains the number of the PCI base
+ register that needs to be fixed (&s.code;0-5&e.code;, and
+ &s.code;6&e.code; for the BIOS base register). The size is
+ specified by the alignment. Since PCI resources need to span an
+ integral range of size &s.code;2^n&e.code;, the alignment also
+ specifies the number of addresses that will be decoded. If the
+ driver specifies a type mask it can override the default type for
+ PCI resources which is &s.code;ResShared&e.code;. The resource
+ broker needs to know that to find a matching resource range. This
+ function should be called before calling
+ &s.code;xf86RegisterResources()&e.code;. The return value is
+ &s.code;TRUE&e.code; when the function succeeds.
+
+ </quote>
+
+ &s.code;Bool xf86CheckPciMemBase(pciVideoPtr pPci, memType base)&e.code;
+ <quote><p>
+ This function checks that the memory base address specified matches
+ one of the PCI base address register values for the given PCI
+ device. This is mostly used to check that an externally provided
+ base address (e.g., from a config file) matches an actual value
+ allocated to a device.
+
+ </quote>
+ </quote>
+
+The driver may replace the generic access control functions for an entity.
+This is done with the &s.code;xf86SetAccessFuncs()&e.code;:
+ <quote><p>
+ &s.code;void xf86SetAccessFuncs(EntityInfoPtr pEnt,
+ &f.indent;xf86SetAccessFuncPtr funcs,
+ &f.indent;xf86SetAccessFuncPtr oldFuncs)&e.code;
+ <quote><p>
+ with:
+ </quote>
+
+ <verb>
+ typedef struct {
+ xf86AccessPtr mem;
+ xf86AccessPtr io;
+ xf86AccessPtr io_mem;
+ } xf86SetAccessFuncRec, *xf86SetAccessFuncPtr;
+ </verb>
+
+ <quote><p>
+ The driver can pass three functions: one for I/O access, one for
+ memory access and one for combined memory and I/O access. If the
+ memory access and combined access functions are identical the
+ common level assumes that the memory access cannot be controlled
+ independently of I/O access, if the I/O access function and the
+ combined access functions are the same it is assumed that I/O can
+ not be controlled independently. If memory and I/O have to be
+ controlled together all three values should be the same. If a
+ non &s.code;NULL&e.code; value is passed as third argument it is
+ interpreted as an address where to store the old access record.
+ If the third argument is &s.code;NULL&e.code; it will be assumed
+ that the generic access should be enabled before replacing the
+ access functions. Otherwise it will be disabled. The driver may
+ enable them itself using the returned values. It should do this
+ from its replacement access functions as the generic access may
+ be disabled by the common level on certain occasions. If replacement
+ functions are specified they must control all resources of the
+ specific type registered for the entity.
+
+ </quote>
+ </quote>
+
+To find out if a specific resource range conflicts with another
+resource the &s.code;xf86ChkConflict()&e.code; function may be used:
+ <quote><p>
+ &s.code;memType xf86ChkConflict(resRange *rgp, int entityIndex)&e.code;
+ <quote><p>
+ This function checks if the resource range &s.code;rgp&e.code; of
+ for the specified entity conflicts with with another resource.
+ If a conflict is found, the address of the start of the conflict
+ is returned. The return value is zero when there is no conflict.
+
+ </quote>
+ </quote>
+
+The OPERATING state properties of previously registered fixed resources
+can be set with the &s.code;xf86SetOperatingState()&e.code; function:
+ <quote><p>
+ &s.code;resPtr xf86SetOperatingState(resList list, int entityIndex,
+ &f.indent;int mask)&e.code;
+ <quote><p>
+ This function is used to set the status of a resource during
+ OPERATING state. &s.code;list&e.code; holds a list to which
+ &s.code;mask&e.code; is to be applied. The parameter
+ &s.code;mask&e.code; may have the value &s.code;ResUnusedOpr&e.code;
+ and &s.code;ResDisableOpr&e.code;. The first one should be used
+ if a resource isn't used by the driver during OPERATING state
+ although it is decoded by the device, while the latter one indicates
+ that the resource is not decoded during OPERATING state. Note
+ that the resource ranges have to match those specified during
+ registration. If a range has been specified starting at
+ &s.code;A&e.code; and ending at &s.code;B&e.code; and suppose
+ &s.code;C&e.code; us a value satisfying
+ &s.code;A&nbsp;&lt;&nbsp;C&nbsp;&lt;&nbsp;B&e.code; one may not
+ specify the resource range &s.code;(A,B)&e.code; by splitting it
+ into two ranges &s.code;(A,C)&e.code; and &s.code;(C,B)&e.code;.
+
+ </quote>
+ </quote>
+
+The following two functions are provided for special cases:
+ <quote><p>
+ &s.code;void xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex)&e.code;
+ <quote><p>
+ This function may be used to remove an entity from a screen. This
+ only makes sense if a screen has more than one entity assigned or
+ the screen is to be deleted. No test is made if the screen has
+ any entities left.
+
+ </quote>
+
+ &s.code;void xf86DeallocateResourcesForEntity(int entityIndex, long type)&e.code;
+ <quote><p>
+ This function deallocates all resources of a given type registered
+ for a certain entity from the resource broker list.
+
+ </quote>
+ </quote>
+
+<sect2>ScreenInit Phase
+<p>
+
+All that is required in this phase is to setup the RAC flags. Note that
+it is also permissible to set these flags up in the PreInit phase. The
+RAC flags are held in the &s.code;racIoFlags&e.code; and &s.code;racMemFlags&e.code; fields of the
+&s.code;ScrnInfoRec&e.code; for each screen. They specify which graphics operations
+might require the use of shared resources. This can be specified
+separately for memory and I/O resources. The available flags are defined
+in &s.code;rac/xf86RAC.h&e.code;. They are:
+
+ &s.code;RAC_FB&e.code;
+ <quote>
+ for framebuffer operations (including hw acceleration)
+ </quote>
+ &s.code;RAC_CURSOR&e.code;
+ <quote>
+ for Cursor operations
+ (??? I'm not sure if we need this for SW cursor it depends
+ on which level the sw cursor is drawn)
+ </quote>
+ &s.code;RAC_COLORMAP&e.code;
+ <quote>
+ for colormap operations
+ </quote>
+ &s.code;RAC_VIEWPORT&e.code;
+ <quote>
+ for the call to &s.code;ChipAdjustFrame()&e.code; </quote>
+
+
+The flags are ORed together.
+
+<sect>Config file ``Option'' entries<label id="options">
+<p>
+
+Option entries are permitted in most sections and subsections of the
+config file. There are two forms of option entries:
+
+<descrip>
+<tag>Option "option-name"</tag>
+ A boolean option.
+<tag>Option "option-name" "option-value"</tag>
+ An option with an arbitrary value.
+</descrip>
+
+The option entries are handled by the parser, and a list of the parsed
+options is included with each of the appropriate data structures that
+the drivers have access to. The data structures used to hold the option
+information are opaque to the driver, and a driver must not access the
+option data directly. Instead, the common layer provides a set of
+functions that may be used to access, check and manipulate the option
+data.
+
+First, the low level option handling functions. In most cases drivers
+would not need to use these directly.
+
+ <quote><p>
+ &s.code;pointer xf86FindOption(pointer options, const char *name)&e.code;
+ <quote><p>
+ Takes a list of options and an option name, and returns a handle
+ for the first option entry in the list matching the name. Returns
+ &s.code;NULL&e.code; if no match is found.
+
+ </quote>
+
+ &s.code;char *xf86FindOptionValue(pointer options, const char *name)&e.code;
+ <quote><p>
+ Takes a list of options and an option name, and returns the value
+ associated with the first option entry in the list matching the
+ name. If the matching option has no value, an empty string
+ (&s.code;""&e.code;) is returned. Returns &s.code;NULL&e.code;
+ if no match is found.
+
+ </quote>
+
+ &s.code;void xf86MarkOptionUsed(pointer option)&e.code;
+ <quote><p>
+ Takes a handle for an option, and marks that option as used.
+
+ </quote>
+
+ &s.code;void xf86MarkOptionUsedByName(pointer options, const char *name)&e.code;
+ <quote><p>
+ Takes a list of options and an option name and marks the first
+ option entry in the list matching the name as used.
+
+ </quote>
+ </quote>
+
+
+Next, the higher level functions that most drivers would use.
+ <quote><p>
+ &s.code;void xf86CollectOptions(ScrnInfoPtr pScrn, pointer extraOpts)&e.code;
+ <quote><p>
+ Collect the options from each of the config file sections used by
+ the screen (&s.code;pScrn&e.code;) and return the merged list as
+ &s.code;pScrn-&gt;options&e.code;. This function requires that
+ &s.code;pScrn-&gt;confScreen&e.code;, &s.code;pScrn-&gt;display&e.code;,
+ &s.code;pScrn-&gt;monitor&e.code;,
+ &s.code;pScrn-&gt;numEntities&e.code;, and
+ &s.code;pScrn-&gt;entityList&e.code; are initialised.
+ &s.code;extraOpts&e.code; may optionally be set to an additional
+ list of options to be combined with the others. The order of
+ precedence for options is &s.code;extraOpts&e.code;, display,
+ confScreen, monitor, device.
+
+ </quote>
+
+ &s.code;void xf86ProcessOptions(int scrnIndex, pointer options,
+ &f.indent;OptionInfoPtr optinfo)&e.code;
+ <quote><p>
+ Processes a list of options according to the information in the
+ array of &s.code;OptionInfoRecs&e.code; (&s.code;optinfo&e.code;).
+ The resulting information is stored in the &s.code;value&e.code;
+ fields of the appropriate &s.code;optinfo&e.code; entries. The
+ &s.code;found&e.code; fields are set to &s.code;TRUE&e.code;
+ when an option with a value of the correct type if found, and
+ &s.code;FALSE&e.code; otherwise. The &s.code;type&e.code; field
+ is used to determine the expected value type for each option.
+ Each option in the list of options for which there is a name match
+ (but not necessarily a value type match) is marked as used.
+ Warning messages are printed when option values don't match the
+ types specified in the optinfo data.
+
+ NOTE: If this function is called before a driver's screen number
+ is known (e.g., from the &s.code;ChipProbe()&e.code; function) a
+ &s.code;scrnIndex&e.code; value of &s.code;-1&e.code; should be
+ used.
+
+ NOTE 2: Given that this function stores into the
+ &s.code;OptionInfoRecs&e.code; pointed to by &s.code;optinfo&e.code,
+ the caller should ensure the &s.code;OptionInfoRecs&e.code; are
+ (re-)initialised before the call, especially if the caller expects
+ to use the predefined option values as defaults.
+
+ The &s.code;OptionInfoRec&e.code; is defined as follows:
+
+ <verb>
+ typedef struct {
+ double freq;
+ int units;
+ } OptFrequency;
+
+ typedef union {
+ unsigned long num;
+ char * str;
+ double realnum;
+ Bool bool;
+ OptFrequency freq;
+ } ValueUnion;
+
+ typedef enum {
+ OPTV_NONE = 0,
+ OPTV_INTEGER,
+ OPTV_STRING, /* a non-empty string */
+ OPTV_ANYSTR, /* Any string, including an empty one */
+ OPTV_REAL,
+ OPTV_BOOLEAN,
+ OPTV_FREQ
+ } OptionValueType;
+
+ typedef enum {
+ OPTUNITS_HZ = 1,
+ OPTUNITS_KHZ,
+ OPTUNITS_MHZ
+ } OptFreqUnits;
+
+ typedef struct {
+ int token;
+ const char* name;
+ OptionValueType type;
+ ValueUnion value;
+ Bool found;
+ } OptionInfoRec, *OptionInfoPtr;
+ </verb>
+
+ &s.code;OPTV_FREQ&e.code; can be used for options values that are
+ frequencies. These values are a floating point number with an
+ optional unit name appended. The unit name can be one of "Hz",
+ "kHz", "k", "MHz", "M". The multiplier associated with the unit
+ is stored in &s.code;freq.units&e.code;, and the scaled frequency
+ is stored in &s.code;freq.freq&e.code;. When no unit is specified,
+ &s.code;freq.units&e.code; is set to &s.code;0&e.code;, and
+ &s.code;freq.freq&e.code; is unscaled.
+
+ Typical usage is to setup an array of
+ &s.code;OptionInfoRecs&e.code; with all fields initialised.
+ The &s.code;value&e.code; and &s.code;found&e.code; fields get
+ set by &s.code;xf86ProcessOptions()&e.code;. For cases where the
+ value parsing is more complex, the driver should specify
+ &s.code;OPTV_STRING&e.code;, and parse the string itself. An
+ example of using this option handling is included in the
+ <ref id="sample" name="Sample Driver"> section.
+
+ </quote>
+
+ &s.code;void xf86ShowUnusedOptions(int scrnIndex, pointer options)&e.code;
+ <quote><p>
+ Prints out warning messages for each option in the list of options
+ that isn't marked as used. This is intended to show options that
+ the driver hasn't recognised. It would normally be called near
+ the end of the &s.code;ChipScreenInit()&e.code; function, but only
+ when &s.code;serverGeneration&nbsp;==&nbsp;1&e.code;.
+
+ </quote>
+
+ &s.code;OptionInfoPtr xf86TokenToOptinfo(const OptionInfoRec *table,
+ &f.indent;int token)&e.code;
+
+ <quote><p>
+ Returns a pointer to the &s.code;OptionInfoRec&e.code; in
+ &s.code;table&e.code; with a token field matching
+ &s.code;token&e.code;. Returns &s.code;NULL&e.code; if no match
+ is found.
+
+ </quote>
+
+ &s.code;Bool xf86IsOptionSet(const OptionInfoRec *table, int token)&e.code;
+ <quote><p>
+ Returns the &s.code;found&e.code; field of the
+ &s.code;OptionInfoRec&e.code; in &s.code;table&e.code; with a
+ &s.code;token&e.code; field matching &s.code;token&e.code;. This
+ can be used for options of all types. Note that for options of
+ type &s.code;OPTV_BOOLEAN&e.code;, it isn't sufficient to check
+ this to determine the value of the option. Returns
+ &s.code;FALSE&e.code; if no match is found.
+
+ </quote>
+
+ &s.code;char *xf86GetOptValString(const OptionInfoRec *table, int token)&e.code;
+ <quote><p>
+ Returns the &s.code;value.str&e.code; field of the
+ &s.code;OptionInfoRec&e.code; in &s.code;table&e.code; with a
+ token field matching &s.code;token&e.code;. Returns
+ &s.code;NULL&e.code; if no match is found.
+
+ </quote>
+
+ &s.code;Bool xf86GetOptValInteger(const OptionInfoRec *table, int token,
+ &f.indent;int *value)&e.code;
+ <quote><p>
+ Returns via &s.code;*value&e.code; the &s.code;value.num&e.code;
+ field of the &s.code;OptionInfoRec&e.code; in &s.code;table&e.code;
+ with a &s.code;token&e.code; field matching &s.code;token&e.code;.
+ &s.code;*value&e.code; is only changed when a match is found so
+ it can be safely initialised with a default prior to calling this
+ function. The function return value is as for
+ &s.code;xf86IsOptionSet()&e.code;.
+
+ </quote>
+
+ &s.code;Bool xf86GetOptValULong(const OptionInfoRec *table, int token,
+ &f.indent;unsigned long *value)&e.code;
+ <quote><p>
+ Like &s.code;xf86GetOptValInteger()&e.code;, except the value is
+ treated as an &s.code;unsigned long&e.code;.
+
+ </quote>
+
+ &s.code;Bool xf86GetOptValReal(const OptionInfoRec *table, int token,
+ &f.indent;double *value)&e.code;
+ <quote><p>
+ Like &s.code;xf86GetOptValInteger()&e.code;, except that
+ &s.code;value.realnum&e.code; is used.
+
+ </quote>
+
+ &s.code;Bool xf86GetOptValFreq(const OptionInfoRec *table, int token,
+ &f.indent;OptFreqUnits expectedUnits, double *value)&e.code;
+ <quote><p>
+ Like &s.code;xf86GetOptValInteger()&e.code;, except that the
+ &s.code;value.freq&e.code; data is returned. The frequency value
+ is scaled to the units indicated by &s.code;expectedUnits&e.code;.
+ The scaling is exact when the units were specified explicitly in
+ the option's value. Otherwise, the &s.code;expectedUnits&e.code;
+ field is used as a hint when doing the scaling. In this case,
+ values larger than &s.code;1000&e.code; are assumed to have be
+ specified in the next smallest units. For example, if the Option
+ value is "10000" and expectedUnits is &s.code;OPTUNITS_MHZ&e.code;,
+ the value returned is &s.code;10&e.code;.
+
+ </quote>
+
+ &s.code;Bool xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value)&e.code;
+ <quote><p>
+ This function is used to check boolean options
+ (&s.code;OPTV_BOOLEAN&e.code;). If the function return value is
+ &s.code;FALSE&e.code;, it means the option wasn't set. Otherwise
+ &s.code;*value&e.code; is set to the boolean value indicated by
+ the option's value. No option &s.code;value&e.code; is interpreted
+ as &s.code;TRUE&e.code;. Option values meaning &s.code;TRUE&e.code;
+ are "1", "yes", "on", "true", and option values meaning
+ &s.code;FALSE&e.code; are "0", "no", "off", "false". Option names
+ both with the "no" prefix in their names, and with that prefix
+ removed are also checked and handled in the obvious way.
+ &s.code;*value&e.code; is not changed when the option isn't present.
+ It should normally be set to a default value before calling this
+ function.
+
+ </quote>
+
+ &s.code;Bool xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def)&e.code;
+ <quote><p>
+ This function is used to check boolean options
+ (&s.code;OPTV_BOOLEAN&e.code;). If the option is set, its value
+ is returned. If the options is not set, the default value specified
+ by &s.code;def&e.code; is returned. The option interpretation is
+ the same as for &s.code;xf86GetOptValBool()&e.code;.
+
+ </quote>
+
+ &s.code;int xf86NameCmp(const char *s1, const char *s2)&e.code;
+ <quote><p>
+ This function should be used when comparing strings from the config
+ file with expected values. It works like &s.code;strcmp()&e.code;,
+ but is not case sensitive and space, tab, and `<tt>_</tt>' characters
+ are ignored in the comparison. The use of this function isn't
+ restricted to parsing option values. It may be used anywhere
+ where this functionality required.
+
+ </quote>
+ </quote>
+
+<sect>Modules, Drivers, Include Files and Interface Issues
+<p>
+
+NOTE: this section is incomplete.
+
+
+<sect1>Include files
+<p>
+
+The following include files are typically required by video drivers:
+
+ <quote><p>
+ All drivers should include these:
+ <quote>
+ &s.code;"xf86.h"&nl;
+ "xf86_OSproc.h"&nl;
+ "xf86_ansic.h"&nl;
+ "xf86Resources.h"&e.code;
+ </quote>
+ Wherever inb/outb (and related things) are used the following should be
+ included:
+ <quote>
+ &s.code;"compiler.h"&e.code;
+ </quote>
+ Note: in drivers, this must be included after &s.code;"xf86_ansic.h"&e.code;.
+
+ Drivers that need to access PCI vendor/device definitions need this:
+ <quote>
+ &s.code;"xf86PciInfo.h"&e.code;
+ </quote>
+
+ Drivers that need to access the PCI config space need this:
+ <quote>
+ &s.code;"xf86Pci.h"&e.code;
+ </quote>
+
+ Drivers that initialise a SW cursor need this:
+ <quote>
+ &s.code;"mipointer.h"&e.code;
+ </quote>
+
+ All drivers implementing backing store need this:
+ <quote>
+ &s.code;"mibstore.h"&e.code;
+ </quote>
+
+ All drivers using the mi colourmap code need this:
+ <quote>
+ &s.code;"micmap.h"&e.code;
+ </quote>
+
+ If a driver uses the vgahw module, it needs this:
+ <quote>
+ &s.code;"vgaHW.h"&e.code;
+ </quote>
+
+ Drivers supporting VGA or Hercules monochrome screens need:
+ <quote>
+ &s.code;"xf1bpp.h"&e.code;
+ </quote>
+
+ Drivers supporting VGA or EGC 16-colour screens need:
+ <quote>
+ &s.code;"xf4bpp.h"&e.code;
+ </quote>
+
+ Drivers using cfb need:
+ <quote>
+ &s.code;#define PSZ 8&nl;
+ #include "cfb.h"&nl;
+ #undef PSZ&e.code;
+ </quote>
+
+ Drivers supporting bpp 16, 24 or 32 with cfb need one or more of:
+ <quote>
+ &s.code;"cfb16.h"&nl;
+ "cfb24.h"&nl;
+ "cfb32.h"&e.code;
+ </quote>
+
+ If a driver uses XAA, it needs these:
+ <quote>
+ &s.code;"xaa.h"&nl;
+ "xaalocal.h"&e.code;
+ </quote>
+
+ If a driver uses the fb manager, it needs this:
+ <quote>
+ &s.code;"xf86fbman.h"&e.code;
+ </quote>
+ </quote>
+
+Non-driver modules should include &s.code;"xf86_ansic.h"&e.code; to get the correct
+wrapping of ANSI C/libc functions.
+
+All modules must NOT include any system include files, or the following:
+
+ <quote>
+ &s.code;"xf86Priv.h"&nl;
+ "xf86Privstr.h"&nl;
+ "xf86_OSlib.h"&nl;
+ "Xos.h"&e.code;
+ </quote>
+
+In addition, "xf86_libc.h" must not be included explicitly. It is
+included implicitly by "xf86_ansic.h".
+
+
+<sect>Offscreen Memory Manager
+<p>
+
+Management of offscreen video memory may be handled by the XFree86
+framebuffer manager. Once the offscreen memory manager is running,
+drivers or extensions may allocate, free or resize areas of offscreen
+video memory using the following functions (definitions taken from
+&s.code;xf86fbman.h&e.code;):
+
+<code>
+ typedef struct _FBArea {
+ ScreenPtr pScreen;
+ BoxRec box;
+ int granularity;
+ void (*MoveAreaCallback)(struct _FBArea*, struct _FBArea*)
+ void (*RemoveAreaCallback)(struct _FBArea*)
+ DevUnion devPrivate;
+ } FBArea, *FBAreaPtr;
+
+ typedef void (*MoveAreaCallbackProcPtr)(FBAreaPtr from, FBAreaPtr to)
+ typedef void (*RemoveAreaCallbackProcPtr)(FBAreaPtr)
+
+ FBAreaPtr xf86AllocateOffscreenArea (
+ ScreenPtr pScreen,
+ int width, int height,
+ int granularity,
+ MoveAreaCallbackProcPtr MoveAreaCallback,
+ RemoveAreaCallbackProcPtr RemoveAreaCallback,
+ pointer privData
+ )
+
+ void xf86FreeOffscreenArea (FBAreaPtr area)
+
+ Bool xf86ResizeOffscreenArea (
+ FBAreaPtr area
+ int w, int h
+ )
+</code>
+
+The function:
+<quote>
+ &s.code;Bool xf86FBManagerRunning(ScreenPtr pScreen)&e.code;
+</quote>
+
+can be used by an extension to check if the driver has initialized
+the memory manager. The manager is not available if this returns
+&s.code;FALSE&e.code; and the functions above will all fail.
+
+
+&s.code;xf86AllocateOffscreenArea()&e.code; can be used to request a
+rectangle of dimensions &s.code;width&e.code; x &s.code;height&e.code;
+(in pixels) from unused offscreen memory. &s.code;granularity&e.code;
+specifies that the leftmost edge of the rectangle must lie on some
+multiple of &s.code;granularity&e.code; pixels. A granularity of zero
+means the same thing as a granularity of one - no alignment preference.
+A &s.code;MoveAreaCallback&e.code; can be provided to notify the requester
+when the offscreen area is moved. If no &s.code;MoveAreaCallback&e.code;
+is supplied then the area is considered to be immovable. The
+&s.code;privData&e.code; field will be stored in the manager's internal
+structure for that allocated area and will be returned to the requester
+in the &s.code;FBArea&e.code; passed via the
+&s.code;MoveAreaCallback&e.code;. An optional
+&s.code;RemoveAreaCallback&e.code; is provided. If the driver provides
+this it indicates that the area should be allocated with a lower priority.
+Such an area may be removed when a higher priority request (one that
+doesn't have a &s.code;RemoveAreaCallback&e.code;) is made. When this
+function is called, the driver will have an opportunity to do whatever
+cleanup it needs to do to deal with the loss of the area, but it must
+finish its cleanup before the function exits since the offscreen memory
+manager will free the area immediately after.
+
+&s.code;xf86AllocateOffscreenArea()&e.code; returns &s.code;NULL&e.code;
+if it was unable to allocate the requested area. When no longer needed,
+areas should be freed with &s.code;xf86FreeOffscreenArea()&e.code;.
+
+&s.code;xf86ResizeOffscreenArea()&e.code; resizes an existing
+&s.code;FBArea&e.code;. &s.code;xf86ResizeOffscreenArea()&e.code;
+returns &s.code;TRUE&e.code; if the resize was successful. If
+&s.code;xf86ResizeOffscreenArea()&e.code; returns &s.code;FALSE&e.code;,
+the original &s.code;FBArea&e.code; is left unmodified. Resizing an
+area maintains the area's original &s.code;granularity&e.code;,
+&s.code;devPrivate&e.code;, and &s.code;MoveAreaCallback&e.code;.
+&s.code;xf86ResizeOffscreenArea()&e.code; has considerably less overhead
+than freeing the old area then reallocating the new size, so it should
+be used whenever possible.
+
+The function:
+ <quote>
+ &s.code;Bool xf86QueryLargestOffscreenArea(
+ &f.indent;ScreenPtr pScreen,
+ &f.indent;int *width, int *height,
+ &f.indent;int granularity,
+ &f.indent;int preferences,
+ &f.indent;int priority
+ &nl)&e.code;
+ </quote>
+
+is provided to query the width and height of the largest single
+&s.code;FBArea&e.code; allocatable given a particular priority.
+&s.code;preferences&e.code; can be one of the following to indicate
+whether width, height or area should be considered when determining
+which is the largest single &s.code;FBArea&e.code; available.
+
+ <quote>
+ &s.code;FAVOR_AREA_THEN_WIDTH&nl;
+ FAVOR_AREA_THEN_HEIGHT&nl;
+ FAVOR_WIDTH_THEN_AREA&nl;
+ FAVOR_HEIGHT_THEN_AREA&e.code;
+ </quote>
+
+&s.code;priority&e.code; is one of the following:
+
+ <quote><p>
+ &s.code;PRIORITY_LOW&e.code;
+ <quote><p>
+ Return the largest block available without stealing anyone else's
+ space. This corresponds to the priority of allocating a
+ &s.code;FBArea&e.code; when a &s.code;RemoveAreaCallback&e.code;
+ is provided.
+
+ </quote>
+ &s.code;PRIORITY_NORMAL&e.code;
+ <quote><p>
+ Return the largest block available if it is acceptable to steal a
+ lower priority area from someone. This corresponds to the priority
+ of allocating a &s.code;FBArea&e.code; without providing a
+ &s.code;RemoveAreaCallback&e.code;.
+
+ </quote>
+ &s.code;PRIORITY_EXTREME&e.code;
+ <quote><p>
+ Return the largest block available if all &s.code;FBAreas&e.code;
+ that aren't locked down were expunged from memory first. This
+ corresponds to any allocation made directly after a call to
+ &s.code;xf86PurgeUnlockedOffscreenAreas()&e.code;.
+
+ </quote>
+ </quote>
+
+
+The function:
+
+ <quote>
+ &s.code;Bool xf86PurgeUnlockedOffscreenAreas(ScreenPtr pScreen)&e.code;
+ </quote>
+
+is provided as an extreme method to free up offscreen memory. This
+will remove all removable &s.code;FBArea&e.code; allocations.
+
+
+Initialization of the XFree86 framebuffer manager is done via
+
+ <quote>
+ &s.code;Bool xf86InitFBManager(ScreenPtr pScreen, BoxPtr FullBox)&e.code;
+ </quote>
+
+&s.code;FullBox&e.code; represents the area of the framebuffer that the
+manager is allowed to manage. This is typically a box with a width of
+&s.code;pScrn-&gt;displayWidth&e.code; and a height of as many lines as
+can be fit within the total video memory, however, the driver can reserve
+areas at the extremities by passing a smaller area to the manager.
+
+&s.code;xf86InitFBManager()&e.code; must be called before XAA is
+initialized since XAA uses the manager for it's pixmap cache.
+
+An alternative function is provided to allow the driver to initialize
+the framebuffer manager with a Region rather than a box.
+
+ <quote>
+ &s.code;Bool xf86InitFBManagerRegion(ScreenPtr pScreen,
+ &f.indent;RegionPtr FullRegion)&e.code;
+ </quote>
+
+&s.code;xf86InitFBManagerRegion()&e.code;, unlike
+&s.code;xf86InitFBManager()&e.code;, does not remove the area used for
+the visible screen so that area should not be included in the region
+passed to the function. &s.code;xf86InitFBManagerRegion()&e.code; is
+useful when non-contiguous areas are available to be managed, and is
+required when multiple framebuffers are stored in video memory (as in
+the case where an overlay of a different depth is stored as a second
+framebuffer in offscreen memory).
+
+
+<sect>Colormap Handling<label id="cmap">
+<p>
+
+A generic colormap handling layer is provided within the XFree86 common
+layer. This layer takes care of most of the details, and only requires
+a function from the driver that loads the hardware palette when required.
+To use the colormap layer, a driver calls the
+&s.code;xf86HandleColormaps()&e.code; function.
+
+ <quote><p>
+ &s.code;Bool xf86HandleColormaps(ScreenPtr pScreen, int maxColors,
+ &f.indent;int sigRGBbits, LoadPaletteFuncPtr loadPalette,
+ &f.indent;SetOverscanFuncPtr setOverscan,
+ unsigned int flags)&e.code;
+ <quote><p>
+ This function must be called after the default colormap has been
+ initialised. The &s.code;pScrn-&gt;gamma&e.code; field must also
+ be initialised, preferably by calling &s.code;xf86SetGamma()&e.code;.
+ &s.code;maxColors&e.code; is the number of entries in the palette.
+ &s.code;sigRGBbits&e.code; is the size in bits of each color
+ component in the DAC's palette. &s.code;loadPalette&e.code;
+ is a driver-provided function for loading a colormap into the
+ hardware, and is described below. &s.code;setOverscan&e.code; is
+ an optional function that may be provided when the overscan color
+ is an index from the standard LUT and when it needs to be adjusted
+ to keep it as close to black as possible. The
+ &s.code;setOverscan&e.code; function programs the overscan index.
+ It shouldn't normally be used for depths other than 8.
+ &s.code;setOverscan&e.code; should be set to &s.code;NULL&e.code;
+ when it isn't needed. &s.code;flags&e.code; may be set to the
+ following (which may be ORed together):
+
+ &s.code;CMAP_PALETTED_TRUECOLOR&e.code;
+ <quote><p>
+ the TrueColor visual is paletted and is
+ just a special case of DirectColor.
+ This flag is only valid for
+ &s.code;bpp&nbsp;&gt;&nbsp;8&e.code;.
+
+ </quote>
+
+ &s.code;CMAP_RELOAD_ON_MODE_SWITCH&e.code;
+ <quote><p>
+ reload the colormap automatically
+ after mode switches. This is useful
+ for when the driver is resetting the
+ hardware during mode switches and
+ corrupting or erasing the hardware
+ palette.
+
+ </quote>
+
+ &s.code;CMAP_LOAD_EVEN_IF_OFFSCREEN&e.code;
+ <quote><p>
+ reload the colormap even if the screen
+ is switched out of the server's VC.
+ The palette is <it>not</it> reloaded when
+ the screen is switched back in, nor after
+ mode switches. This is useful when the
+ driver needs to keep track of palette
+ changes.
+
+ </quote>
+
+ The colormap layer normally reloads the palette after VT enters so it
+ is not necessary for the driver to save and restore the palette
+ when switching VTs. The driver must, however, still save the
+ initial palette during server start up and restore it during
+ server exit.
+
+ </quote>
+
+ &s.code;void LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
+ &f.indent;LOCO *colors, VisualPtr pVisual)&e.code;
+ <quote><p>
+ &s.code;LoadPalette()&e.code; is a driver-provided function for
+ loading a colormap into hardware. &s.code;colors&e.code; is the
+ array of RGB values that represent the full colormap.
+ &s.code;indices&e.code; is a list of index values into the colors
+ array. These indices indicate the entries that need to be updated.
+ &s.code;numColors&e.code; is the number of the indices to be
+ updated.
+
+ </quote>
+
+ &s.code;void SetOverscan(ScrnInfoPtr pScrn, int overscan)&e.code;
+ <quote><p>
+ &s.code;SetOverscan()&e.code; is a driver-provided function for
+ programming the &s.code;overscan&e.code; index. As described
+ above, it is normally only appropriate for LUT modes where all
+ colormap entries are available for the display, but where one of
+ them is also used for the overscan (typically 8bpp for VGA compatible
+ LUTs). It isn't required in cases where the overscan area is
+ never visible.
+
+ </quote>
+ </quote>
+
+
+<sect>DPMS Extension
+<p>
+
+Support code for the DPMS extension is included in the XFree86 common layer.
+This code provides an interface between the main extension code, and a means
+for drivers to initialise DPMS when they support it. One function is
+available to drivers to do this initialisation, and it is always available,
+even when the DPMS extension is not supported by the core server (in
+which case it returns a failure result).
+
+
+ <quote><p>
+ &s.code;Bool xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags)&e.code;
+ <quote><p>
+ This function registers a driver's DPMS level programming function
+ &s.code;set&e.code;. It also checks
+ &s.code;pScrn-&gt;options&e.code; for the "dpms" option, and when
+ present marks DPMS as being enabled for that screen. The
+ &s.code;set&e.code; function is called whenever the DPMS level
+ changes, and is used to program the requested level.
+ &s.code;flags&e.code; is currently not used, and should be
+ &s.code;0&e.code;. If the initialisation fails for any reason,
+ including when there is no DPMS support in the core server, the
+ function returns &s.code;FALSE&e.code;.
+
+ </quote>
+ </quote>
+
+
+Drivers that implement DPMS support must provide the following function,
+that gets called when the DPMS level is changed:
+
+
+ <quote><p>
+ &s.code;void ChipDPMSSet(ScrnInfoPtr pScrn, int level, int flags)&e.code;
+ <quote><p>
+ Program the DPMS level specified by &s.code;level&e.code;. Valid
+ values of &s.code;level&e.code; are &s.code;DPMSModeOn&e.code;,
+ &s.code;DPMSModeStandby&e.code;, &s.code;DPMSModeSuspend&e.code;,
+ &s.code;DPMSModeOff&e.code;. These values are defined in
+ &s.code;"extensions/dpms.h"&e.code;.
+
+ </quote>
+ </quote>
+
+
+<sect>DGA Extension
+<p>
+
+Drivers can support the XFree86 Direct Graphics Architecture (DGA) by
+filling out a structure of function pointers and a list of modes and
+passing them to DGAInit.
+
+ <quote><p>
+ &s.code;Bool DGAInit(ScreenPtr pScreen, DGAFunctionPtr funcs,
+ &f.indent;DGAModePtr modes, int num)&e.code;
+ <quote><p>
+ <verb>
+/** The DGAModeRec **/
+
+typedef struct {
+ int num;
+ DisplayModePtr mode;
+ int flags;
+ int imageWidth;
+ int imageHeight;
+ int pixmapWidth;
+ int pixmapHeight;
+ int bytesPerScanline;
+ int byteOrder;
+ int depth;
+ int bitsPerPixel;
+ unsigned long red_mask;
+ unsigned long green_mask;
+ unsigned long blue_mask;
+ int viewportWidth;
+ int viewportHeight;
+ int xViewportStep;
+ int yViewportStep;
+ int maxViewportX;
+ int maxViewportY;
+ int viewportFlags;
+ int offset;
+ unsigned char *address;
+ int reserved1;
+ int reserved2;
+} DGAModeRec, *DGAModePtr;
+</verb>
+
+ &s.code;num&e.code;
+ <quote>
+ Can be ignored. The DGA DDX will assign these numbers.
+ </quote>
+
+ &s.code;mode&e.code;
+ <quote>
+ A pointer to the &s.code;DisplayModeRec&e.code; for this mode.
+ </quote>
+
+ &s.code;flags&e.code;
+ <quote><p>
+ The following flags are defined and may be OR'd together:
+
+ &s.code;DGA_CONCURRENT_ACCESS&e.code;
+ <quote><p>
+ Indicates that the driver supports concurrent graphics
+ accelerator and linear framebuffer access.
+
+ </quote>
+
+ &s.code;DGA_FILL_RECT&nl;
+ DGA_BLIT_RECT&nl;
+ DGA_BLIT_RECT_TRANS&e.code;
+ <quote><p>
+ Indicates that the driver supports the FillRect, BlitRect
+ or BlitTransRect functions in this mode.
+
+ </quote>
+
+ &s.code;DGA_PIXMAP_AVAILABLE&e.code;
+ <quote><p>
+ Indicates that Xlib may be used on the framebuffer.
+ This flag will usually be set unless the driver wishes
+ to prohibit this for some reason.
+
+ </quote>
+
+ &s.code;DGA_INTERLACED&nl;
+ DGA_DOUBLESCAN&e.code;
+ <quote><p>
+ Indicates that these are interlaced or double scan modes.
+
+ </quote>
+ </quote>
+
+ &s.code;imageWidth&nl;
+ imageHeight&e.code;
+ <quote><p>
+ These are the dimensions of the linear framebuffer
+ accessible by the client.
+
+ </quote>
+
+ &s.code;pixmapWidth&nl;
+ pixmapHeight&e.code;
+ <quote><p>
+ These are the dimensions of the area of the
+ framebuffer accessible by the graphics accelerator.
+
+ </quote>
+
+ &s.code;bytesPerScanline&e.code;
+ <quote><p>
+ Pitch of the framebuffer in bytes.
+
+ </quote>
+
+ &s.code;byteOrder&e.code;
+ <quote><p>
+ Usually the same as
+ &s.code;pScrn-&gt;imageByteOrder&e.code;.
+
+ </quote>
+
+ &s.code;depth&e.code;
+ <quote><p>
+ The depth of the framebuffer in this mode.
+
+ </quote>
+
+ &s.code;bitsPerPixel&e.code;
+ <quote><p>
+ The number of bits per pixel in this mode.
+
+ </quote>
+
+ &s.code;red_mask&nl;
+ green_mask&nl;
+ blue_mask&e.code;
+ <quote><p>
+ The RGB masks for this mode, if applicable.
+
+ </quote>
+
+ &s.code;viewportWidth&nl;
+ viewportHeight&e.code;
+ <quote><p>
+ Dimensions of the visible part of the framebuffer.
+ Usually &s.code;mode-&gt;HDisplay&e.code; and
+ &s.code;mode-&gt;VDisplay&e.code;.
+
+ </quote>
+
+ &s.code;xViewportStep&nl;
+ yViewportStep&e.code;
+ <quote><p>
+ The granularity of x and y viewport positions that
+ the driver supports in this mode.
+
+ </quote>
+
+ &s.code;maxViewportX&nl;
+ maxViewportY&e.code;
+ <quote><p>
+ The maximum viewport position supported by the
+ driver in this mode.
+
+ </quote>
+
+ &s.code;viewportFlags&e.code;
+ <quote><p>
+ The following may be OR'd together:
+
+ &s.code;DGA_FLIP_IMMEDIATE&e.code;
+ <quote><p>
+ The driver supports immediate viewport changes.
+
+ </quote>
+ &s.code;DGA_FLIP_RETRACE&e.code;
+ <quote<p>
+ The driver supports viewport changes at retrace.
+
+ </quote>
+ </quote>
+
+ &s.code;offset&e.code;
+ <quote><p>
+ The offset into the linear framebuffer that corresponds to
+ pixel (0,0) for this mode.
+
+ </quote>
+
+ &s.code;address&e.code;
+ <quote><p>
+ The virtual address of the framebuffer as mapped by the driver.
+ This is needed when DGA_PIXMAP_AVAILABLE is set.
+
+ </quote>
+
+ <verb>
+/** The DGAFunctionRec **/
+
+typedef struct {
+ Bool (*OpenFramebuffer)(
+ ScrnInfoPtr pScrn,
+ char **name,
+ unsigned char **mem,
+ int *size,
+ int *offset,
+ int *extra
+ );
+ void (*CloseFramebuffer)(ScrnInfoPtr pScrn);
+ Bool (*SetMode)(ScrnInfoPtr pScrn, DGAModePtr pMode);
+ void (*SetViewport)(ScrnInfoPtr pScrn, int x, int y, int flags);
+ int (*GetViewport)(ScrnInfoPtr pScrn);
+ void (*Sync)(ScrnInfoPtr);
+ void (*FillRect)(
+ ScrnInfoPtr pScrn,
+ int x, int y, int w, int h,
+ unsigned long color
+ );
+ void (*BlitRect)(
+ ScrnInfoPtr pScrn,
+ int srcx, int srcy,
+ int w, int h,
+ int dstx, int dsty
+ );
+ void (*BlitTransRect)(
+ ScrnInfoPtr pScrn,
+ int srcx, int srcy,
+ int w, int h,
+ int dstx, int dsty,
+ unsigned long color
+ );
+} DGAFunctionRec, *DGAFunctionPtr;
+</verb>
+
+ </quote>
+
+ &s.code;Bool OpenFramebuffer (pScrn, name, mem, size, offset, extra)&e.code;
+ <quote><p>
+ &s.code;OpenFramebuffer()&e.code; should pass the client everything
+ it needs to know to be able to open the framebuffer. These
+ parameters are OS specific and their meanings are to be interpreted
+ by an OS specific client library.
+
+ &s.code;name&e.code;
+ <quote><p>
+ The name of the device to open or &s.code;NULL&e.code; if
+ there is no special device to open. A &s.code;NULL&e.code;
+ name tells the client that it should open whatever device
+ one would usually open to access physical memory.
+
+ </quote>
+ &s.code;mem&e.code;
+ <quote><p>
+ The physical address of the start of the framebuffer.
+
+ </quote>
+ &s.code;size&e.code;
+ <quote><p>
+ The size of the framebuffer in bytes.
+
+ </quote>
+ &s.code;offset&e.code;
+ <quote><p>
+ Any offset into the device, if applicable.
+
+ </quote>
+ &s.code;flags&e.code;
+ <quote><p>
+ Any additional information that the client may need.
+ Currently, only the &s.code;DGA_NEED_ROOT&e.code; flag is
+ defined.
+
+ </quote>
+ </quote>
+
+ &s.code;void CloseFramebuffer (pScrn)&e.code;
+ <quote><p>
+ &s.code;CloseFramebuffer()&e.code; merely informs the driver (if it
+ even cares) that client no longer needs to access the framebuffer
+ directly. This function is optional.
+
+ </quote>
+
+ &s.code;Bool SetMode (pScrn, pMode)&e.code;
+ <quote><p>
+ &s.code;SetMode()&e.code; tells the driver to initialize the mode
+ passed to it. If &s.code;pMode&e.code; is &s.code;NULL&e.code;,
+ then the driver should restore the original pre-DGA mode.
+
+ </quote>
+
+ &s.code;void SetViewport (pScrn, x, y, flags)&e.code;
+ <quote><p>
+ &s.code;SetViewport()&e.code; tells the driver to make the upper
+ left-hand corner of the visible screen correspond to coordinate
+ &s.code;(x,y)&e.code; on the framebuffer. &s.code;Flags&e.code;
+ currently defined are:
+
+ &s.code;DGA_FLIP_IMMEDIATE&e.code;
+ <quote><p>
+ The viewport change should occur immediately.
+
+ </quote>
+ &s.code;DGA_FLIP_RETRACE&e.code;
+ <quote><p>
+ The viewport change should occur at the
+ vertical retrace, but this function should
+ return sooner if possible.
+
+ </quote>
+ The &s.code;(x,y)&e.code; locations will be passed as the client
+ specified them, however, the driver is expected to round these
+ locations down to the next supported location as specified by the
+ &s.code;xViewportStep&e.code; and &s.code;yViewportStep&e.code;
+ for the current mode.
+
+ </quote>
+
+ &s.code;int GetViewport (pScrn)&e.code;
+ <quote><p>
+ &s.code;GetViewport()&e.code; gets the current page flip status.
+ Set bits in the returned int correspond to viewport change requests
+ still pending. For instance, set bit zero if the last SetViewport
+ request is still pending, bit one if the one before that is still
+ pending, etc.
+
+ </quote>
+
+ &s.code;void Sync (pScrn)&e.code;
+ <quote><p>
+ This function should ensure that any graphics accelerator operations
+ have finished. This function should not return until the graphics
+ accelerator is idle.
+
+ </quote>
+
+ &s.code;void FillRect (pScrn, x, y, w, h, color)&e.code;
+ <quote><p>
+ This optional function should fill a rectangle
+ &s.code;w&nbsp;&times;&nbsp;h&e.code; located at
+ &s.code;(x,y)&e.code; in the given color.
+
+ </quote>
+
+ &s.code;void BlitRect (pScrn, srcx, srcy, w, h, dstx, dsty)&e.code;
+ <quote><p>
+ This optional function should copy an area
+ &s.code;w&nbsp;&times;&nbsp;h&e.code; located at
+ &s.code;(srcx,srcy)&e.code; to location &s.code;(dstx,dsty)&e.code;.
+ This function will need to handle copy directions as appropriate.
+
+ </quote>
+
+ &s.code;void BlitTransRect (pScrn, srcx, srcy, w, h, dstx, dsty, color)&e.code;
+ <quote><p>
+ This optional function is the same as BlitRect except that pixels
+ in the source corresponding to the color key &s.code;color&e.code;
+ should be skipped.
+
+ </quote>
+ </quote>
+
+<sect>The XFree86 X Video Extension (Xv) Device Dependent Layer
+<p>
+
+XFree86 offers the X Video Extension which allows clients to treat video
+as any another primitive and ``Put'' video into drawables. By default,
+the extension reports no video adaptors as being available since the
+DDX layer has not been initialized. The driver can initialize the DDX
+layer by filling out one or more &s.code;XF86VideoAdaptorRecs&e.code;
+as described later in this document and passing a list of
+&s.code;XF86VideoAdaptorPtr&e.code; pointers to the following function:
+
+ <quote>
+ &s.code;Bool xf86XVScreenInit(
+ &f.indent;ScreenPtr pScreen,
+ &f.indent;XF86VideoAdaptorPtr *adaptPtrs,
+ &f.indent;int num)&e.code;
+ </quote>
+
+After doing this, the extension will report video adaptors as being
+available, providing the data in their respective
+&s.code;XF86VideoAdaptorRecs&e.code; was valid.
+&s.code;xf86XVScreenInit()&e.code; <em>copies</em> data from the structure
+passed to it so the driver may free it after the initialization. At
+the moment, the DDX only supports rendering into Window drawables.
+Pixmap rendering will be supported after a sufficient survey of suitable
+hardware is completed.
+
+The &s.code;XF86VideoAdaptorRec&e.code;:
+
+<quote><p>
+<verb>
+typedef struct {
+ unsigned int type;
+ int flags;
+ char *name;
+ int nEncodings;
+ XF86VideoEncodingPtr pEncodings;
+ int nFormats;
+ XF86VideoFormatPtr pFormats;
+ int nPorts;
+ DevUnion *pPortPrivates;
+ int nAttributes;
+ XF86AttributePtr pAttributes;
+ int nImages;
+ XF86ImagePtr pImages;
+ PutVideoFuncPtr PutVideo;
+ PutStillFuncPtr PutStill;
+ GetVideoFuncPtr GetVideo;
+ GetStillFuncPtr GetStill;
+ StopVideoFuncPtr StopVideo;
+ SetPortAttributeFuncPtr SetPortAttribute;
+ GetPortAttributeFuncPtr GetPortAttribute;
+ QueryBestSizeFuncPtr QueryBestSize;
+ PutImageFuncPtr PutImage;
+ QueryImageAttributesFuncPtr QueryImageAttributes;
+} XF86VideoAdaptorRec, *XF86VideoAdaptorPtr;
+</verb>
+
+ Each adaptor will have its own XF86VideoAdaptorRec. The fields are
+ as follows:
+
+ &s.code;type&e.code;
+ <quote><p>
+ This can be any of the following flags OR'd together.
+
+ &s.code;XvInputMask&e.code;
+ &s.code;XvOutputMask&e.code;
+ <quote><p>
+ These refer to the target drawable and are similar to a Window's
+ class. &s.code;XvInputMask&e.code; indicates that the adaptor
+ can put video into a drawable. &s.code;XvOutputMask&e.code;
+ indicates that the adaptor can get video from a drawable.
+ </quote>
+
+ &s.code;XvVideoMask&e.code;
+ &s.code;XvStillMask&e.code;
+ &s.code;XvImageMask&e.code;
+ <quote><p>
+ These indicate that the adaptor supports video, still or
+ image primitives respectively.
+ </quote>
+
+ &s.code;XvWindowMask&e.code;
+ &s.code;XvPixmapMask&e.code;
+ <quote><p>
+ These indicate the types of drawables the adaptor is capable
+ of rendering into. At the moment, Pixmap rendering is not
+ supported and the &s.code;XvPixmapMask&e.code; flag is ignored.
+ </quote>
+
+ </quote>
+
+ &s.code;flags&e.code;
+ <quote><p>
+ Currently, the following flags are defined:
+
+ &s.code;VIDEO_NO_CLIPPING&e.code;
+ <quote><p>
+ This indicates that the video adaptor does not support
+ clipping. The driver will never receive ``Put'' requests
+ where less than the entire area determined by
+ &s.code;drw_x&e.code;, &s.code;drw_y&e.code;,
+ &s.code;drw_w&e.code; and &s.code;drw_h&e.code; is visible.
+ This flag does not apply to ``Get'' requests. Hardware
+ that is incapable of clipping ``Gets'' may punt or get
+ the extents of the clipping region passed to it.
+
+ </quote>
+
+ &s.code;VIDEO_INVERT_CLIPLIST&e.code;
+ <quote><p>
+ This indicates that the video driver requires the clip
+ list to contain the regions which are obscured rather
+ than the regions which are are visible.
+
+ </quote>
+
+ &s.code;VIDEO_OVERLAID_STILLS&e.code;
+ <quote><p>
+ Implementing PutStill for hardware that does video as an
+ overlay can be awkward since it's unclear how long to leave
+ the video up for. When this flag is set, StopVideo will be
+ called whenever the destination gets clipped or moved so that
+ the still can be left up until then.
+
+ </quote>
+
+ &s.code;VIDEO_OVERLAID_IMAGES&e.code;
+ <quote><p>
+ Same as &s.code;VIDEO_OVERLAID_STILLS&e.code; but for images.
+ </quote>
+
+ &s.code;VIDEO_CLIP_TO_VIEWPORT&e.code;
+ <quote><p>
+ Indicates that the clip region passed to the driver functions
+ should be clipped to the visible portion of the screen in the
+ case where the viewport is smaller than the virtual desktop.
+ </quote>
+
+ </quote>
+
+ &s.code;name&e.code;
+ <quote><p>
+ The name of the adaptor.
+
+ </quote>
+
+ &s.code;nEncodings&nl;
+ pEncodings&e.code;
+ <quote><p>
+ The number of encodings the adaptor is capable of and pointer
+ to the &s.code;XF86VideoEncodingRec&e.code; array. The
+ &s.code;XF86VideoEncodingRec&e.code; is described later on.
+ For drivers that only support XvImages there should be an encoding
+ named "XV_IMAGE" and the width and height should specify
+ the maximum size source image supported.
+
+ </quote>
+
+ &s.code;nFormats&nl;
+ pFormats&e.code;
+ <quote><p>
+ The number of formats the adaptor is capable of and pointer to
+ the &s.code;XF86VideoFormatRec&e.code; array. The
+ &s.code;XF86VideoFormatRec&e.code; is described later on.
+
+ </quote>
+
+ &s.code;nPorts&nl;
+ pPortPrivates&e.code;
+ <quote><p>
+ The number of ports is the number of separate data streams which
+ the adaptor can handle simultaneously. If you have more than
+ one port, the adaptor is expected to be able to render into more
+ than one window at a time. &s.code;pPortPrivates&e.code; is
+ an array of pointers or ints - one for each port. A port's
+ private data will be passed to the driver any time the port is
+ requested to do something like put the video or stop the video.
+ In the case where there may be many ports, this enables the
+ driver to know which port the request is intended for. Most
+ commonly, this will contain a pointer to the data structure
+ containing information about the port. In Xv, all ports on
+ a particular adaptor are expected to be identical in their
+ functionality.
+
+ </quote>
+
+ &s.code;nAttributes&nl;
+ pAttributes&e.code;
+ <quote><p>
+ The number of attributes recognized by the adaptor and a pointer to
+ the array of &s.code;XF86AttributeRecs&e.code;. The
+ &s.code;XF86AttributeRec&e.code; is described later on.
+
+ </quote>
+
+ &s.code;nImages&nl;
+ pImages&e.code;
+ <quote><p>
+ The number of &s.code;XF86ImageRecs&e.code; supported by the adaptor
+ and a pointer to the array of &s.code;XF86ImageRecs&e.code;. The
+ &s.code;XF86ImageRec&e.code; is described later on.
+
+ </quote>
+
+
+ &s.code;PutVideo PutStill GetVideo GetStill StopVideo
+ SetPortAttribute GetPortAttribute QueryBestSize PutImage
+ QueryImageAttributes&e.code;
+ <quote><p>
+ These functions define the DDX-&gt;driver interface. In each
+ case, the pointer &s.code;data&e.code; is passed to the driver.
+ This is the port private for that port as described above. All
+ fields are required except under the following conditions:
+
+ <enum>
+ <item>&s.code;PutVideo&e.code;, &s.code;PutStill&e.code; and
+ the image routines &s.code;PutImage&e.code; and
+ &s.code;QueryImageAttributes&e.code; are not required when the
+ adaptor type does not contain &s.code;XvInputMask&e.code;.
+
+ <item>&s.code;GetVideo&e.code; and &s.code;GetStill&e.code;
+ are not required when the adaptor type does not contain
+ &s.code;XvOutputMask&e.code;.
+
+ <item>&s.code;GetVideo&e.code; and &s.code;PutVideo&e.code;
+ are not required when the adaptor type does not contain
+ &s.code;XvVideoMask&e.code;.
+
+ <item>&s.code;GetStill&e.code; and &s.code;PutStill&e.code;
+ are not required when the adaptor type does not contain
+ &s.code;XvStillMask&e.code;.
+
+ <item>&s.code;PutImage&e.code; and &s.code;QueryImageAttributes&e.code;
+ are not required when the adaptor type does not contain
+ &s.code;XvImageMask&e.code;.
+
+ </enum>
+
+ With the exception of &s.code;QueryImageAttributes&e.code;, these
+ functions should return &s.code;Success&e.code; if the operation was
+ completed successfully. They can return &s.code;XvBadAlloc&e.code;
+ otherwise. &s.code;QueryImageAttributes&e.code; returns the size
+ of the XvImage queried.
+
+ If the &s.code;VIDEO_NO_CLIPPING&e.code;
+ flag is set, the &s.code;clipBoxes&e.code; may be ignored by
+ the driver. &s.code;ClipBoxes&e.code; is an &s.code;X-Y&e.code;
+ banded region identical to those used throughout the server.
+ The clipBoxes represent the visible portions of the area determined
+ by &s.code;drw_x&e.code;, &s.code;drw_y&e.code;,
+ &s.code;drw_w&e.code; and &s.code;drw_h&e.code; in the Get/Put
+ function. The boxes are in screen coordinates, are guaranteed
+ not to overlap and an empty region will never be passed.
+ If the driver has specified &s.code;VIDEO_INVERT_CLIPLIST&e.code;,
+ &s.code;clipBoxes&e.code; will indicate the areas of the primitive
+ which are obscured rather than the areas visible.
+
+ </quote>
+
+ &s.code;typedef int (* PutVideoFuncPtr)( ScrnInfoPtr pScrn,
+ &f.indent;short vid_x, short vid_y, short drw_x, short drw_y,
+ &f.indent;short vid_w, short vid_h, short drw_w, short drw_h,
+ &f.indent;RegionPtr clipBoxes, pointer data )&e.code;
+ <quote><p>
+ This indicates that the driver should take a subsection
+ &s.code;vid_w&e.code; by &s.code;vid_h&e.code; at location
+ &s.code;(vid_x,vid_y)&e.code; from the video stream and direct
+ it into the rectangle &s.code;drw_w&e.code; by &s.code;drw_h&e.code;
+ at location &s.code;(drw_x,drw_y)&e.code; on the screen, scaling as
+ necessary. Due to the large variations in capabilities of
+ the various hardware expected to be used with this extension,
+ it is not expected that all hardware will be able to do this
+ exactly as described. In that case the driver should just do
+ ``the best it can,'' scaling as closely to the target rectangle
+ as it can without rendering outside of it. In the worst case,
+ the driver can opt to just not turn on the video.
+
+ </quote>
+
+ &s.code;typedef int (* PutStillFuncPtr)( ScrnInfoPtr pScrn,
+ &f.indent;short vid_x, short vid_y, short drw_x, short drw_y,
+ &f.indent;short vid_w, short vid_h, short drw_w, short drw_h,
+ &f.indent;RegionPtr clipBoxes, pointer data )&e.code;
+ <quote><p>
+ This is same as &s.code;PutVideo&e.code; except that the driver
+ should place only one frame from the stream on the screen.
+
+ </quote>
+
+ &s.code;typedef int (* GetVideoFuncPtr)( ScrnInfoPtr pScrn,
+ &f.indent;short vid_x, short vid_y, short drw_x, short drw_y,
+ &f.indent;short vid_w, short vid_h, short drw_w, short drw_h,
+ &f.indent;RegionPtr clipBoxes, pointer data )&e.code;
+ <quote><p>
+ This is same as &s.code;PutVideo&e.code; except that the driver
+ gets video from the screen and outputs it. The driver should
+ do the best it can to get the requested dimensions correct
+ without reading from an area larger than requested.
+
+ </quote>
+
+ &s.code;typedef int (* GetStillFuncPtr)( ScrnInfoPtr pScrn,
+ &f.indent;short vid_x, short vid_y, short drw_x, short drw_y,
+ &f.indent;short vid_w, short vid_h, short drw_w, short drw_h,
+ &f.indent;RegionPtr clipBoxes, pointer data )&e.code;
+ <quote><p>
+ This is the same as &s.code;GetVideo&e.code; except that the
+ driver should place only one frame from the screen into the
+ output stream.
+
+ </quote>
+
+ &s.code;typedef void (* StopVideoFuncPtr)(ScrnInfoPtr pScrn,
+ &f.indent;pointer data, Bool cleanup)&e.code;
+ <quote><p>
+ This indicates the driver should stop displaying the video.
+ This is used to stop both input and output video. The
+ &s.code;cleanup&e.code; field indicates that the video is
+ being stopped because the client requested it to stop or
+ because the server is exiting the current VT. In that case
+ the driver should deallocate any offscreen memory areas (if
+ there are any) being used to put the video to the screen. If
+ &s.code;cleanup&e.code; is not set, the video is being stopped
+ temporarily due to clipping or moving of the window, etc...
+ and video will likely be restarted soon so the driver should
+ not deallocate any offscreen areas associated with that port.
+
+ </quote>
+ &s.code;typedef int (* SetPortAttributeFuncPtr)(ScrnInfoPtr pScrn,
+ &f.indent;Atom attribute,INT32 value, pointer data)&e.code;
+
+ &s.code;typedef int (* GetPortAttributeFuncPtr)(ScrnInfoPtr pScrn,
+ &f.indent;Atom attribute,INT32 *value, pointer data)&e.code;
+
+ <quote><p>
+ A port may have particular attributes such as hue,
+ saturation, brightness or contrast. Xv clients set and
+ get these attribute values by sending attribute strings
+ (Atoms) to the server. Such requests end up at these
+ driver functions. It is recommended that the driver provide
+ at least the following attributes mentioned in the Xv client
+ library docs:
+ <quote>
+ &s.code;XV_ENCODING&nl;
+ XV_HUE&nl;
+ XV_SATURATION&nl;
+ XV_BRIGHTNESS&nl;
+ XV_CONTRAST&e.code;
+ </quote>
+ but the driver may recognize as many atoms as it wishes. If
+ a requested attribute is unknown by the driver it should return
+ &s.code;BadMatch&e.code;. &s.code;XV_ENCODING&e.code; is the
+ attribute intended to let the client specify which video
+ encoding the particular port should be using (see the description
+ of &s.code;XF86VideoEncodingRec&e.code; below). If the
+ requested encoding is unsupported, the driver should return
+ &s.code;XvBadEncoding&e.code;. If the value lies outside the
+ advertised range &s.code;BadValue&e.code; may be returned.
+ &s.code;Success&e.code; should be returned otherwise.
+
+ </quote>
+
+ &s.code;typedef void (* QueryBestSizeFuncPtr)(ScrnInfoPtr pScrn,
+ &f.indent;Bool motion, short vid_w, short vid_h,
+ &f.indent;short drw_w, short drw_h,
+ &f.indent;unsigned int *p_w, unsigned int *p_h, pointer data)&e.code;
+ <quote><p>
+ &s.code;QueryBestSize&e.code; provides the client with a way
+ to query what the destination dimensions would end up being
+ if they were to request that an area
+ &s.code;vid_w&e.code by &s.code;vid_h&e.code; from the video
+ stream be scaled to rectangle of
+ &s.code;drw_w&e.code; by &s.code;drw_h&e.code; on the screen.
+ Since it is not expected that all hardware will be able to
+ get the target dimensions exactly, it is important that the
+ driver provide this function.
+
+ </quote>
+
+ &s.code;typedef int (* PutImageFuncPtr)( ScrnInfoPtr pScrn,
+ &f.indent;short src_x, short src_y, short drw_x, short drw_y,
+ &f.indent;short src_w, short src_h, short drw_w, short drw_h,
+ &f.indent;int image, char *buf, short width, short height,
+ &f.indent;Bool sync, RegionPtr clipBoxes, pointer data )&e.code;
+ <quote><p>
+ This is similar to &s.code;PutStill&e.code; except that the
+ source of the video is not a port but the data stored in a system
+ memory buffer at &s.code;buf&e.code;. The data is in the format
+ indicated by the &s.code;image&e.code; descriptor and represents a
+ source of size &s.code;width&e.code; by &s.code;height&e.code;.
+ If &s.code;sync&e.code; is TRUE the driver should not return
+ from this function until it is through reading the data
+ from &s.code;buf&e.code;. Returning when &s.code;sync&e.code;
+ is TRUE indicates that it is safe for the data at &s.code;buf&e.code;
+ to be replaced, freed, or modified.
+
+ </quote>
+
+ &s.code;typedef int (* QueryImageAttributesFuncPtr)( ScrnInfoPtr pScrn,
+ &f.indent;int image, short *width, short *height,
+ &f.indent;int *pitches, int *offsets)&e.code;
+ <quote><p>
+ This function is called to let the driver specify how data for
+ a particular &s.code;image&e.code; of size &s.code;width&e.code;
+ by &s.code;height&e.code; should be stored. Sometimes only
+ the size and corrected width and height are needed. In that
+ case &s.code;pitches&e.code; and &s.code;offsets&e.code; are
+ NULL. The size of the memory required for the image is returned
+ by this function. The &s.code;width&e.code; and
+ &s.code;height&e.code; of the requested image can be altered by
+ the driver to reflect format limitations (such as component
+ sampling periods that are larger than one). If
+ &s.code;pitches&e.code; and &s.code;offsets&e.code; are not NULL,
+ these will be arrays with as many elements in them as there
+ are planes in the &s.code;image&e.code; format. The driver
+ should specify the pitch (in bytes) of each scanline in the
+ particular plane as well as the offset to that plane (in bytes)
+ from the beginning of the image.
+
+ </quote>
+
+ </quote>
+
+The XF86VideoEncodingRec:
+<quote><p>
+<verb>
+typedef struct {
+ int id;
+ char *name;
+ unsigned short width, height;
+ XvRationalRec rate;
+} XF86VideoEncodingRec, *XF86VideoEncodingPtr;
+
+</verb>
+ The &s.code;XF86VideoEncodingRec&e.code; specifies what encodings
+ the adaptor can support. Most of this data is just informational
+ and for the client's benefit, and is what will be reported by
+ &s.code;XvQueryEncodings&e.code;. The &s.code;id&e.code; field is
+ expected to be a unique identifier to allow the client to request a
+ certain encoding via the &s.code;XV_ENCODING&e.code; attribute string.
+
+</quote>
+
+The XF86VideoFormatRec:
+
+<quote><p>
+<verb>
+typedef struct {
+ char depth;
+ short class;
+} XF86VideoFormatRec, *XF86VideoFormatPtr;
+</verb>
+
+ This specifies what visuals the video is viewable in.
+ &s.code;depth&e.code; is the depth of the visual (not bpp).
+ &s.code;class&e.code; is the visual class such as
+ &s.code;TrueColor&e.code;, &s.code;DirectColor&e.code; or
+ &s.code;PseudoColor&e.code;. Initialization of an adaptor will fail
+ if none of the visuals on that screen are supported.
+
+</quote>
+
+The XF86AttributeRec:
+
+<quote><p>
+<verb>
+typedef struct {
+ int flags;
+ int min_value;
+ int max_value;
+ char *name;
+} XF86AttributeListRec, *XF86AttributeListPtr;
+
+</verb>
+
+ Each adaptor may have an array of these advertising the attributes
+ for its ports. Currently defined flags are &s.code;XvGettable&e.code;
+ and &s.code;XvSettable&e.code; which may be OR'd together indicating that
+ attribute is ``gettable'' or ``settable'' by the client. The
+ &s.code;min&e.code; and &s.code;max&e.code; field specify the valid range
+ for the value. &s.code;Name&e.code; is a text string describing the
+ attribute by name.
+
+</quote>
+
+The XF86ImageRec:
+
+<quote><p>
+<verb>
+typedef struct {
+ int id;
+ int type;
+ int byte_order;
+ char guid[16];
+ int bits_per_pixel;
+ int format;
+ int num_planes;
+
+ /* for RGB formats */
+ int depth;
+ unsigned int red_mask;
+ unsigned int green_mask;
+ unsigned int blue_mask;
+
+ /* for YUV formats */
+ unsigned int y_sample_bits;
+ unsigned int u_sample_bits;
+ unsigned int v_sample_bits;
+ unsigned int horz_y_period;
+ unsigned int horz_u_period;
+ unsigned int horz_v_period;
+ unsigned int vert_y_period;
+ unsigned int vert_u_period;
+ unsigned int vert_v_period;
+ char component_order[32];
+ int scanline_order;
+} XF86ImageRec, *XF86ImagePtr;
+</verb>
+
+ XF86ImageRec describes how video source data is laid out in memory.
+ The fields are as follows:
+
+ &s.code;id&e.code;
+ <quote><p>
+ This is a unique descriptor for the format. It is often good to
+ set this value to the FOURCC for the format when applicable.
+ </quote>
+
+ &s.code;type&e.code;
+ <quote><p>
+ This is &s.code;XvRGB&e.code; or &s.code;XvYUV&e.code;.
+ </quote>
+
+ &s.code;byte_order&e.code;
+ <quote><p>
+ This is &s.code;LSBFirst&e.code; or &s.code;MSBFirst&e.code;.
+ </quote>
+
+ &s.code;guid&e.code;
+ <quote><p>
+ This is the Globally Unique IDentifier for the format. When
+ not applicable, all characters should be NULL.
+ </quote>
+
+ &s.code;bits_per_pixel&e.code;
+ <quote><p>
+ The number of bits taken up (but not necessarily used) by each
+ pixel. Note that for some planar formats which have fractional
+ bits per pixel (such as IF09) this number may be rounded _down_.
+ </quote>
+
+ &s.code;format&e.code;
+ <quote><p>
+ This is &s.code;XvPlanar&e.code; or &s.code;XvPacked&e.code;.
+ </quote>
+
+ &s.code;num_planes&e.code;
+ <quote><p>
+ The number of planes in planar formats. This should be set to
+ one for packed formats.
+ </quote>
+
+ &s.code;depth&e.code;
+ <quote><p>
+ The significant bits per pixel in RGB formats (analgous to the
+ depth of a pixmap format).
+ </quote>
+
+ &s.code;red_mask&e.code;
+ &s.code;green_mask&e.code;
+ &s.code;blue_mask&e.code;
+ <quote><p>
+ The red, green and blue bitmasks for packed RGB formats.
+ </quote>
+
+ &s.code;y_sample_bits&e.code;
+ &s.code;u_sample_bits&e.code;
+ &s.code;v_sample_bits&e.code;
+ <quote><p>
+ The y, u and v sample sizes (in bits).
+ </quote>
+
+ &s.code;horz_y_period&e.code;
+ &s.code;horz_u_period&e.code;
+ &s.code;horz_v_period&e.code;
+ <quote><p>
+ The y, u and v sampling periods in the horizontal direction.
+ </quote>
+
+ &s.code;vert_y_period&e.code;
+ &s.code;vert_u_period&e.code;
+ &s.code;vert_v_period&e.code;
+ <quote><p>
+ The y, u and v sampling periods in the vertical direction.
+ </quote>
+
+ &s.code;component_order&e.code;
+ <quote><p>
+ Uppercase ascii characters representing the order that
+ samples are stored within packed formats. For planar formats
+ this represents the ordering of the planes. Unused characters
+ in the 32 byte string should be set to NULL.
+ </quote>
+
+ &s.code;scanline_order&e.code;
+ <quote><p>
+ This is &s.code;XvTopToBottom&e.code; or &s.code;XvBottomToTop&e.code;.
+ </quote>
+
+ Since some formats (particular some planar YUV formats) may not
+be completely defined by the parameters above, the guid, when
+available, should provide the most accurate description of the
+format.
+
+</quote>
+
+<sect>The Loader
+<p>
+
+This section describes the interfaces to the module loader. The loader
+interfaces can be divided into two groups: those that are only available to
+the XFree86 common layer, and those that are also available to modules.
+
+<sect1>Loader Overview
+<p>
+
+The loader is capable of loading modules in a range of object formats,
+and knowledge of these formats is built in to the loader. Knowledge of
+new object formats can be added to the loader in a straightforward
+manner. This makes it possible to provide OS-independent modules (for
+a given CPU architecture type). In addition to this, the loader can
+load modules via the OS-provided &s.code;dlopen(3)&e.code; service where
+available. Such modules are not platform independent, and the semantics
+of &s.code;dlopen()&e.code; on most systems results in significant
+limitations in the use of modules of this type. Support for
+&s.code;dlopen()&e.code; modules in the loader is primarily for
+experimental and development purposes.
+
+Symbols exported by the loader (on behalf of the core X server) to
+modules are determined at compile time. Only those symbols explicitly
+exported are available to modules. All external symbols of loaded
+modules are exported to other modules, and to the core X server. The
+loader can be requested to check for unresolved symbols at any time,
+and the action to be taken for unresolved symbols can be controlled by
+the caller of the loader. Typically the caller identifies which symbols
+can safely remain unresolved and which cannot.
+
+NOTE: Now that ISO-C allows pointers to functions and pointers to data to
+have different internal representations, some of the following interfaces
+will need to be revisited.
+
+<sect1>Semi-private Loader Interface
+<p>
+
+The following is the semi-private loader interface that is available to the
+XFree86 common layer.
+
+ <quote><p>
+ &s.code;void LoaderInit(void)&e.code;
+ <quote><p>
+ The &s.code;LoaderInit()&e.code; function initialises the loader,
+ and it must be called once before calling any other loader functions.
+ This function initialises the tables of exported symbols, and anything
+ else that might need to be initialised.
+
+ </quote>
+
+ &s.code;void LoaderSetPath(const char *path)&e.code;
+ <quote><p>
+ The &s.code;LoaderSetPath()&e.code; function initialises a default
+ module search path. This must be called if calls to other functions
+ are to be made without explicitly specifying a module search path.
+ The search path &s.code;path&e.code; must be a string of one or more
+ comma separated absolute paths. Modules are expected to be located
+ below these paths, possibly in subdirectories of these paths.
+
+ </quote>
+
+ &s.code;pointer LoadModule(const char *module, const char *path,
+ &f.indent;const char **subdirlist, const char **patternlist,
+ &f.indent;pointer options, const XF86ModReqInfo * modreq,
+ &f.indent;int *errmaj, int *errmin)&e.code;
+ <quote><p>
+ The &s.code;LoadModule()&e.code; function loads the module called
+ &s.code;module&e.code;. The return value is a module handle, and
+ may be used in future calls to the loader that require a reference
+ to a loaded module. The module name &s.code;module&e.code; is
+ normally the module's canonical name, which doesn't contain any
+ directory path information, or any object/library file prefixes of
+ suffixes. Currently a full pathname and/or filename is also accepted.
+ This might change. The other parameters are:
+
+ &s.code;path&e.code;
+ <quote><p>
+ An optional comma-separated list of module search paths.
+ When &s.code;NULL&e.code;, the default search path is used.
+
+ </quote>
+
+ &s.code;subdirlist&e.code;
+ <quote><p>
+ An optional &s.code;NULL&e.code; terminated list of
+ subdirectories to search. When &s.code;NULL&e.code;,
+ the default built-in list is used (refer to
+ &s.code;stdSubdirs&e.code; in &s.code;loadmod.c&e.code;).
+ The default list is also substituted for entries in
+ &s.code;subdirlist&e.code; with the value
+ &s.code;DEFAULT_LIST&e.code;. This makes is possible
+ to augment the default list instead of replacing it.
+ Subdir elements must be relative, and must not contain
+ &s.code;".."&e.code;. If any violate this requirement,
+ the load fails.
+
+ </quote>
+
+ &s.code;patternlist&e.code;
+ <quote><p>
+ An optional &s.code;NULL&e.code; terminated list of
+ POSIX regular expressions used to connect module
+ filenames with canonical module names. Each regex
+ should contain exactly one subexpression that corresponds
+ to the canonical module name. When &s.code;NULL&e.code;,
+ the default built-in list is used (refer to
+ &s.code;stdPatterns&e.code; in
+ &s.code;loadmod.c&e.code;). The default list is also
+ substituted for entries in &s.code;patternlist&e.code;
+ with the value &s.code;DEFAULT_LIST&e.code;. This
+ makes it possible to augment the default list instead
+ of replacing it.
+
+ </quote>
+
+ &s.code;options&e.code;
+ <quote><p>
+ An optional parameter that is passed to the newly
+ loaded module's &s.code;SetupProc&e.code; function
+ (if it has one). This argument is normally a
+ &s.code;NULL&e.code; terminated list of
+ &s.code;Options&e.code;, and must be interpreted that
+ way by modules loaded directly by the XFree86 common
+ layer. However, it may be used for application-specific
+ parameter passing in other situations.
+
+ When loading ``external'' modules (modules that don't
+ have the standard entry point, for example a
+ special shared library) the options parameter can be
+ set to &s.code;EXTERN_MODULE&e.code; to tell the
+ loader not to reject the module when it doesn't find
+ the standard entry point.
+
+ </quote>
+
+ &s.code;modreq&e.code;
+ <quote><p>
+ An optional &s.code;XF86ModReqInfo*&e.code; containing
+ version/ABI/vendor information to requirements to
+ check the newly loaded module against. The main
+ purpose of this is to allow the loader to verify that
+ a module of the correct type/version before running
+ its &s.code;SetupProc&e.code; function.
+
+ The &s.code;XF86ModReqInfo&e.code; struct is defined
+ as follows:
+<verb>
+typedef struct {
+ CARD8 majorversion; /* MAJOR_UNSPEC */
+ CARD8 minorversion; /* MINOR_UNSPEC */
+ CARD16 patchlevel; /* PATCH_UNSPEC */
+ const char * abiclass; /* ABI_CLASS_NONE */
+ CARD32 abiversion; /* ABI_VERS_UNSPEC */
+ const char * moduleclass; /* MOD_CLASS_NONE */
+} XF86ModReqInfo;
+</verb>
+
+ The information here is compared against the equivalent
+ information in the module's
+ &s.code;XF86ModuleVersionInfo&e.code; record (which
+ is described below). The values in comments above
+ indicate ``don't care'' settings for each of the fields.
+ The comparisons made are as follows:
+
+ &s.code;majorversion&e.code;
+ <quote><p>
+ Must match the module's majorversion
+ exactly.
+
+ </quote>
+ &s.code;minorversion&e.code;
+ <quote><p>
+ The module's minor version must be
+ no less than this value. This
+ comparison is only made if
+ &s.code;majorversion&e.code; is
+ specified and matches.
+
+ </quote>
+ &s.code;patchlevel&e.code;
+ <quote><p>
+ The module's patchlevel must be no
+ less than this value. This comparison
+ is only made if
+ &s.code;minorversion&e.code; is
+ specified and matches.
+
+ </quote>
+ &s.code;abiclass&e.code;
+ <quote><p>
+ String must match the module's abiclass
+ string.
+
+ </quote>
+ &s.code;abiversion&e.code;
+ <quote><p>
+ Must be consistent with the module's
+ abiversion (major equal, minor no
+ older).
+
+ </quote>
+ &s.code;moduleclass&e.code;
+ <quote><p>
+ String must match the module's
+ moduleclass string.
+
+ </quote>
+
+ </quote>
+
+ &s.code;errmaj&e.code;
+ <quote><p>
+ An optional pointer to a variable holding the major
+ part or the error code. When provided,
+ &s.code;*errmaj&e.code; is filled in when
+ &s.code;LoadModule()&e.code; fails.
+
+ </quote>
+
+ &s.code;errmin&e.code;
+ <quote><p>
+ Like &s.code;errmaj&e.code;, but for the minor part
+ of the error code.
+
+ </quote>
+
+ </quote>
+
+ &s.code;void UnloadModule(pointer mod)&e.code;
+ <quote><p>
+ This function unloads the module referred to by the handle mod.
+ All child modules are also unloaded recursively. This function must
+ not be used to directly unload modules that are child modules (i.e.,
+ those that have been loaded with the &s.code;LoadSubModule()&e.code;
+ described below).
+
+ </quote>
+ </quote>
+
+<sect1>Module Requirements
+<p>
+
+Modules must provide information about themselves to the loader, and
+may optionally provide entry points for "setup" and "teardown" functions
+(those two functions are referred to here as &s.code;SetupProc&e.code;
+and &s.code;TearDownProc&e.code;).
+
+The module information is contained in the
+&s.code;XF86ModuleVersionInfo&e.code; struct, which is defined as follows:
+
+<quote><p><verb>
+typedef struct {
+ const char * modname; /* name of module, e.g. "foo" */
+ const char * vendor; /* vendor specific string */
+ CARD32 _modinfo1_; /* constant MODINFOSTRING1/2 to find */
+ CARD32 _modinfo2_; /* infoarea with a binary editor/sign tool */
+ CARD32 xf86version; /* contains XF86_VERSION_CURRENT */
+ CARD8 majorversion; /* module-specific major version */
+ CARD8 minorversion; /* module-specific minor version */
+ CARD16 patchlevel; /* module-specific patch level */
+ const char * abiclass; /* ABI class that the module uses */
+ CARD32 abiversion; /* ABI version */
+ const char * moduleclass; /* module class */
+ CARD32 checksum[4]; /* contains a digital signature of the */
+ /* version info structure */
+} XF86ModuleVersionInfo;
+</verb>
+
+The fields are used as follows:
+
+ &s.code;modname&e.code;
+ <quote><p>
+ The module's name. This field is currently only for
+ informational purposes, but the loader may be modified
+ in future to require it to match the module's canonical
+ name.
+
+ </quote>
+
+ &s.code;vendor&e.code;
+ <quote><p>
+ The module vendor. This field is for informational purposes
+ only.
+
+ </quote>
+
+ &s.code;_modinfo1_&e.code;
+ <quote><p>
+ This field holds the first part of a signature that can
+ be used to locate this structure in the binary. It should
+ always be initialised to &s.code;MODINFOSTRING1&e.code;.
+
+ </quote>
+
+ &s.code;_modinfo2_&e.code;
+ <quote><p>
+ This field holds the second part of a signature that can
+ be used to locate this structure in the binary. It should
+ always be initialised to &s.code;MODINFOSTRING2&e.code;.
+
+ </quote>
+
+ &s.code;xf86version&e.code;
+ <quote><p>
+ The XFree86 version against which the module was compiled.
+ This is mostly for informational/diagnostic purposes. It
+ should be initialised to &s.code;XF86_VERSION_CURRENT&e.code;, which is
+ defined in &s.code;xf86Version.h&e.code;.
+
+ </quote>
+
+ &s.code;majorversion&e.code;
+ <quote><p>
+ The module-specific major version. For modules where this
+ version is used for more than simply informational
+ purposes, the major version should only change (be
+ incremented) when ABI incompatibilities are introduced,
+ or ABI components are removed.
+
+ </quote>
+
+ &s.code;minorversion&e.code;
+ <quote><p>
+ The module-specific minor version. For modules where this
+ version is used for more than simply informational
+ purposes, the minor version should only change (be
+ incremented) when ABI additions are made in a backward
+ compatible way. It should be reset to zero when the major
+ version is increased.
+
+ </quote>
+
+ &s.code;patchlevel&e.code;
+ <quote><p>
+ The module-specific patch level. The patch level should
+ increase with new revisions of the module where there
+ are no ABI changes, and it should be reset to zero when
+ the minor version is increased.
+
+ </quote>
+
+ &s.code;abiclass&e.code;
+ <quote><p>
+ The ABI class that the module requires. The class is
+ specified as a string for easy extensibility. It should
+ indicate which (if any) of the X server's built-in ABI
+ classes that the module relies on, or a third-party ABI
+ if appropriate. Built-in ABI classes currently defined are:
+
+ <quote>
+ &s.code;ABI_CLASS_NONE&e.code;
+ <quote>no class</quote>
+ &s.code;ABI_CLASS_ANSIC&e.code;
+ <quote>only requires the ANSI C interfaces</quote>
+ &s.code;ABI_CLASS_VIDEODRV&e.code;
+ <quote>requires the video driver ABI</quote>
+ &s.code;ABI_CLASS_XINPUT&e.code;
+ <quote>requires the XInput driver ABI</quote>
+ &s.code;ABI_CLASS_EXTENSION&e.code;
+ <quote>requires the extension module ABI</quote>
+ &s.code;ABI_CLASS_FONT&e.code;
+ <quote>requires the font module ABI</quote>
+ </quote>
+
+ </quote>
+
+ &s.code;abiversion&e.code;
+ <quote><p>
+ The version of abiclass that the module requires. The
+ version consists of major and minor components. The
+ major version must match and the minor version must be
+ no newer than that provided by the server or parent
+ module. Version identifiers for the built-in classes
+ currently defined are:
+
+ <quote>
+ &s.code;ABI_ANSIC_VERSION&nl;
+ ABI_VIDEODRV_VERSION&nl;
+ ABI_XINPUT_VERSION&nl;
+ ABI_EXTENSION_VERSION&nl;
+ ABI_FONT_VERSION&e.code;
+ </quote>
+
+ </quote>
+
+ &s.code;moduleclass&e.code;
+ <quote><p>
+ This is similar to the abiclass field, except that it
+ defines the type of module rather than the ABI it
+ requires. For example, although all video drivers require
+ the video driver ABI, not all modules that require the
+ video driver ABI are video drivers. This distinction
+ can be made with the moduleclass. Currently pre-defined
+ module classes are:
+
+ <quote>
+ &s.code;MOD_CLASS_NONE&nl;
+ MOD_CLASS_VIDEODRV&nl;
+ MOD_CLASS_XINPUT&nl;
+ MOD_CLASS_FONT&nl;
+ MOD_CLASS_EXTENSION&e.code;
+ </quote>
+
+ </quote>
+
+ &s.code;checksum&e.code;
+ <quote><p>
+ Not currently used.
+
+ </quote>
+
+</quote>
+
+The module version information, and the optional &s.code;SetupProc&e.code;
+and &s.code;TearDownProc&e.code; entry points are found by the loader
+by locating a data object in the module called "modnameModuleData",
+where "modname" is the canonical name of the module. Modules must
+contain such a data object, and it must be declared with global scope,
+be compile-time initialised, and is of the following type:
+
+<quote>
+<verb>
+typedef struct {
+ XF86ModuleVersionInfo * vers;
+ ModuleSetupProc setup;
+ ModuleTearDownProc teardown;
+} XF86ModuleData;
+</verb>
+</quote>
+
+The vers parameter must be initialised to a pointer to a correctly
+initialised &s.code;XF86ModuleVersionInfo&e.code; struct. The other
+two parameter are optional, and should be initialised to
+&s.code;NULL&e.code; when not required. The other parameters are defined
+as
+
+ <quote><p>
+ &s.code;typedef pointer (*ModuleSetupProc)(pointer, pointer, int *, int *)&e.code;
+
+ &s.code;typedef void (*ModuleTearDownProc)(pointer)&e.code;
+
+
+ &s.code;pointer SetupProc(pointer module, pointer options,
+ &f.indent;int *errmaj, int *errmin)&e.code;
+ <quote><p>
+ When defined, this function is called by the loader after successfully
+ loading a module. module is a handle for the newly loaded module,
+ and maybe used by the &s.code;SetupProc&e.code; if it calls other
+ loader functions that require a reference to it. The remaining
+ arguments are those that were passed to the
+ &s.code;LoadModule()&e.code; (or &s.code;LoadSubModule()&e.code;),
+ and are described above. When the &s.code;SetupProc&e.code; is
+ successful it must return a non-&s.code;NULL&e.code; value. The
+ loader checks this, and if it is &s.code;NULL&e.code; it unloads
+ the module and reports the failure to the caller of
+ &s.code;LoadModule()&e.code;. If the &s.code;SetupProc&e.code;
+ does things that need to be undone when the module is unloaded,
+ it should define a &s.code;TearDownProc&e.code;, and return a
+ pointer that the &s.code;TearDownProc&e.code; can use to undo what
+ has been done.
+
+ When a module is loaded multiple times, the &s.code;SetupProc&e.code;
+ is called once for each time it is loaded.
+
+ </quote>
+
+ &s.code;void TearDownProc(pointer tearDownData)&e.code;
+ <quote><p>
+ When defined, this function is called when the loader unloads a
+ module. The &s.code;tearDownData&e.code; parameter is the return
+ value of the &s.code;SetupProc()&e.code; that was called when the
+ module was loaded. The purpose of this function is to clean up
+ before the module is unloaded (for example, by freeing allocated
+ resources).
+
+ </quote>
+ </quote>
+
+<sect1>Public Loader Interface
+<p>
+
+The following is the Loader interface that is available to any part of
+the server, and may also be used from within modules.
+
+ <quote><p>
+ &s.code;pointer LoadSubModule(pointer parent, const char *module,
+ &f.indent;const char **subdirlist, const char **patternlist,
+ &f.indent;pointer options, const XF86ModReqInfo * modreq,
+ &f.indent;int *errmaj, int *errmin)&e.code;
+ <quote><p>
+ This function is like the &s.code;LoadModule()&e.code; function
+ described above, except that the module loaded is registered as a
+ child of the calling module. The &s.code;parent&e.code; parameter
+ is the calling module's handle. Modules loaded with this function
+ are automatically unloaded when the parent module is unloaded. The
+ other difference is that the path parameter may not be specified.
+ The module search path used for modules loaded with this function
+ is the default search path as initialised with
+ &s.code;LoaderSetPath()&e.code;.
+
+ </quote>
+
+ &s.code;void UnloadSubModule(pointer module)&e.code;
+ <quote><p>
+ This function unloads the module with handle &s.code;module&e.code;.
+ If that module itself has children, they are also unloaded. It is
+ like &s.code;UnloadModule()&e.code;, except that it is safe to use
+ for unloading child modules.
+
+ </quote>
+
+ &s.code;pointer LoaderSymbol(const char *symbol)&e.code;
+ <quote><p>
+ This function returns the address of the symbol with name
+ &s.code;symbol&e.code;. This may be used to locate a module entry
+ point with a known name.
+
+ </quote>
+
+ &s.code;char **LoaderlistDirs(const char **subdirlist,
+ &f.indent;const char **patternlist)&e.code;
+ <quote><p>
+ This function returns a &s.code;NULL&e.code; terminated list of
+ canonical modules names for modules found in the default module
+ search path. The &s.code;subdirlist&e.code; and
+ &s.code;patternlist&e.code; parameters are as described above, and
+ can be used to control the locations and names that are searched.
+ If no modules are found, the return value is &s.code;NULL&e.code;.
+ The returned list should be freed by calling
+ &s.code;LoaderFreeDirList()&e.code; when it is no longer needed.
+
+ </quote>
+
+ &s.code;void LoaderFreeDirList(char **list)&e.code;
+ <quote><p>
+ This function frees a module list created by
+ &s.code;LoaderlistDirs()&e.code;.
+
+ </quote>
+
+ &s.code;void LoaderReqSymLists(const char **list0, ...)&e.code;
+ <quote><p>
+ This function allows the registration of required symbols with the
+ loader. It is normally used by a caller of
+ &s.code;LoadSubModule()&e.code;. If any symbols registered in this
+ way are found to be unresolved when
+ &s.code;LoaderCheckUnresolved()&e.code; is called then
+ &s.code;LoaderCheckUnresolved()&e.code; will report a failure.
+ The function takes one or more &s.code;NULL&e.code; terminated
+ lists of symbols. The end of the argument list is indicated by a
+ &s.code;NULL&e.code; argument.
+
+ </quote>
+
+ &s.code;void LoaderReqSymbols(const char *sym0, ...)&e.code;
+ <quote><p>
+ This function is like &s.code;LoaderReqSymLists()&e.code; except
+ that its arguments are symbols rather than lists of symbols. This
+ function is more convenient when single functions are to be registered,
+ especially when the single function might depend on runtime factors.
+ The end of the argument list is indicated by a &s.code;NULL&e.code;
+ argument.
+
+ </quote>
+
+ &s.code;void LoaderRefSymLists(const char **list0, ...)&e.code;
+ <quote><p>
+ This function allows the registration of possibly unresolved symbols
+ with the loader. When &s.code;LoaderCheckUnresolved()&e.code; is
+ run it won't generate warnings for symbols registered in this way
+ unless they were also registered as required symbols.
+ The function takes one or more &s.code;NULL&e.code; terminated
+ lists of symbols. The end of the argument list is indicated by a
+ &s.code;NULL&e.code; argument.
+
+ </quote>
+
+ &s.code;void LoaderRefSymbols(const char *sym0, ...)&e.code;
+ <quote><p>
+ This function is like &s.code;LoaderRefSymLists()&e.code; except
+ that its arguments are symbols rather than lists of symbols. This
+ function is more convenient when single functions are to be registered,
+ especially when the single function might depend on runtime factors.
+ The end of the argument list is indicated by a &s.code;NULL&e.code;
+ argument.
+
+ </quote>
+
+ &s.code;int LoaderCheckUnresolved(int delayflag)&e.code;
+ <quote><p>
+ This function checks for unresolved symbols. It generates warnings
+ for unresolved symbols that have not been registered with
+ &s.code;LoaderRefSymLists()&e.code;, and maps them to a dummy
+ function. This behaviour may change in future. If unresolved
+ symbols are found that have been registered with
+ &s.code;LoaderReqSymLists()&e.code; or
+ &s.code;LoaderReqSymbols()&e.code; then this function returns a
+ non-zero value. If none of these symbols are unresolved the return
+ value is zero, indicating success.
+
+ The &s.code;delayflag&e.code; parameter should normally be set to
+ &s.code;LD_RESOLV_IFDONE&e.code;.
+
+ </quote>
+
+ &s.code;LoaderErrorMsg(const char *name, const char *modname,
+ &f.indent;int errmaj, int errmin)&e.code;
+ <quote><p>
+ This function prints an error message that includes the text ``Failed
+ to load module'', the module name &s.code;modname&e.code;, a message
+ specific to the &s.code;errmaj&e.code; value, and the value if
+ &s.code;errmin&e.code;. If &s.code;name&e.code; is
+ non-&s.code;NULL&e.code;, it is printed as an identifying prefix
+ to the message (followed by a `:').
+
+ </quote>
+ </quote>
+
+<sect1>Special Registration Functions
+<p>
+
+The loader contains some functions for registering some classes of modules.
+These may be moved out of the loader at some point.
+
+ <quote><p>
+ &s.code;void LoadExtension(ExtensionModule *ext)&e.code;
+ <quote><p>
+ This registers the entry points for the extension identified by
+ &s.code;ext&e.code;. The &s.code;ExtensionModule&e.code; struct is
+ defined as:
+
+<quote>
+<verb>
+typedef struct {
+ InitExtension initFunc;
+ char * name;
+ Bool *disablePtr;
+ InitExtension setupFunc;
+} ExtensionModule;
+</verb>
+</quote>
+
+ </quote>
+
+ &s.code;void LoadFont(FontModule *font)&e.code;
+ <quote><p>
+ This registers the entry points for the font rasteriser module
+ identified by &s.code;font&e.code;. The &s.code;FontModule&e.code;
+ struct is defined as:
+
+<quote>
+<verb>
+typedef struct {
+ InitFont initFunc;
+ char * name;
+ pointer module;
+} FontModule;
+</verb>
+</quote>
+
+ </quote>
+ </quote>
+
+</sect>
+
+
+<sect>Helper Functions
+<p>
+
+This section describe ``helper'' functions that video driver
+might find useful. While video drivers are not required to use any of
+these to be considered ``compliant'', the use of appropriate helpers is
+strongly encouraged to improve the consistency of driver behaviour.
+
+<sect1>Functions for printing messages
+<p>
+
+ <quote><p>
+ &s.code;ErrorF(const char *format, ...)&e.code;
+ <quote><p>
+ This is the basic function for writing to the error log (typically
+ stderr and/or a log file). Video drivers should usually avoid
+ using this directly in favour of the more specialised functions
+ described below. This function is useful for printing messages
+ while debugging a driver.
+
+ </quote>
+
+ &s.code;FatalError(const char *format, ...)&e.code;
+ <quote><p>
+ This prints a message and causes the Xserver to abort. It should
+ rarely be used within a video driver, as most error conditions
+ should be flagged by the return values of the driver functions.
+ This allows the higher layers to decide how to proceed. In rare
+ cases, this can be used within a driver if a fatal unexpected
+ condition is found.
+
+ </quote>
+
+ &s.code;xf86ErrorF(const char *format, ...)&e.code;
+ <quote><p>
+ This is like &s.code;ErrorF()&e.code;, except that the message is
+ only printed when the Xserver's verbosity level is set to the
+ default (&s.code;1&e.code;) or higher. It means that the messages
+ are not printed when the server is started with the
+ &s.cmd;-quiet&e.cmd; flag. Typically this function would only be
+ used for continuing messages started with one of the more specialised
+ functions described below.
+
+ </quote>
+
+ &s.code;xf86ErrorFVerb(int verb, const char *format, ...)&e.code;
+ <quote><p>
+ Like &s.code;xf86ErrorF()&e.code;, except the minimum verbosity
+ level for which the message is to be printed is given explicitly.
+ Passing a &s.code;verb&e.code; value of zero means the message
+ is always printed. A value higher than &s.code;1&e.code; can be
+ used for information would normally not be needed, but which might
+ be useful when diagnosing problems.
+
+ </quote>
+
+ &s.code;xf86Msg(MessageType type, const char *format, ...)&e.code;
+ <quote><p>
+ This is like &s.code;xf86ErrorF()&e.code;, except that the message
+ is prefixed with a marker determined by the value of
+ &s.code;type&e.code;. The marker is used to indicate the type of
+ message (warning, error, probed value, config value, etc). Note
+ the &s.code;xf86Verbose&e.code; value is ignored for messages of
+ type &s.code;X_ERROR&e.code;.
+
+ The marker values are:
+
+ <quote>
+ &s.code;X_PROBED&e.code;
+ <quote>Value was probed.</quote>
+ &s.code;X_CONFIG&e.code;
+ <quote>Value was given in the config file.</quote>
+ &s.code;X_DEFAULT&e.code;
+ <quote>Value is a default.</quote>
+ &s.code;X_CMDLINE&e.code;
+ <quote>Value was given on the command line.</quote>
+ &s.code;X_NOTICE&e.code;
+ <quote>Notice.</quote>
+ &s.code;X_ERROR&e.code;
+ <quote>Error message.</quote>
+ &s.code;X_WARNING&e.code;
+ <quote>Warning message.</quote>
+ &s.code;X_INFO&e.code;
+ <quote>Informational message.</quote>
+ &s.code;X_NONE&e.code;
+ <quote>No prefix.</quote>
+ &s.code;X_NOT_IMPLEMENTED&e.code;
+ <quote>The message relates to functionality that is not yet
+ implemented.</quote>
+ </quote>
+
+
+ </quote>
+
+ &s.code;xf86MsgVerb(MessageType type, int verb, const char *format, ...)&e.code;
+ <quote><p>
+ Like &s.code;xf86Msg()&e.code;, but with the verbosity level given
+ explicitly.
+
+ </quote>
+
+ &s.code;xf86DrvMsg(int scrnIndex, MessageType type, const char *format, ...)&e.code;
+ <quote><p>
+ This is like &s.code;xf86Msg()&e.code; except that the driver's
+ name (the &s.code;name&e.code; field of the
+ &s.code;ScrnInfoRec&e.code;) followed by the
+ &s.code;scrnIndex&e.code; in parentheses is printed following the
+ prefix. This should be used by video drivers in most cases as it
+ clearly indicates which driver/screen the message is for. If
+ &s.code;scrnIndex&e.code; is negative, this function behaves
+ exactly like &s.code;xf86Msg()&e.code;.
+
+ NOTE: This function can only be used after the
+ &s.code;ScrnInfoRec&e.code; and its &s.code;name&e.code; field
+ have been allocated. Normally, this means that it can not be
+ used before the END of the &s.code;ChipProbe()&e.code; function.
+ Prior to that, use &s.code;xf86Msg()&e.code;, providing the
+ driver's name explicitly. No screen number can be supplied at
+ that point.
+
+ </quote>
+
+ &s.code;xf86DrvMsgVerb(int scrnIndex, MessageType type, int verb,
+ &f.indent;const char *format, ...)&e.code;
+ <quote><p>
+ Like &s.code;xf86DrvMsg()&e.code;, but with the verbosity level
+ given explicitly.
+
+ </quote>
+ </quote>
+
+
+<sect1>Functions for setting values based on command line and config file
+<p>
+
+ <quote><p>
+ &s.code;Bool xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int bpp,
+ &f.indent;int fbbpp, int depth24flags)&e.code;
+ <quote><p>
+ This function sets the &s.code;depth&e.code;, &s.code;pixmapBPP&e.code; and &s.code;bitsPerPixel&e.code; fields
+ of the &s.code;ScrnInfoRec&e.code;. It also determines the defaults for display-wide
+ attributes and pixmap formats the screen will support, and finds
+ the Display subsection that matches the depth/bpp. This function
+ should normally be called very early from the
+ &s.code;ChipPreInit()&e.code; function.
+
+ It requires that the &s.code;confScreen&e.code; field of the &s.code;ScrnInfoRec&e.code; be
+ initialised prior to calling it. This is done by the XFree86
+ common layer prior to calling &s.code;ChipPreInit()&e.code;.
+
+ The parameters passed are:
+
+ &s.code;depth&e.code;
+ <quote><p>
+ driver's preferred default depth if no other is given.
+ If zero, use the overall server default.
+
+ </quote>
+ &s.code;bpp&e.code;
+ <quote><p>
+ Same, but for the pixmap bpp.
+
+ </quote>
+ &s.code;fbbpp&e.code;
+ <quote><p>
+ Same, but for the framebuffer bpp.
+
+ </quote>
+ &s.code;depth24flags&e.code;
+ <quote><p>
+ Flags that indicate the level of 24/32bpp support
+ and whether conversion between different framebuffer
+ and pixmap formats is supported. The flags for this
+ argument are defined as follows, and multiple flags
+ may be ORed together:
+
+ &s.code;NoDepth24Support&e.code;
+ <quote>No depth 24 formats supported</quote>
+ &s.code;Support24bppFb&e.code;
+ <quote>24bpp framebuffer supported</quote>
+ &s.code;Support32bppFb&e.code;
+ <quote>32bpp framebuffer supported</quote>
+ &s.code;SupportConvert24to32&e.code;
+ <quote>Can convert 24bpp pixmap to 32bpp fb</quote>
+ &s.code;SupportConvert32to24&e.code;
+ <quote>Can convert 32bpp pixmap to 24bpp fb</quote>
+ &s.code;ForceConvert24to32&e.code;
+ <quote>Force 24bpp pixmap to 32bpp fb conversion</quote>
+ &s.code;ForceConvert32to24&e.code;
+ <quote>Force 32bpp pixmap to 24bpp fb conversion</quote>
+
+ </quote>
+
+ It uses the command line, config file, and default values in the
+ correct order of precedence to determine the depth and bpp values.
+ It is up to the driver to check the results to see that it supports
+ them. If not the &s.code;ChipPreInit()&e.code; function should
+ return &s.code;FALSE&e.code;.
+
+ If only one of depth/bpp is given, the other is set to a reasonable
+ (and consistent) default.
+
+ If a driver finds that the initial &s.code;depth24flags&e.code;
+ it uses later results in a fb format that requires more video
+ memory than is available it may call this function a second time
+ with a different &s.code;depth24flags&e.code; setting.
+
+ On success, the return value is &s.code;TRUE&e.code;. On failure
+ it prints an error message and returns &s.code;FALSE&e.code;.
+
+ The following fields of the &s.code;ScrnInfoRec&e.code; are
+ initialised by this function:
+
+ <quote>
+ &s.code;depth&e.code;, &s.code;bitsPerPixel&e.code;,
+ &s.code;display&e.code;, &s.code;imageByteOrder&e.code;,
+ &s.code;bitmapScanlinePad&e.code;,
+ &s.code;bitmapScanlineUnit&e.code;, &s.code;bitmapBitOrder&e.code;,
+ &s.code;numFormats&e.code;, &s.code;formats&e.code;,
+ &s.code;fbFormat&e.code;.
+ </quote>
+
+ </quote>
+
+ &s.code;void xf86PrintDepthBpp(scrnInfoPtr scrp)&e.code;
+ <quote><p>
+ This function can be used to print out the depth and bpp settings.
+ It should be called after the final call to
+ &s.code;xf86SetDepthBpp()&e.code;.
+
+ </quote>
+
+ &s.code;Bool xf86SetWeight(ScrnInfoPtr scrp, rgb weight, rgb mask)&e.code;
+ <quote><p>
+ This function sets the &s.code;weight&e.code;, &s.code;mask&e.code;,
+ &s.code;offset&e.code; and &s.code;rgbBits&e.code; fields of the
+ &s.code;ScrnInfoRec&e.code;. It would normally be called fairly
+ early in the &s.code;ChipPreInit()&e.code; function for
+ depths&nbsp;>&nbsp;8bpp.
+
+ It requires that the &s.code;depth&e.code; and
+ &s.code;display&e.code; fields of the &s.code;ScrnInfoRec&e.code;
+ be initialised prior to calling it.
+
+ The parameters passed are:
+
+ &s.code;weight&e.code;
+ <quote><p>
+ driver's preferred default weight if no other is given.
+ If zero, use the overall server default.
+
+ </quote>
+
+ &s.code;mask&e.code;
+ <quote><p>
+ Same, but for mask.
+
+ </quote>
+
+ It uses the command line, config file, and default values in the
+ correct order of precedence to determine the weight value. It
+ derives the mask and offset values from the weight and the defaults.
+ It is up to the driver to check the results to see that it supports
+ them. If not the &s.code;ChipPreInit()&e.code; function should
+ return &s.code;FALSE&e.code;.
+
+ On success, this function prints a message showing the weight
+ values selected, and returns &s.code;TRUE&e.code;.
+
+ On failure it prints an error message and returns &s.code;FALSE&e.code;.
+
+ The following fields of the &s.code;ScrnInfoRec&e.code; are
+ initialised by this function:
+
+ <quote>
+ &s.code;weight&e.code;, &s.code;mask&e.code;, &s.code;offset&e.code;.
+ </quote>
+
+ </quote>
+
+ &s.code;Bool xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual)&e.code;
+ <quote><p>
+ This function sets the &s.code;defaultVisual&e.code; field of the
+ &s.code;ScrnInfoRec&e.code;. It would normally be called fairly
+ early from the &s.code;ChipPreInit()&e.code; function.
+
+ It requires that the &s.code;depth&e.code; and
+ &s.code;display&e.code; fields of the &s.code;ScrnInfoRec&e.code;
+ be initialised prior to calling it.
+
+ The parameters passed are:
+
+ &s.code;visual&e.code;
+ <quote><p>
+ driver's preferred default visual if no other is given.
+ If &s.code;-1&e.code;, use the overall server default.
+
+ </quote>
+
+ It uses the command line, config file, and default values in the
+ correct order of precedence to determine the default visual value.
+ It is up to the driver to check the result to see that it supports
+ it. If not the &s.code;ChipPreInit()&e.code; function should
+ return &s.code;FALSE&e.code;.
+
+ On success, this function prints a message showing the default visual
+ selected, and returns &s.code;TRUE&e.code;.
+
+ On failure it prints an error message and returns &s.code;FALSE&e.code;.
+
+ </quote>
+
+ &s.code;Bool xf86SetGamma(ScrnInfoPtr scrp, Gamma gamma)&e.code;
+ <quote><p>
+ This function sets the &s.code;gamma&e.code; field of the
+ &s.code;ScrnInfoRec&e.code;. It would normally be called fairly
+ early from the &s.code;ChipPreInit()&e.code; function in cases
+ where the driver supports gamma correction.
+
+ It requires that the &s.code;monitor&e.code; field of the
+ &s.code;ScrnInfoRec&e.code; be initialised prior to calling it.
+
+ The parameters passed are:
+
+ &s.code;gamma&e.code;
+ <quote><p>
+ driver's preferred default gamma if no other is given.
+ If zero (&s.code;< 0.01&e.code;), use the overall server
+ default.
+
+ </quote>
+
+ It uses the command line, config file, and default values in the
+ correct order of precedence to determine the gamma value. It is
+ up to the driver to check the results to see that it supports
+ them. If not the &s.code;ChipPreInit()&e.code; function should
+ return &s.code;FALSE&e.code;.
+
+ On success, this function prints a message showing the gamma
+ value selected, and returns &s.code;TRUE&e.code;.
+
+ On failure it prints an error message and returns &s.code;FALSE&e.code;.
+
+ </quote>
+
+ &s.code;void xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)&e.code;
+ <quote><p>
+ This function sets the &s.code;xDpi&e.code; and &s.code;yDpi&e.code;
+ fields of the &s.code;ScrnInfoRec&e.code;. The driver can specify
+ preferred defaults by setting &s.code;x&e.code; and &s.code;y&e.code;
+ to non-zero values. The &s.cmd;-dpi&e.cmd; command line option
+ overrides all other settings. Otherwise, if the
+ &s.key;DisplaySize&e.key; entry is present in the screen's &k.monitor;
+ config file section, it is used together with the virtual size to
+ calculate the dpi values. This function should be called after
+ all the mode resolution has been done.
+
+ </quote>
+
+ &s.code;void xf86SetBlackWhitePixels(ScrnInfoPtr pScrn)&e.code;
+ <quote><p>
+ This functions sets the &s.code;blackPixel&e.code; and
+ &s.code;whitePixel&e.code; fields of the &s.code;ScrnInfoRec&e.code;
+ according to whether or not the &s.cmd;-flipPixels&e.cmd; command
+ line options is present.
+
+ </quote>
+
+ &s.code;const char *xf86GetVisualName(int visual)&e.code;
+ <quote><p>
+ Returns a printable string with the visual name matching the
+ numerical visual class provided. If the value is outside the
+ range of valid visual classes, &s.code;NULL&e.code; is returned.
+
+ </quote>
+ </quote>
+
+
+<sect1>Primary Mode functions
+<p>
+
+The primary mode helper functions are those which would normally be
+used by a driver, unless it has unusual requirements which cannot
+be catered for the by the helpers.
+
+ <quote><p>
+ &s.code;int xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
+ &f.indent;char **modeNames, ClockRangePtr clockRanges,
+ &f.indent;int *linePitches, int minPitch, int maxPitch,
+ &f.indent;int pitchInc, int minHeight, int maxHeight,
+ &f.indent;int virtualX, int virtualY,
+ &f.indent;unsigned long apertureSize,
+ &f.indent;LookupModeFlags strategy)&e.code;
+ <quote><p>
+ This function basically selects the set of modes to use based on
+ those available and the various constraints. It also sets some
+ other related parameters. It is normally called near the end of
+ the &s.code;ChipPreInit()&e.code; function.
+
+ The parameters passed to the function are:
+
+ &s.code;availModes&e.code;
+ <quote><p>
+ List of modes available for the monitor.
+
+ </quote>
+ &s.code;modeNames&e.code;
+ <quote><p>
+ List of mode names that the screen is requesting.
+
+ </quote>
+ &s.code;clockRanges&e.code;
+ <quote><p>
+ A list of clock ranges allowed by the driver. Each
+ range includes whether interlaced or multiscan modes
+ are supported for that range. See below for more on
+ &s.code;clockRanges&e.code;.
+
+ </quote>
+ &s.code;linePitches&e.code;
+ <quote><p>
+ List of line pitches supported by the driver.
+ This is optional and should be &s.code;NULL&e.code; when
+ not used.
+
+ </quote>
+ &s.code;minPitch&e.code;
+ <quote><p>
+ Minimum line pitch supported by the driver. This must
+ be supplied when &s.code;linePitches&e.code; is
+ &s.code;NULL&e.code;, and is ignored otherwise.
+
+ </quote>
+ &s.code;maxPitch&e.code;
+ <quote><p>
+ Maximum line pitch supported by the driver. This is
+ required when &s.code;minPitch&e.code; is required.
+
+ </quote>
+ &s.code;pitchInc&e.code;
+ <quote><p>
+ Granularity of horizontal pitch values as supported by
+ the chipset. This is expressed in bits. This must be
+ supplied.
+
+ </quote>
+ &s.code;minHeight&e.code;
+ <quote><p>
+ minimum virtual height allowed. If zero, no limit is
+ imposed.
+
+ </quote>
+ &s.code;maxHeight&e.code;
+ <quote><p>
+ maximum virtual height allowed. If zero, no limit is
+ imposed.
+
+ </quote>
+ &s.code;virtualX&e.code;
+ <quote><p>
+ If greater than zero, this is the virtual width value
+ that will be used. Otherwise, the virtual width is
+ chosen to be the smallest that can accommodate the modes
+ selected.
+
+ </quote>
+ &s.code;virtualY&e.code;
+ <quote><p>
+ If greater than zero, this is the virtual height value
+ that will be used. Otherwise, the virtual height is
+ chosen to be the smallest that can accommodate the modes
+ selected.
+
+ </quote>
+ &s.code;apertureSize&e.code;
+ <quote><p>
+ The size (in bytes) of the aperture used to access video
+ memory.
+
+ </quote>
+ &s.code;strategy&e.code;
+ <quote><p>
+ The strategy to use when choosing from multiple modes
+ with the same name. The options are:
+
+ &s.code;LOOKUP_DEFAULT&e.code;
+ <quote>???</quote>
+ &s.code;LOOKUP_BEST_REFRESH&e.code;
+ <quote>mode with best refresh rate</quote>
+ &s.code;LOOKUP_CLOSEST_CLOCK&e.code;
+ <quote>mode with closest matching clock</quote>
+ &s.code;LOOKUP_LIST_ORDER&e.code;
+ <quote>first usable mode in list</quote>
+
+ The following options can also be combined (OR'ed) with
+ one of the above:
+
+ &s.code;LOOKUP_CLKDIV2&e.code;
+ <quote>Allow halved clocks</quote>
+ &s.code;LOOKUP_OPTIONAL_TOLERANCES&e.code;
+ <quote>Allow missing horizontal sync and/or vertical refresh
+ ranges in the XF86Config Monitor section</quote>
+
+ &s.code;LOOKUP_OPTIONAL_TOLERANCES&e.code; should only be
+ specified when the driver can ensure all modes it generates
+ can sync on, or at least not damage, the monitor or digital
+ flat panel. Horizontal sync and/or vertical refresh ranges
+ specified by the user will still be honoured (and acted upon).
+
+ </quote>
+
+ This function requires that the following fields of the
+ &s.code;ScrnInfoRec&e.code; are initialised prior to calling it:
+
+ &s.code;clock[]&e.code;
+ <quote>List of discrete clocks (when non-programmable)</quote>
+ &s.code;numClocks&e.code;
+ <quote>Number of discrete clocks (when non-programmable)</quote>
+ &s.code;progClock&e.code;
+ <quote>Whether the clock is programmable or not</quote>
+ &s.code;monitor&e.code;
+ <quote>Pointer to the applicable XF86Config monitor section</quote>
+ &s.code;fdFormat&e.code;
+ <quote>Format of the screen buffer</quote>
+ &s.code;videoRam&e.code;
+ <quote>total video memory size (in bytes)</quote>
+ &s.code;maxHValue&e.code;
+ <quote>Maximum horizontal timing value allowed</quote>
+ &s.code;maxVValue&e.code;
+ <quote>Maximum vertical timing value allowed</quote>
+ &s.code;xInc&e.code;
+ <quote>Horizontal timing increment in pixels (defaults to 8)</quote>
+
+ This function fills in the following &s.code;ScrnInfoRec&e.code;
+ fields:
+
+ &s.code;modePool&e.code;
+ <quote><p>
+ A subset of the modes available to the monitor which
+ are compatible with the driver.
+
+ </quote>
+ &s.code;modes&e.code;
+ <quote><p>
+ One mode entry for each of the requested modes, with
+ the status field of each filled in to indicate if
+ the mode has been accepted or not. This list of
+ modes is a circular list.
+
+ </quote>
+ &s.code;virtualX&e.code;
+ <quote><p>
+ The resulting virtual width.
+
+ </quote>
+ &s.code;virtualY&e.code;
+ <quote><p>
+ The resulting virtual height.
+
+ </quote>
+ &s.code;displayWidth&e.code;
+ <quote><p>
+ The resulting line pitch.
+
+ </quote>
+ &s.code;virtualFrom&e.code;
+ <quote><p>
+ Where the virtual size was determined from.
+
+ </quote>
+
+ The first stage of this function checks that the
+ &s.code;virtualX&e.code; and &s.code;virtualY&e.code; values
+ supplied (if greater than zero) are consistent with the line pitch
+ and &s.code;maxHeight&e.code; limitations. If not, an error
+ message is printed, and the return value is &s.code;-1&e.code;.
+
+ The second stage sets up the mode pool, eliminating immediately
+ any modes that exceed the driver's line pitch limits, and also
+ the virtual width and height limits (if greater than zero). For
+ each mode removed an informational message is printed at verbosity
+ level &s.code;2&e.code;. If the mode pool ends up being empty,
+ a warning message is printed, and the return value is
+ &s.code;0&e.code;.
+
+ The final stage is to lookup each mode name, and fill in the remaining
+ parameters. If an error condition is encountered, a message is
+ printed, and the return value is &s.code;-1&e.code;. Otherwise,
+ the return value is the number of valid modes found
+ (&s.code;0&e.code; if none are found).
+
+ Even if the supplied mode names include duplicates, no two names will
+ ever match the same mode. Furthermore, if the supplied mode names do not
+ yield a valid mode (including the case where no names are passed at all),
+ the function will continue looking through the mode pool until it finds
+ a mode that survives all checks, or until the mode pool is exhausted.
+
+ A message is only printed by this function when a fundamental
+ problem is found. It is intended that this function may be called
+ more than once if there is more than one set of constraints that
+ the driver can work within.
+
+ If this function returns &s.code;-1&e.code;, the
+ &s.code;ChipPreInit()&e.code; function should return
+ &s.code;FALSE&e.code;.
+
+ &s.code;clockRanges&e.code; is a linked list of clock ranges
+ allowed by the driver. If a mode doesn't fit in any of the defined
+ &s.code;clockRanges&e.code;, it is rejected. The first
+ &s.code;clockRange&e.code; that matches all requirements is used.
+ This structure needs to be initialized to NULL when allocated.
+
+ &s.code;clockRanges&e.code; contains the following fields:
+
+ &s.code;minClock&nl;
+ maxClock&e.code;
+ <quote><p>
+ The lower and upper mode clock bounds for which the rest
+ of the &s.code;clockRange&e.code; parameters apply.
+ Since these are the mode clocks, they are not scaled
+ with the &s.code;ClockMulFactor&e.code; and
+ &s.code;ClockDivFactor&e.code;. It is up to the driver
+ to adjust these values if they depend on the clock
+ scaling factors.
+
+ </quote>
+ &s.code;clockIndex&e.code;
+ <quote><p>
+ (not used yet) &s.code;-1&e.code; for programmable clocks
+
+ </quote>
+ &s.code;interlaceAllowed&e.code;
+ <quote><p>
+ &s.code;TRUE&e.code; if interlacing is allowed for this
+ range
+
+ </quote>
+ &s.code;doubleScanAllowed&e.code;
+ <quote><p>
+ &s.code;TRUE&e.code; if doublescan or multiscan is allowed
+ for this range
+
+ </quote>
+ &s.code;ClockMulFactor&nl;
+ ClockDivFactor&e.code;
+ <quote><p>
+ Scaling factors that are applied to the mode clocks ONLY
+ before selecting a clock index (when there is no
+ programmable clock) or a &s.code;SynthClock&e.code;
+ value. This is useful for drivers that support pixel
+ multiplexing or that need to scale the clocks because
+ of hardware restrictions (like sending 24bpp data to an
+ 8 bit RAMDAC using a tripled clock).
+
+ Note that these parameters describe what must be done
+ to the mode clock to achieve the data transport clock
+ between graphics controller and RAMDAC. For example
+ for &s.code;2:1&e.code; pixel multiplexing, two pixels
+ are sent to the RAMDAC on each clock. This allows the
+ RAMDAC clock to be half of the actual pixel clock.
+ Hence, &s.code;ClockMulFactor=1&e.code; and
+ &s.code;ClockDivFactor=2&e.code;. This means that the
+ clock used for clock selection (ie, determining the
+ correct clock index from the list of discrete clocks)
+ or for the &s.code;SynthClock&e.code; field in case of
+ a programmable clock is: (&s.code;mode-&gt;Clock *
+ ClockMulFactor) / ClockDivFactor&e.code;.
+
+ </quote>
+ &s.code;PrivFlags&e.code;
+ <quote><p>
+ This field is copied into the
+ &s.code;mode-&gt;PrivFlags&e.code; field when this
+ &s.code;clockRange&e.code; is selected by
+ &s.code;xf86ValidateModes()&e.code;. It allows the
+ driver to find out what clock range was selected, so it
+ knows it needs to set up pixel multiplexing or any other
+ range-dependent feature. This field is purely
+ driver-defined: it may contain flag bits, an index or
+ anything else (as long as it is an &s.code;INT&e.code;).
+ </quote>
+
+ Note that the &s.code;mode-&gt;SynthClock&e.code; field is always
+ filled in by &s.code;xf86ValidateModes()&e.code;: it will contain
+ the ``data transport clock'', which is the clock that will have
+ to be programmed in the chip when it has a programmable clock, or
+ the clock that will be picked from the clocks list when it is not
+ a programmable one. Thus:
+
+ &s.code;mode-&gt;SynthClock =
+ &f.indent;(mode-&gt;Clock * ClockMulFactor) / ClockDivFactor&e.code;
+
+ </quote>
+
+ &s.code;void xf86PruneDriverModes(ScrnInfoPtr scrp)&e.code;
+ <quote><p>
+ This function deletes modes in the modes field of the
+ &s.code;ScrnInfoRec&e.code; that have been marked as invalid.
+ This is normally run after having run
+ &s.code;xf86ValidateModes()&e.code; for the last time. For each
+ mode that is deleted, a warning message is printed out indicating
+ the reason for it being deleted.
+
+ </quote>
+
+ &s.code;void xf86SetCrtcForModes(ScrnInfoPtr scrp, int adjustFlags)&e.code;
+ <quote><p>
+ This function fills in the &s.code;Crtc*&e.code; fields for all
+ the modes in the &s.code;modes&e.code; field of the
+ &s.code;ScrnInfoRec&e.code;. The &s.code;adjustFlags&e.code;
+ parameter determines how the vertical CRTC values are scaled for
+ interlaced modes. They are halved if it is
+ &s.code;INTERLACE_HALVE_V&e.code;. The vertical CRTC values are
+ doubled for doublescan modes, and are further multiplied by the
+ &s.code;VScan&e.code; value.
+
+ This function is normally called after calling
+ &s.code;xf86PruneDriverModes()&e.code;.
+
+ </quote>
+
+ &s.code;void xf86PrintModes(ScrnInfoPtr scrp)&e.code;
+ <quote><p>
+ This function prints out the virtual size setting, and the line
+ pitch being used. It also prints out two lines for each mode being
+ used. The first line includes the mode's pixel clock, horizontal sync
+ rate, refresh rate, and whether it is interlaced, doublescanned and/or
+ multi-scanned. The second line is the mode's Modeline.
+
+ This function is normally called after calling
+ &s.code;xf86SetCrtcForModes()&e.code;.
+
+ </quote>
+ </quote>
+
+
+<sect1>Secondary Mode functions
+<p>
+
+The secondary mode helper functions are functions which are normally
+used by the primary mode helper functions, and which are not normally
+called directly by a driver. If a driver has unusual requirements
+and needs to do its own mode validation, it might be able to make
+use of some of these secondary mode helper functions.
+
+ <quote><p>
+ &s.code;int xf86GetNearestClock(ScrnInfoPtr scrp, int freq, Bool allowDiv2,
+ &f.indent;int *divider)&e.code;
+ <quote><p>
+ This function returns the index of the closest clock to the
+ frequency &s.code;freq&e.code; given (in kHz). It assumes that
+ the number of clocks is greater than zero. It requires that the
+ &s.code;numClocks&e.code; and &s.code;clock&e.code; fields of the
+ &s.code;ScrnInfoRec&e.code; are initialised. The
+ &s.code;allowDiv2&e.code; field determines if the clocks can be
+ halved. The &s.code;*divider&e.code; return value indicates
+ whether clock division is used when determining the clock returned.
+
+ This function is only for non-programmable clocks.
+
+ </quote>
+
+ &s.code;const char *xf86ModeStatusToString(ModeStatus status)&e.code;
+ <quote><p>
+ This function converts the &s.code;status&e.code; value to a
+ descriptive printable string.
+
+ </quote>
+
+ &s.code;ModeStatus xf86LookupMode(ScrnInfoPtr scrp, DisplayModePtr modep,
+ &f.indent;ClockRangePtr clockRanges, LookupModeFlags strategy)&e.code;
+ <quote><p>
+ This function takes a pointer to a mode with the name filled in,
+ and looks for a mode in the &s.code;modePool&e.code; list which
+ matches. The parameters of the matching mode are filled in to
+ &s.code;*modep&e.code;. The &s.code;clockRanges&e.code; and
+ &s.code;strategy&e.code; parameters are as for the
+ &s.code;xf86ValidateModes()&e.code; function above.
+
+ This function requires the &s.code;modePool&e.code;,
+ &s.code;clock[]&e.code;, &s.code;numClocks&e.code; and
+ &s.code;progClock&e.code; fields of the &s.code;ScrnInfoRec&e.code;
+ to be initialised before being called.
+
+ The return value is &s.code;MODE_OK&e.code; if a mode was found.
+ Otherwise it indicates why a matching mode could not be found.
+
+ </quote>
+
+ &s.code;ModeStatus xf86InitialCheckModeForDriver(ScrnInfoPtr scrp,
+ &f.indent;DisplayModePtr mode, ClockRangePtr clockRanges,
+ &f.indent;LookupModeFlags strategy, int maxPitch,
+ &f.indent;int virtualX, int virtualY)&e.code;
+ <quote><p>
+ This function checks the passed mode against some basic driver
+ constraints. Apart from the ones passed explicitly, the
+ &s.code;maxHValue&e.code; and &s.code;maxVValue&e.code; fields of
+ the &s.code;ScrnInfoRec&e.code; are also used. If the
+ &s.code;ValidMode&e.code; field of the &s.code;ScrnInfoRec&e.code;
+ is set, that function is also called to check the mode. Next, the
+ mode is checked against the monitor's constraints.
+
+ If the mode is consistent with all constraints, the return value
+ is &s.code;MODE_OK&e.code;. Otherwise the return value indicates
+ which constraint wasn't met.
+
+ </quote>
+
+ &s.code;void xf86DeleteMode(DisplayModePtr *modeList, DisplayModePtr mode)&e.code;
+ <quote><p>
+ This function deletes the &s.code;mode&e.code; given from the
+ &s.code;modeList&e.code;. It never prints any messages, so it is
+ up to the caller to print a message if required.
+
+ </quote>
+ </quote>
+
+<sect1>Functions for handling strings and tokens
+<p>
+
+ Tables associating strings and numerical tokens combined with the
+ following functions provide a compact way of handling strings from
+ the config file, and for converting tokens into printable strings.
+ The table data structure is:
+
+<quote><verb>
+typedef struct {
+ int token;
+ const char * name;
+} SymTabRec, *SymTabPtr;
+</verb></quote>
+
+ A table is an initialised array of &s.code;SymTabRec&e.code;. The
+ tokens must be non-negative integers. Multiple names may be mapped
+ to a single token. The table is terminated with an element with a
+ &s.code;token&e.code; value of &s.code;-1&e.code; and
+ &s.code;NULL&e.code; for the &s.code;name&e.code;.
+
+
+ <quote><p>
+ &s.code;const char *xf86TokenToString(SymTabPtr table, int token)&e.code;
+ <quote><p>
+ This function returns the first string in &s.code;table&e.code;
+ that matches &s.code;token&e.code;. If no match is found,
+ &s.code;NULL&e.code; is returned (NOTE, older versions of this
+ function would return the string "unknown" when no match is found).
+
+ </quote>
+
+ &s.code;int xf86StringToToken(SymTabPtr table, const char *string)&e.code;
+ <quote><p>
+ This function returns the first token in &s.code;table&e.code;
+ that matches &s.code;string&e.code;. The
+ &s.code;xf86NameCmp()&e.code; function is used to determine the
+ match. If no match is found, &s.code;-1&e.code; is returned.
+
+ </quote>
+ </quote>
+
+
+<sect1>Functions for finding which config file entries to use
+<p>
+
+ These functions can be used to select the appropriate config file
+ entries that match the detected hardware. They are described above
+ in the <ref id="probe" name="Probe"> and
+ <ref id="avail" name="Available Functions"> sections.
+
+
+<sect1>Probing discrete clocks on old hardware
+<p>
+
+ The &s.code;xf86GetClocks()&e.code; function may be used to assist
+ in finding the discrete pixel clock values on older hardware.
+
+
+ <quote><p>
+ &s.code;void xf86GetClocks(ScrnInfoPtr pScrn, int num,
+ &f.indent;Bool (*ClockFunc)(ScrnInfoPtr, int),
+ &f.indent;void (*ProtectRegs)(ScrnInfoPtr, Bool),
+ &f.indent;void (*BlankScreen)(ScrnInfoPtr, Bool),
+ &f.indent;int vertsyncreg, int maskval, int knownclkindex,
+ &f.indent;int knownclkvalue)&e.code;
+ <quote><p>
+ This function uses a comparative sampling method to measure the
+ discrete pixel clock values. The number of discrete clocks to
+ measure is given by &s.code;num&e.code;. &s.code;clockFunc&e.code;
+ is a function that selects the &s.code;n&e.code;'th clock. It
+ should also save or restore any state affected by programming the
+ clocks when the index passed is &s.code;CLK_REG_SAVE&e.code; or
+ &s.code;CLK_REG_RESTORE&e.code;. &s.code;ProtectRegs&e.code; is
+ a function that does whatever is required to protect the hardware
+ state while selecting a new clock. &s.code;BlankScreen&e.code;
+ is a function that blanks the screen. &s.code;vertsyncreg&e.code;
+ and &s.code;maskval&e.code; are the register and bitmask to
+ check for the presence of vertical sync pulses.
+ &s.code;knownclkindex&e.code; and &s.code;knownclkvalue&e.code;
+ are the index and value of a known clock. These are the known
+ references on which the comparative measurements are based. The
+ number of clocks probed is set in &s.code;pScrn-&gt;numClocks&e.code;,
+ and the probed clocks are set in the &s.code;pScrn-&gt;clock[]&e.code;
+ array. All of the clock values are in units of kHz.
+
+ </quote>
+
+ &s.code;void xf86ShowClocks(ScrnInfoPtr scrp, MessageType from)&e.code;
+ <quote><p>
+ Print out the pixel clocks &s.code;scrp-&gt;clock[]&e.code;.
+ &s.code;from&e.code; indicates whether the clocks were probed
+ or from the config file.
+
+ </quote>
+ </quote>
+
+<sect1>Other helper functions
+<p>
+ <quote><p>
+ &s.code;Bool xf86IsUnblank(int mode)&e.code;
+ <quote><p>
+ Returns &s.code;TRUE&e.code; when the screen saver mode specified
+ by &s.code;mode&e.code; requires the screen be unblanked,
+ and &s.code;FALSE&e.code; otherwise. The screen saver modes that
+ require blanking are &s.code;SCREEN_SAVER_ON&e.code; and
+ &s.code;SCREEN_SAVER_CYCLE&e.code;, and the screen saver modes that
+ require unblanking are &s.code;SCREEN_SAVER_OFF&e.code; and
+ &s.code;SCREEN_SAVER_FORCER&e.code;. Drivers may call this helper
+ from their &s.code;SaveScreen()&e.code; function to interpret the
+ screen saver modes.
+
+ </quote>
+ </quote>
+
+<sect>The vgahw module
+<p>
+
+The vgahw modules provides an interface for saving, restoring and
+programming the standard VGA registers, and for handling VGA colourmaps.
+
+<sect1>Data Structures
+<p>
+
+ The public data structures used by the vgahw module are
+ &s.code;vgaRegRec&e.code; and &s.code;vgaHWRec&e.code;. They are
+ defined in &s.code;vgaHW.h.&e.code;
+
+
+<sect1>General vgahw Functions
+<p>
+
+ <quote><p>
+ &s.code;Bool vgaHWGetHWRec(ScrnInfoPtr pScrn)&e.code;
+ <quote><p>
+ This function allocates a &s.code;vgaHWRec&e.code; structure, and
+ hooks it into the &s.code;ScrnInfoRec&e.code;'s
+ &s.code;privates&e.code;. Like all information hooked into the
+ &s.code;privates&e.code;, it is persistent, and only needs to be
+ allocated once per screen. This function should normally be called
+ from the driver's &s.code;ChipPreInit()&e.code; function. The
+ &s.code;vgaHWRec&e.code; is zero-allocated, and the following
+ fields are explicitly initialised:
+
+ &s.code;ModeReg.DAC[]&e.code;
+ <quote>initialised with a default colourmap</quote>
+ &s.code;ModeReg.Attribute[0x11]&e.code;
+ <quote>initialised with the default overscan index</quote>
+ &s.code;ShowOverscan&e.code;
+ <quote>initialised according to the "ShowOverscan" option</quote>
+ &s.code;paletteEnabled&e.code;
+ <quote>initialised to FALSE</quote>
+ &s.code;cmapSaved&e.code;
+ <quote>initialised to FALSE</quote>
+ &s.code;pScrn&e.code;
+ <quote>initialised to pScrn</quote>
+
+ In addition to the above, &s.code;vgaHWSetStdFuncs()&e.code; is
+ called to initialise the register access function fields with the
+ standard VGA set of functions.
+
+ Once allocated, a pointer to the &s.code;vgaHWRec&e.code; can be
+ obtained from the &s.code;ScrnInfoPtr&e.code; with the
+ &s.code;VGAHWPTR(pScrn)&e.code; macro.
+
+ </quote>
+
+ &s.code;void vgaHWFreeHWRec(ScrnInfoPtr pScrn)&e.code;
+ <quote><p>
+ This function frees a &s.code;vgaHWRec&e.code; structure. It
+ should be called from a driver's &s.code;ChipFreeScreen()&e.code;
+ function.
+
+ </quote>
+
+ &s.code;Bool vgaHWSetRegCounts(ScrnInfoPtr pScrn, int numCRTC,
+ &f.indent;int numSequencer, int numGraphics, int numAttribute)&e.code;
+ <quote><p>
+ This function allows the number of CRTC, Sequencer, Graphics and
+ Attribute registers to be changed. This makes it possible for
+ extended registers to be saved and restored with
+ &s.code;vgaHWSave()&e.code; and &s.code;vgaHWRestore()&e.code;.
+ This function should be called after a &s.code;vgaHWRec&e.code;
+ has been allocated with &s.code;vgaHWGetHWRec()&e.code;. The
+ default values are defined in &s.code;vgaHW.h&e.code; as follows:
+
+ <quote><verb>
+#define VGA_NUM_CRTC 25
+#define VGA_NUM_SEQ 5
+#define VGA_NUM_GFX 9
+#define VGA_NUM_ATTR 21
+ </verb></quote>
+
+ </quote>
+
+ &s.code;Bool vgaHWCopyReg(vgaRegPtr dst, vgaRegPtr src)&e.code;
+ <quote><p>
+ This function copies the contents of the VGA saved registers in
+ &s.code;src&e.code; to &s.code;dst&e.code;. Note that it isn't
+ possible to simply do this with &s.code;memcpy()&e.code; (or
+ similar). This function returns &s.code;TRUE&e.code; unless there
+ is a problem allocating space for the &s.code;CRTC&e.code and
+ related fields in &s.code;dst&e.code;.
+
+ </quote>
+
+ &s.code;void vgaHWSetStdFuncs(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ This function initialises the register access function fields of
+ &s.code;hwp&e.code; with the standard VGA set of functions. This
+ is called by &s.code;vgaHWGetHWRec()&e.code;, so there is usually
+ no need to call this explicitly. The register access functions
+ are described below. If the registers are shadowed in some other
+ port I/O space (for example a PCI I/O region), these functions
+ can be used to access the shadowed registers if
+ &s.code;hwp-&gt;PIOOffset&e.code; is initialised with
+ &s.code;offset&e.code;, calculated in such a way that when the
+ standard VGA I/O port value is added to it the correct offset into
+ the PIO area results. This value is initialised to zero in
+ &s.code;vgaHWGetHWRec()&e.code;. (Note: the PIOOffset functionality
+ is present in XFree86 4.1.0 and later.)
+
+ </quote>
+
+ &s.code;void vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset)&e.code;
+ <quote><p>
+ This function initialised the register access function fields of
+ hwp with a generic MMIO set of functions.
+ &s.code;hwp-&gt;MMIOBase&e.code; is initialised with
+ &s.code;base&e.code;, which must be the virtual address that the
+ start of MMIO area is mapped to. &s.code;hwp-&gt;MMIOOffset&e.code;
+ is initialised with &s.code;offset&e.code;, which must be calculated
+ in such a way that when the standard VGA I/O port value is added
+ to it the correct offset into the MMIO area results. That means
+ that these functions are only suitable when the VGA I/O ports are
+ made available in a direct mapping to the MMIO space. If that is
+ not the case, the driver will need to provide its own register
+ access functions. The register access functions are described
+ below.
+
+ </quote>
+
+ &s.code;Bool vgaHWMapMem(ScrnInfoPtr pScrn)&e.code;
+ <quote><p>
+ This function maps the VGA memory window. It requires that the
+ &s.code;vgaHWRec&e.code; be allocated. If a driver requires
+ non-default &s.code;MapPhys&e.code; or &s.code;MapSize&e.code;
+ settings (the physical location and size of the VGA memory window)
+ then those fields of the &s.code;vgaHWRec&e.code; must be initialised
+ before calling this function. Otherwise, this function initialiases
+ the default values of &s.code;0xA0000&e.code; for
+ &s.code;MapPhys&e.code; and &s.code;(64&nbsp;*&nbsp;1024)&e.code; for
+ &s.code;MapSize&e.code;. This function must be called before
+ attempting to save or restore the VGA state. If the driver doesn't
+ call it explicitly, the &s.code;vgaHWSave()&e.code; and
+ &s.code;vgaHWRestore()&e.code; functions may call it if they need
+ to access the VGA memory (in which case they will also call
+ &s.code;vgaHWUnmapMem()&e.code; to unmap the VGA memory before
+ exiting).
+
+ </quote>
+
+ &s.code;void vgaHWUnmapMem(ScrnInfoPtr pScrn)&e.code;
+ <quote><p>
+ This function unmaps the VGA memory window. It must only be called
+ after the memory has been mapped. The &s.code;Base&e.code; field
+ of the &s.code;vgaHWRec&e.code; field is set to &s.code;NULL&e.code;
+ to indicate that the memory is no longer mapped.
+
+ </quote>
+
+ &s.code;void vgaHWGetIOBase(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ This function initialises the &s.code;IOBase&e.code; field of the
+ &s.code;vgaHWRec&e.code;. This function must be called before
+ using any other functions that access the video hardware.
+
+ A macro &s.code;VGAHW_GET_IOBASE()&e.code; is also available in
+ &s.code;vgaHW.h&e.code; that returns the I/O base, and this may
+ be used when the vgahw module is not loaded (for example, in the
+ &s.code;ChipProbe()&e.code; function).
+
+ </quote>
+
+ &s.code;void vgaHWUnlock(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ This function unlocks the VGA &s.code;CRTC[0-7]&e.code; registers,
+ and must be called before attempting to write to those registers.
+
+ </quote>
+
+ &s.code;void vgaHWLock(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ This function locks the VGA &s.code;CRTC[0-7]&e.code; registers.
+
+ </quote>
+
+ &s.code;void vgaHWEnable(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ This function enables the VGA subsystem. (Note, this function is
+ present in XFree86 4.1.0 and later.).
+
+ </quote>
+
+ &s.code;void vgaHWDisable(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ This function disables the VGA subsystem. (Note, this function is
+ present in XFree86 4.1.0 and later.).
+
+ </quote>
+
+ &s.code;void vgaHWSave(ScrnInfoPtr pScrn, vgaRegPtr save, int flags)&e.code;
+ <quote><p>
+ This function saves the VGA state. The state is written to the
+ &s.code;vgaRegRec&e.code; pointed to by &s.code;save&e.code;.
+ &s.code;flags&e.code; is set to one or more of the following flags
+ ORed together:
+
+ &s.code;VGA_SR_MODE&e.code;
+ <quote>the mode setting registers are saved</quote>
+ &s.code;VGA_SR_FONTS&e.code;
+ <quote>the text mode font/text data is saved</quote>
+ &s.code;VGA_SR_CMAP&e.code;
+ <quote>the colourmap (LUT) is saved</quote>
+ &s.code;VGA_SR_ALL&e.code;
+ <quote>all of the above are saved</quote>
+
+ The &s.code;vgaHWRec&e.code; and its &s.code;IOBase&e.code; fields
+ must be initialised before this function is called. If
+ &s.code;VGA_SR_FONTS&e.code; is set in &s.code;flags&e.code;, the
+ VGA memory window must be mapped. If it isn't then
+ &s.code;vgaHWMapMem()&e.code; will be called to map it, and
+ &s.code;vgaHWUnmapMem()&e.code; will be called to unmap it
+ afterwards. &s.code;vgaHWSave()&e.code; uses the three functions
+ below in the order &s.code;vgaHWSaveColormap()&e.code;,
+ &s.code;vgaHWSaveMode()&e.code;, &s.code;vgaHWSaveFonts()&e.code; to
+ carry out the different save phases. It is undecided at this
+ stage whether they will remain part of the vgahw module's public
+ interface or not.
+
+ </quote>
+
+ &s.code;void vgaHWSaveMode(ScrnInfoPtr pScrn, vgaRegPtr save)&e.code;
+ <quote><p>
+ This function saves the VGA mode registers. They are saved to
+ the &s.code;vgaRegRec&e.code; pointed to by &s.code;save&e.code;.
+ The registers saved are:
+
+ <quote>
+ &s.code;MiscOut&nl;
+ CRTC[0-0x18]&nl;
+ Attribute[0-0x14]&nl;
+ Graphics[0-8]&nl;
+ Sequencer[0-4]&e.code;
+ </quote>
+
+ The number of registers actually saved may be modified by a prior call
+ to &s.code;vgaHWSetRegCounts()&e.code;.
+
+ </quote>
+
+ &s.code;void vgaHWSaveFonts(ScrnInfoPtr pScrn, vgaRegPtr save)&e.code;
+ <quote><p>
+ This function saves the text mode font and text data held in the
+ video memory. If called while in a graphics mode, no save is
+ done. The VGA memory window must be mapped with
+ &s.code;vgaHWMapMem()&e.code; before to calling this function.
+
+ On some platforms, one or more of the font/text plane saves may be
+ no-ops. This is the case when the platform's VC driver already
+ takes care of this.
+
+ </quote>
+
+ &s.code;void vgaHWSaveColormap(ScrnInfoPtr pScrn, vgaRegPtr save)&e.code;
+ <quote><p>
+ This function saves the VGA colourmap (LUT). Before saving it, it
+ attempts to verify that the colourmap is readable. In rare cases
+ where it isn't readable, a default colourmap is saved instead.
+
+ </quote>
+
+ &s.code;void vgaHWRestore(ScrnInfoPtr pScrn, vgaRegPtr restore, int flags)&e.code;
+ <quote><p>
+ This function programs the VGA state. The state programmed is
+ that contained in the &s.code;vgaRegRec&e.code; pointed to by
+ &s.code;restore&e.code;. &s.code;flags&e.code; is the same
+ as described above for the &s.code;vgaHWSave()&e.code; function.
+
+ The &s.code;vgaHWRec&e.code; and its &s.code;IOBase&e.code; fields
+ must be initialised before this function is called. If
+ &s.code;VGA_SR_FONTS&e.code; is set in &s.code;flags&e.code;, the
+ VGA memory window must be mapped. If it isn't then
+ &s.code;vgaHWMapMem()&e.code; will be called to map it, and
+ &s.code;vgaHWUnmapMem()&e.code; will be called to unmap it
+ afterwards. &s.code;vgaHWRestore()&e.code; uses the three functions
+ below in the order &s.code;vgaHWRestoreFonts()&e.code;,
+ &s.code;vgaHWRestoreMode()&e.code;,
+ &s.code;vgaHWRestoreColormap()&e.code; to carry out the different
+ restore phases. It is undecided at this stage whether they will
+ remain part of the vgahw module's public interface or not.
+
+ </quote>
+
+ &s.code;void vgaHWRestoreMode(ScrnInfoPtr pScrn, vgaRegPtr restore)&e.code;
+ <quote><p>
+ This function restores the VGA mode registers. They are restored
+ from the data in the &s.code;vgaRegRec&e.code; pointed to by
+ &s.code;restore&e.code;. The registers restored are:
+
+ <quote>
+ &s.code;MiscOut&nl;
+ CRTC[0-0x18]&nl;
+ Attribute[0-0x14]&nl;
+ Graphics[0-8]&nl;
+ Sequencer[0-4]&e.code;
+ </quote>
+
+ The number of registers actually restored may be modified by a prior call
+ to &s.code;vgaHWSetRegCounts()&e.code;.
+
+ </quote>
+
+ &s.code;void vgaHWRestoreFonts(ScrnInfoPtr pScrn, vgaRegPtr restore)&e.code;
+ <quote><p>
+ This function restores the text mode font and text data to the
+ video memory. The VGA memory window must be mapped with
+ &s.code;vgaHWMapMem()&e.code; before to calling this function.
+
+ On some platforms, one or more of the font/text plane restores
+ may be no-ops. This is the case when the platform's VC driver
+ already takes care of this.
+
+ </quote>
+
+ &s.code;void vgaHWRestoreColormap(ScrnInfoPtr pScrn, vgaRegPtr restore)&e.code;
+ <quote><p>
+ This function restores the VGA colourmap (LUT).
+
+ </quote>
+
+ &s.code;void vgaHWInit(ScrnInfoPtr pScrn, DisplayModePtr mode)&e.code;
+ <quote><p>
+ This function fills in the &s.code;vgaHWRec&e.code;'s
+ &s.code;ModeReg&e.code; field with the values appropriate for
+ programming the given video mode. It requires that the
+ &s.code;ScrnInfoRec&e.code;'s &s.code;depth&e.code; field is
+ initialised, which determines how the registers are programmed.
+
+ </quote>
+
+ &s.code;void vgaHWSeqReset(vgaHWPtr hwp, Bool start)&e.code;
+ <quote><p>
+ Do a VGA sequencer reset. If start is &s.code;TRUE&e.code;, the
+ reset is started. If start is &s.code;FALSE&e.code;, the reset
+ is ended.
+
+ </quote>
+
+ &s.code;void vgaHWProtect(ScrnInfoPtr pScrn, Bool on)&e.code;
+ <quote><p>
+ This function protects VGA registers and memory from corruption
+ during loads. It is typically called with on set to
+ &s.code;TRUE&e.code; before programming, and with on set to
+ &s.code;FALSE&e.code; after programming.
+
+ </quote>
+
+ &s.code;Bool vgaHWSaveScreen(ScreenPtr pScreen, int mode)&e.code;
+ <quote><p>
+ This function blanks and unblanks the screen. It is blanked when
+ &s.code;mode&e.code; is &s.code;SCREEN_SAVER_ON&e.code; or
+ &s.code;SCREEN_SAVER_CYCLE&e.code;, and unblanked when
+ &s.code;mode&e.code; is &s.code;SCREEN_SAVER_OFF&e.code; or
+ &s.code;SCREEN_SAVER_FORCER&e.code;.
+
+ </quote>
+
+ &s.code;void vgaHWBlankScreen(ScrnInfoPtr pScrn, Bool on)&e.code;
+ <quote><p>
+ This function blanks and unblanks the screen. It is blanked when
+ &s.code;on&e.code; is &s.code;FALSE&e.code;, and unblanked when
+ &s.code;on&e.code; is &s.code;TRUE&e.code;. This function is
+ provided for use in cases where the &s.code;ScrnInfoRec&e.code;
+ can't be derived from the &s.code;ScreenRec&e.code; (while probing
+ for clocks, for example).
+
+ </quote>
+ </quote>
+
+<sect1>VGA Colormap Functions
+<p>
+
+ The vgahw module uses the standard colormap support (see the
+ <ref id="cmap" name="Colormap Handling"> section. This is initialised
+ with the following function:
+
+ <quote>
+ &s.code;Bool vgaHWHandleColormaps(ScreenPtr pScreen)&e.code;
+ </quote>
+
+
+<sect1>VGA Register Access Functions
+<p>
+
+ The vgahw module abstracts access to the standard VGA registers by
+ using a set of functions held in the &s.code;vgaHWRec&e.code;. When
+ the &s.code;vgaHWRec&e.code; is created these function pointers are
+ initialised with the set of standard VGA I/O register access functions.
+ In addition to these, the vgahw module includes a basic set of MMIO
+ register access functions, and the &s.code;vgaHWRec&e.code; function
+ pointers can be initialised to these by calling the
+ &s.code;vgaHWSetMmioFuncs()&e.code; function described above. Some
+ drivers/platforms may require a different set of functions for VGA
+ access. The access functions are described here.
+
+
+ <quote><p>
+ &s.code;void writeCrtc(vgaHWPtr hwp, CARD8 index, CARD8 value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to CRTC register &s.code;index&e.code;.
+
+ </quote>
+
+ &s.code;CARD8 readCrtc(vgaHWPtr hwp, CARD8 index)&e.code;
+ <quote><p>
+ Return the value read from CRTC register &s.code;index&e.code;.
+
+ </quote>
+
+ &s.code;void writeGr(vgaHWPtr hwp, CARD8 index, CARD8 value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to Graphics Controller register
+ &s.code;index&e.code;.
+
+ </quote>
+
+ &s.code;CARD8 readGR(vgaHWPtr hwp, CARD8 index)&e.code;
+ <quote><p>
+ Return the value read from Graphics Controller register
+ &s.code;index&e.code;.
+
+ </quote>
+
+ &s.code;void writeSeq(vgaHWPtr hwp, CARD8 index, CARD8, value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to Sequencer register
+ &s.code;index&e.code;.
+
+ </quote>
+
+ &s.code;CARD8 readSeq(vgaHWPtr hwp, CARD8 index)&e.code;
+ <quote><p>
+ Return the value read from Sequencer register &s.code;index&e.code;.
+
+ </quote>
+
+ &s.code;void writeAttr(vgaHWPtr hwp, CARD8 index, CARD8, value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to Attribute Controller register
+ &s.code;index&e.code;. When writing out the index value this
+ function should set bit 5 (&s.code;0x20&e.code;) according to the
+ setting of &s.code;hwp-&gt;paletteEnabled&e.code; in order to
+ preserve the palette access state. It should be cleared when
+ &s.code;hwp-&gt;paletteEnabled&e.code; is &s.code;TRUE&e.code;
+ and set when it is &s.code;FALSE&e.code;.
+
+ </quote>
+
+ &s.code;CARD8 readAttr(vgaHWPtr hwp, CARD8 index)&e.code;
+ <quote><p>
+ Return the value read from Attribute Controller register
+ &s.code;index&e.code;. When writing out the index value this
+ function should set bit 5 (&s.code;0x20&e.code;) according to the
+ setting of &s.code;hwp-&gt;paletteEnabled&e.code; in order to
+ preserve the palette access state. It should be cleared when
+ &s.code;hwp-&gt;paletteEnabled&e.code; is &s.code;TRUE&e.code;
+ and set when it is &s.code;FALSE&e.code;.
+
+ </quote>
+
+ &s.code;void writeMiscOut(vgaHWPtr hwp, CARD8 value)&e.code;
+ <quote><p>
+ Write `&s.code;value&e.code;' to the Miscellaneous Output register.
+
+ </quote>
+
+ &s.code;CARD8 readMiscOut(vgwHWPtr hwp)&e.code;
+ <quote><p>
+ Return the value read from the Miscellaneous Output register.
+
+ </quote>
+
+ &s.code;void enablePalette(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ Clear the palette address source bit in the Attribute Controller
+ index register and set &s.code;hwp-&gt;paletteEnabled&e.code; to
+ &s.code;TRUE&e.code;.
+
+ </quote>
+
+ &s.code;void disablePalette(vgaHWPtr hwp)&e.code;
+ <quote><p>
+ Set the palette address source bit in the Attribute Controller
+ index register and set &s.code;hwp-&gt;paletteEnabled&e.code; to
+ &s.code;FALSE&e.code;.
+
+ </quote>
+
+ &s.code;void writeDacMask(vgaHWPtr hwp, CARD8 value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to the DAC Mask register.
+
+ </quote>
+
+ &s.code;CARD8 readDacMask(vgaHWptr hwp)&e.code;
+ <quote><p>
+ Return the value read from the DAC Mask register.
+
+ </quote>
+
+ &s.code;void writeDacReadAddress(vgaHWPtr hwp, CARD8 value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to the DAC Read Address register.
+
+ </quote>
+
+ &s.code;void writeDacWriteAddress(vgaHWPtr hwp, CARD8 value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to the DAC Write Address register.
+
+ </quote>
+
+ &s.code;void writeDacData(vgaHWPtr hwp, CARD8 value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to the DAC Data register.
+
+ </quote>
+
+ &s.code;CARD8 readDacData(vgaHWptr hwp)&e.code;
+ <quote><p>
+ Return the value read from the DAC Data register.
+
+ </quote>
+
+ &s.code;CARD8 readEnable(vgaHWptr hwp)&e.code;
+ <quote><p>
+ Return the value read from the VGA Enable register. (Note: This
+ function is present in XFree86 4.1.0 and later.)
+
+ </quote>
+
+ &s.code;void writeEnable(vgaHWPtr hwp, CARD8 value)&e.code;
+ <quote><p>
+ Write &s.code;value&e.code; to the VGA Enable register. (Note: This
+ function is present in XFree86 4.1.0 and later.)
+
+ </quote>
+ </quote>
+
+<sect>Some notes about writing a driver<label id="sample">
+<p>
+
+<em>NOTE: some parts of this are not up to date</em>
+
+The following is an outline for writing a basic unaccelerated driver
+for a PCI video card with a linear mapped framebuffer, and which has a
+VGA core. It is includes some general information that is relevant to
+most drivers (even those which don't fit that basic description).
+
+The information here is based on the initial conversion of the Matrox
+Millennium driver to the ``new design''. For a fleshing out and sample
+implementation of some of the bits outlined here, refer to that driver.
+Note that this is an example only. The approach used here will not be
+appropriate for all drivers.
+
+Each driver must reserve a unique driver name, and a string that is used
+to prefix all of its externally visible symbols. This is to avoid name
+space clashes when loading multiple drivers. The examples here are for
+the ``ZZZ'' driver, which uses the ``ZZZ'' or ``zzz'' prefix for its externally
+visible symbols.
+
+
+<sect1>Include files
+<p>
+
+ All drivers normally include the following headers:
+ <quote>
+ &s.code;"xf86.h"&nl;
+ "xf86_OSproc.h"&nl;
+ "xf86_ansic.h"&nl;
+ "xf86Resources.h"&e.code;
+ </quote>
+ Wherever inb/outb (and related things) are used the following should be
+ included:
+ <quote>
+ &s.code;"compiler.h"&e.code;
+ </quote>
+ Note: in drivers, this must be included after &s.code;"xf86_ansic.h"&e.code;.
+
+ Drivers that need to access PCI vendor/device definitions need this:
+ <quote>
+ &s.code;"xf86PciInfo.h"&e.code;
+ </quote>
+
+ Drivers that need to access the PCI config space need this:
+ <quote>
+ &s.code;"xf86Pci.h"&e.code;
+ </quote>
+
+ Drivers using the mi banking wrapper need:
+
+ <quote>
+ &s.code;"mibank.h"&e.code;
+ </quote>
+
+ Drivers that initialise a SW cursor need this:
+ <quote>
+ &s.code;"mipointer.h"&e.code;
+ </quote>
+
+ All drivers implementing backing store need this:
+ <quote>
+ &s.code;"mibstore.h"&e.code;
+ </quote>
+
+ All drivers using the mi colourmap code need this:
+ <quote>
+ &s.code;"micmap.h"&e.code;
+ </quote>
+
+ If a driver uses the vgahw module, it needs this:
+ <quote>
+ &s.code;"vgaHW.h"&e.code;
+ </quote>
+
+ Drivers supporting VGA or Hercules monochrome screens need:
+ <quote>
+ &s.code;"xf1bpp.h"&e.code;
+ </quote>
+
+ Drivers supporting VGA or EGC 16-colour screens need:
+ <quote>
+ &s.code;"xf4bpp.h"&e.code;
+ </quote>
+
+ Drivers using cfb need:
+ <quote>
+ &s.code;#define PSZ 8&nl;
+ #include "cfb.h"&nl;
+ #undef PSZ&e.code;
+ </quote>
+
+ Drivers supporting bpp 16, 24 or 32 with cfb need one or more of:
+ <quote>
+ &s.code;"cfb16.h"&nl;
+ "cfb24.h"&nl;
+ "cfb32.h"&e.code;
+ </quote>
+
+ The driver's own header file:
+ <quote>
+ &s.code;"zzz.h"&e.code;
+ </quote>
+
+ Drivers must NOT include the following:
+
+ <quote>
+ &s.code;"xf86Priv.h"&nl;
+ "xf86Privstr.h"&nl;
+ "xf86_libc.h"&nl;
+ "xf86_OSlib.h"&nl;
+ "Xos.h"&e.code;&nl;
+ any OS header
+ </quote>
+
+
+<sect1>Data structures and initialisation
+<p>
+
+<itemize>
+ <item>The following macros should be defined:
+ <code>
+#define VERSION <version-as-an-int>
+#define ZZZ_NAME "ZZZ" /* the name used to prefix messages */
+#define ZZZ_DRIVER_NAME "zzz" /* the driver name as used in config file */
+#define ZZZ_MAJOR_VERSION <int>
+#define ZZZ_MINOR_VERSION <int>
+#define ZZZ_PATCHLEVEL <int>
+ </code>
+<p>
+ NOTE: &s.code;ZZZ_DRIVER_NAME&e.code; should match the name of the
+ driver module without things like the "lib" prefix, the "_drv" suffix
+ or filename extensions.
+<p>
+
+ <item>A DriverRec must be defined, which includes the functions required
+ at the pre-probe phase. The name of this DriverRec must be an
+ upper-case version of ZZZ_DRIVER_NAME (for the purposes of static
+ linking).
+<p>
+ <code>
+DriverRec ZZZ = {
+ VERSION,
+ ZZZ_DRIVER_NAME,
+ ZZZIdentify,
+ ZZZProbe,
+ ZZZAvailableOptions,
+ NULL,
+ 0
+};
+ </code>
+
+ <item>Define list of supported chips and their matching ID:
+<p>
+ <code>
+static SymTabRec ZZZChipsets[] = {
+ { PCI_CHIP_ZZZ1234, "zzz1234a" },
+ { PCI_CHIP_ZZZ5678, "zzz5678a" },
+ { -1, NULL }
+};
+ </code>
+<p>
+ The token field may be any integer value that the driver may use to
+ uniquely identify the supported chipsets. For drivers that support
+ only PCI devices using the PCI device IDs might be a natural choice,
+ but this isn't mandatory. For drivers that support both PCI and other
+ devices (like ISA), some other ID should probably used. When other
+ IDs are used as the tokens it is recommended that the names be
+ defined as an &s.code;enum&e.code; type.
+<p>
+ <item>If the driver uses the &s.code;xf86MatchPciInstances(&e.code;)
+ helper (recommended for drivers that support PCI cards) a list that
+ maps PCI IDs to chip IDs and fixed resources must be defined:
+<p>
+ <code>
+static PciChipsets ZZZPciChipsets[] = {
+ { PCI_CHIP_ZZZ1234, PCI_CHIP_ZZZ1234, RES_SHARED_VGA },
+ { PCI_CHIP_ZZZ5678, PCI_CHIP_ZZZ5678, RES_SHARED_VGA },
+ { -1, -1, RES_UNDEFINED }
+}
+ </code>
+<p>
+ <item>Define the &s.code;XF86ModuleVersionInfo&e.code; struct for the
+ driver. This is required for the dynamically loaded version:
+<p>
+ <code>
+#ifdef XFree86LOADER
+static XF86ModuleVersionInfo zzzVersRec =
+{
+ "zzz",
+ MODULEVENDORSTRING,
+ MODINFOSTRING1,
+ MODINFOSTRING2,
+ XF86_VERSION_CURRENT,
+ ZZZ_MAJOR_VERSION, ZZZ_MINOR_VERSION, ZZZ_PATCHLEVEL,
+ ABI_CLASS_VIDEODRV,
+ ABI_VIDEODRV_VERSION,
+ MOD_CLASS_VIDEODRV,
+ {0,0,0,0}
+};
+#endif
+ </code>
+<p>
+ <item>Define a data structure to hold the driver's screen-specific data.
+ This must be used instead of global variables. This would be defined
+ in the &s.code;"zzz.h"&e.code; file, something like:
+<p>
+ <code>
+typedef struct {
+ type1 field1;
+ type2 field2;
+ int fooHack;
+ Bool pciRetry;
+ Bool noAccel;
+ Bool hwCursor;
+ CloseScreenProcPtr CloseScreen;
+ OptionInfoPtr Options;
+ ...
+} ZZZRec, *ZZZPtr;
+ </code>
+<p>
+ <item>Define the list of config file Options that the driver accepts. For
+ consistency between drivers those in the list of ``standard'' options
+ should be used where appropriate before inventing new options.
+<p>
+ <code>
+typedef enum {
+ OPTION_FOO_HACK,
+ OPTION_PCI_RETRY,
+ OPTION_HW_CURSOR,
+ OPTION_NOACCEL
+} ZZZOpts;
+
+static const OptionInfoRec ZZZOptions[] = {
+ { OPTION_FOO_HACK, "FooHack", OPTV_INTEGER, {0}, FALSE },
+ { OPTION_PCI_RETRY, "PciRetry", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_HW_CURSOR, "HWcursor", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
+ { -1, NULL, OPTV_NONE, {0}, FALSE }
+};
+ </code>
+<p>
+</itemize>
+
+<sect1>Functions
+<p>
+
+
+<sect2>SetupProc
+<p>
+
+ For dynamically loaded modules, a &s.code;ModuleData&e.code;
+ variable is required. It is should be the name of the driver
+ prepended to "ModuleData". A &s.code;Setup()&e.code; function is
+ also required, which calls &s.code;xf86AddDriver()&e.code; to add
+ the driver to the main list of drivers.
+
+ <code>
+#ifdef XFree86LOADER
+
+static MODULESETUPPROTO(mgaSetup);
+
+XF86ModuleData zzzModuleData = { &amp;zzzVersRec, zzzSetup, NULL };
+
+static pointer
+zzzSetup(pointer module, pointer opts, int *errmaj, int *errmin)
+{
+ static Bool setupDone = FALSE;
+
+ /* This module should be loaded only once, but check to be sure. */
+
+ if (!setupDone) {
+ /*
+ * Modules that this driver always requires may be loaded
+ * here by calling LoadSubModule().
+ */
+
+ setupDone = TRUE;
+ xf86AddDriver(&amp;MGA, module, 0);
+
+ /*
+ * The return value must be non-NULL on success even though
+ * there is no TearDownProc.
+ */
+ return (pointer)1;
+ } else {
+ if (errmaj) *errmaj = LDR_ONCEONLY;
+ return NULL;
+ }
+}
+#endif
+ </code>
+
+<sect2>GetRec, FreeRec
+<p>
+
+ A function is usually required to allocate the driver's
+ screen-specific data structure and hook it into the
+ &s.code;ScrnInfoRec&e.code;'s &s.code;driverPrivate&e.code; field.
+ The &s.code;ScrnInfoRec&e.code;'s &s.code;driverPrivate&e.code; is
+ initialised to &s.code;NULL&e.code;, so it is easy to check if the
+ initialisation has already been done. After allocating it, initialise
+ the fields. By using &s.code;xnfcalloc()&e.code; to do the allocation
+ it is zeroed, and if the allocation fails the server exits.
+<p>
+ NOTE:
+ When allocating structures from inside the driver which are defined
+ on the common level it is important to initialize the structure to
+ zero.
+ Only this guarantees that the server remains source compatible to
+ future changes in common level structures.
+
+ <code>
+static Bool
+ZZZGetRec(ScrnInfoPtr pScrn)
+{
+ if (pScrn->driverPrivate != NULL)
+ return TRUE;
+ pScrn->driverPrivate = xnfcalloc(sizeof(ZZZRec), 1);
+ /* Initialise as required */
+ ...
+ return TRUE;
+}
+ </code>
+
+ Define a macro in &s.code;"zzz.h"&e.code; which gets a pointer to
+ the &s.code;ZZZRec&e.code; when given &s.code;pScrn&e.code;:
+
+ <code>
+#define ZZZPTR(p) ((ZZZPtr)((p)->driverPrivate))
+ </code>
+
+ Define a function to free the above, setting it to &s.code;NULL&e.code;
+ once it has been freed:
+
+ <code>
+static void
+ZZZFreeRec(ScrnInfoPtr pScrn)
+{
+ if (pScrn->driverPrivate == NULL)
+ return;
+ xfree(pScrn->driverPrivate);
+ pScrn->driverPrivate = NULL;
+}
+ </code>
+
+<sect2>Identify
+<p>
+
+ Define the &s.code;Identify()&e.code; function. It is run before
+ the Probe, and typically prints out an identifying message, which
+ might include the chipsets it supports. This function is mandatory:
+
+ <code>
+static void
+ZZZIdentify(int flags)
+{
+ xf86PrintChipsets(ZZZ_NAME, "driver for ZZZ Tech chipsets",
+ ZZZChipsets);
+}
+ </code>
+
+<sect2>Probe
+<p>
+
+ Define the &s.code;Probe()&e.code; function. The purpose of this
+ is to find all instances of the hardware that the driver supports,
+ and for the ones not already claimed by another driver, claim the
+ slot, and allocate a &s.code;ScrnInfoRec&e.code;. This should be
+ a minimal probe, and it should under no circumstances leave the
+ state of the hardware changed. Because a device is found, don't
+ assume that it will be used. Don't do any initialisations other
+ than the required &s.code;ScrnInfoRec&e.code; initialisations.
+ Don't allocate any new data structures.
+
+ This function is mandatory.
+
+ NOTE: The &s.code;xf86DrvMsg()&e.code; functions cannot be used from
+ the Probe.
+
+ <code>
+static Bool
+ZZZProbe(DriverPtr drv, int flags)
+{
+ Bool foundScreen = FALSE;
+ int numDevSections, numUsed;
+ GDevPtr *devSections;
+ int *usedChips;
+ int i;
+
+ /*
+ * Find the config file Device sections that match this
+ * driver, and return if there are none.
+ */
+ if ((numDevSections = xf86MatchDevice(ZZZ_DRIVER_NAME,
+ &amp;devSections)) <= 0) {
+ return FALSE;
+ }
+
+ /*
+ * Since this is a PCI card, "probing" just amounts to checking
+ * the PCI data that the server has already collected. If there
+ * is none, return.
+ *
+ * Although the config file is allowed to override things, it
+ * is reasonable to not allow it to override the detection
+ * of no PCI video cards.
+ *
+ * The provided xf86MatchPciInstances() helper takes care of
+ * the details.
+ */
+ /* test if PCI bus present */
+ if (xf86GetPciVideoInfo()) {
+
+ numUsed = xf86MatchPciInstances(ZZZ_NAME, PCI_VENDOR_ZZZ,
+ ZZZChipsets, ZZZPciChipsets, devSections,
+ numDevSections, drv, &amp;usedChips);
+
+ for (i = 0; i < numUsed; i++) {
+ ScrnInfoPtr pScrn = NULL;
+ if ((pScrn = xf86ConfigPciEntity(pScrn, flags, usedChips[i],
+ ZZZPciChipsets, NULL, NULL,
+ NULL, NULL, NULL))) {
+ /* Allocate a ScrnInfoRec */
+ pScrn->driverVersion = VERSION;
+ pScrn->driverName = ZZZ_DRIVER_NAME;
+ pScrn->name = ZZZ_NAME;
+ pScrn->Probe = ZZZProbe;
+ pScrn->PreInit = ZZZPreInit;
+ pScrn->ScreenInit = ZZZScreenInit;
+ pScrn->SwitchMode = ZZZSwitchMode;
+ pScrn->AdjustFrame = ZZZAdjustFrame;
+ pScrn->EnterVT = ZZZEnterVT;
+ pScrn->LeaveVT = ZZZLeaveVT;
+ pScrn->FreeScreen = ZZZFreeScreen;
+ pScrn->ValidMode = ZZZValidMode;
+ foundScreen = TRUE;
+ /* add screen to entity */
+ }
+ }
+ xfree(usedChips);
+ }
+
+#ifdef HAS_ISA_DEVS
+ /*
+ * If the driver supports ISA hardware, the following block
+ * can be included too.
+ */
+ numUsed = xf86MatchIsaInstances(ZZZ_NAME, ZZZChipsets,
+ ZZZIsaChipsets, drv, ZZZFindIsaDevice,
+ devSections, numDevSections, &amp;usedChips);
+ for (i = 0; i < numUsed; i++) {
+ ScrnInfoPtr pScrn = NULL;
+ if ((pScrn = xf86ConfigIsaEntity(pScrn, flags, usedChips[i],
+ ZZZIsaChipsets, NULL, NULL, NULL,
+ NULL, NULL))) {
+ pScrn->driverVersion = VERSION;
+ pScrn->driverName = ZZZ_DRIVER_NAME;
+ pScrn->name = ZZZ_NAME;
+ pScrn->Probe = ZZZProbe;
+ pScrn->PreInit = ZZZPreInit;
+ pScrn->ScreenInit = ZZZScreenInit;
+ pScrn->SwitchMode = ZZZSwitchMode;
+ pScrn->AdjustFrame = ZZZAdjustFrame;
+ pScrn->EnterVT = ZZZEnterVT;
+ pScrn->LeaveVT = ZZZLeaveVT;
+ pScrn->FreeScreen = ZZZFreeScreen;
+ pScrn->ValidMode = ZZZValidMode;
+ foundScreen = TRUE;
+ }
+ }
+ xfree(usedChips);
+#endif /* HAS_ISA_DEVS */
+
+ xfree(devSections);
+ return foundScreen;
+ </code>
+
+<sect2>AvailableOptions
+<p>
+
+ Define the &s.code;AvailableOptions()&e.code; function. The purpose
+ of this is to return the available driver options back to the
+ -configure option, so that an XF86Config file can be built and the
+ user can see which options are available for them to use.
+
+<sect2>PreInit
+<p>
+
+ Define the &s.code;PreInit()&e.code; function. The purpose of
+ this is to find all the information required to determine if the
+ configuration is usable, and to initialise those parts of the
+ &s.code;ScrnInfoRec&e.code; that can be set once at the beginning
+ of the first server generation. The information should be found in
+ the least intrusive way possible.
+
+ This function is mandatory.
+
+ NOTES:
+ <enum>
+ <item>The &s.code;PreInit()&e.code; function is only called once
+ during the life of the X server (at the start of the first
+ generation).
+
+ <item>Data allocated here must be of the type that persists for
+ the life of the X server. This means that data that hooks into
+ the &s.code;ScrnInfoRec&e.code;'s &s.code;privates&e.code;
+ field should be allocated here, but data that hooks into the
+ &s.code;ScreenRec&e.code;'s &s.code;devPrivates&e.code; field
+ should not be allocated here. The &s.code;driverPrivate&e.code;
+ field should also be allocated here.
+
+ <item>Although the &s.code;ScrnInfoRec&e.code; has been allocated
+ before this function is called, the &s.code;ScreenRec&e.code;
+ has not been allocated. That means that things requiring it
+ cannot be used in this function.
+
+ <item>Very little of the &s.code;ScrnInfoRec&e.code; has been
+ initialised when this function is called. It is important to
+ get the order of doing things right in this function.
+
+ </enum>
+
+ <code>
+static Bool
+ZZZPreInit(ScrnInfoPtr pScrn, int flags)
+{
+ /* Fill in the monitor field */
+ pScrn->monitor = pScrn->confScreen->monitor;
+
+ /*
+ * If using the vgahw module, it will typically be loaded
+ * here by calling xf86LoadSubModule(pScrn, "vgahw");
+ */
+
+ /*
+ * Set the depth/bpp. Our preferred default depth/bpp is 8, and
+ * we support both 24bpp and 32bpp framebuffer layouts.
+ * This sets pScrn->display also.
+ */
+ if (!xf86SetDepthBpp(pScrn, 8, 8, 8,
+ Support24bppFb | Support32bppFb)) {
+ return FALSE;
+ } else {
+ if (depth/bpp isn't one we support) {
+ print error message;
+ return FALSE;
+ }
+ }
+ /* Print out the depth/bpp that was set */
+ xf86PrintDepthBpp(pScrn);
+
+ /* Set bits per RGB for 8bpp */
+ if (pScrn->depth <= 8) {
+ /* Take into account a dac_6_bit option here */
+ pScrn->rgbBits = 6 or 8;
+ }
+
+ /*
+ * xf86SetWeight() and xf86SetDefaultVisual() must be called
+ * after pScrn->display is initialised.
+ */
+
+ /* Set weight/mask/offset for depth > 8 */
+ if (pScrn->depth > 8) {
+ if (!xf86SetWeight(pScrn, defaultWeight, defaultMask)) {
+ return FALSE;
+ } else {
+ if (weight isn't one we support) {
+ print error message;
+ return FALSE;
+ }
+ }
+ }
+
+ /* Set the default visual. */
+ if (!xf86SetDefaultVisual(pScrn, -1)) {
+ return FALSE;
+ } else {
+ if (visual isn't one we support) {
+ print error message;
+ return FALSE;
+ }
+ }
+
+ /* If the driver supports gamma correction, set the gamma. */
+ if (!xf86SetGamma(pScrn, default_gamma)) {
+ return FALSE;
+ }
+
+ /* This driver uses a programmable clock */
+ pScrn->progClock = TRUE;
+
+ /* Allocate the ZZZRec driverPrivate */
+ if (!ZZZGetRec(pScrn)) {
+ return FALSE;
+ }
+
+ pZzz = ZZZPTR(pScrn);
+
+ /* Collect all of the option flags (fill in pScrn->options) */
+ xf86CollectOptions(pScrn, NULL);
+
+ /*
+ * Process the options based on the information in ZZZOptions.
+ * The results are written to pZzz->Options. If all of the options
+ * processing is done within this function a local variable "options"
+ * can be used instead of pZzz->Options.
+ */
+ if (!(pZzz->Options = xalloc(sizeof(ZZZOptions))))
+ return FALSE;
+ (void)memcpy(pZzz->Options, ZZZOptions, sizeof(ZZZOptions));
+ xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pZzz->Options);
+
+ /*
+ * Set various fields of ScrnInfoRec and/or ZZZRec based on
+ * the options found.
+ */
+ from = X_DEFAULT;
+ pZzz->hwCursor = FALSE;
+ if (xf86IsOptionSet(pZzz->Options, OPTION_HW_CURSOR)) {
+ from = X_CONFIG;
+ pZzz->hwCursor = TRUE;
+ }
+ xf86DrvMsg(pScrn->scrnIndex, from, "Using %s cursor\n",
+ pZzz->hwCursor ? "HW" : "SW");
+ if (xf86IsOptionSet(pZzz->Options, OPTION_NOACCEL)) {
+ pZzz->noAccel = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Acceleration disabled\n");
+ } else {
+ pZzz->noAccel = FALSE;
+ }
+ if (xf86IsOptionSet(pZzz->Options, OPTION_PCI_RETRY)) {
+ pZzz->UsePCIRetry = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "PCI retry enabled\n");
+ }
+ pZzz->fooHack = 0;
+ if (xf86GetOptValInteger(pZzz->Options, OPTION_FOO_HACK,
+ &amp;pZzz->fooHack)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Foo Hack set to %d\n",
+ pZzz->fooHack);
+ }
+
+ /*
+ * Find the PCI slot(s) that this screen claimed in the probe.
+ * In this case, exactly one is expected, so complain otherwise.
+ * Note in this case we're not interested in the card types so
+ * that parameter is set to NULL.
+ */
+ if ((i = xf86GetPciInfoForScreen(pScrn->scrnIndex, &amp;pciList, NULL))
+ != 1) {
+ print error message;
+ ZZZFreeRec(pScrn);
+ if (i > 0)
+ xfree(pciList);
+ return FALSE;
+ }
+ /* Note that pciList should be freed below when no longer needed */
+
+ /*
+ * Determine the chipset, allowing config file chipset and
+ * chipid values to override the probed information. The config
+ * chipset value has precedence over its chipid value if both
+ * are present.
+ *
+ * It isn't necessary to fill in pScrn->chipset if the driver
+ * keeps track of the chipset in its ZZZRec.
+ */
+
+ ...
+
+ /*
+ * Determine video memory, fb base address, I/O addresses, etc,
+ * allowing the config file to override probed values.
+ *
+ * Set the appropriate pScrn fields (videoRam is probably the
+ * most important one that other code might require), and
+ * print out the settings.
+ */
+
+ ...
+
+ /* Initialise a clockRanges list. */
+
+ ...
+
+ /* Set any other chipset specific things in the ZZZRec */
+
+ ...
+
+ /* Select valid modes from those available */
+
+ i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,
+ pScrn->display->modes, clockRanges,
+ NULL, minPitch, maxPitch, rounding,
+ minHeight, maxHeight,
+ pScrn->display->virtualX,
+ pScrn->display->virtualY,
+ pScrn->videoRam * 1024,
+ LOOKUP_BEST_REFRESH);
+ if (i == -1) {
+ ZZZFreeRec(pScrn);
+ return FALSE;
+ }
+
+ /* Prune the modes marked as invalid */
+
+ xf86PruneDriverModes(pScrn);
+
+ /* If no valid modes, return */
+
+ if (i == 0 || pScrn->modes == NULL) {
+ print error message;
+ ZZZFreeRec(pScrn);
+ return FALSE;
+ }
+
+ /*
+ * Initialise the CRTC fields for the modes. This driver expects
+ * vertical values to be halved for interlaced modes.
+ */
+ xf86SetCrtcForModes(pScrn, INTERLACE_HALVE_V);
+
+ /* Set the current mode to the first in the list. */
+ pScrn->currentMode = pScrn->modes;
+
+ /* Print the list of modes being used. */
+ xf86PrintModes(pScrn);
+
+ /* Set the DPI */
+ xf86SetDpi(pScrn, 0, 0);
+
+ /* Load bpp-specific modules */
+ switch (pScrn->bitsPerPixel) {
+ case 1:
+ mod = "xf1bpp";
+ break;
+ case 4:
+ mod = "xf4bpp";
+ break;
+ case 8:
+ mod = "cfb";
+ break;
+ case 16:
+ mod = "cfb16";
+ break;
+ case 24:
+ mod = "cfb24";
+ break;
+ case 32:
+ mod = "cfb32";
+ break;
+ }
+ if (mod && !xf86LoadSubModule(pScrn, mod))
+ ZZZFreeRec(pScrn);
+ return FALSE;
+
+ /* Load XAA if needed */
+ if (!pZzz->noAccel || pZzz->hwCursor)
+ if (!xf86LoadSubModule(pScrn, "xaa")) {
+ ZZZFreeRec(pScrn);
+ return FALSE;
+ }
+
+ /* Done */
+ return TRUE;
+}
+ </code>
+
+<sect2>MapMem, UnmapMem
+<p>
+
+ Define functions to map and unmap the video memory and any other
+ memory apertures required. These functions are not mandatory, but
+ it is often useful to have such functions.
+
+ <code>
+static Bool
+ZZZMapMem(ScrnInfoPtr pScrn)
+{
+ /* Call xf86MapPciMem() to map each PCI memory area */
+ ...
+ return TRUE or FALSE;
+}
+
+static Bool
+ZZZUnmapMem(ScrnInfoPtr pScrn)
+{
+ /* Call xf86UnMapVidMem() to unmap each memory area */
+ ...
+ return TRUE or FALSE;
+}
+ </code>
+
+<sect2>Save, Restore
+<p>
+
+ Define functions to save and restore the original video state. These
+ functions are not mandatory, but are often useful.
+
+ <code>
+static void
+ZZZSave(ScrnInfoPtr pScrn)
+{
+ /*
+ * Save state into per-screen data structures.
+ * If using the vgahw module, vgaHWSave will typically be
+ * called here.
+ */
+ ...
+}
+
+static void
+ZZZRestore(ScrnInfoPtr pScrn)
+{
+ /*
+ * Restore state from per-screen data structures.
+ * If using the vgahw module, vgaHWRestore will typically be
+ * called here.
+ */
+ ...
+}
+ </code>
+
+<sect2>ModeInit
+<p>
+
+ Define a function to initialise a new video mode. This function isn't
+ mandatory, but is often useful.
+
+ <code>
+static Bool
+ZZZModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
+{
+ /*
+ * Program a video mode. If using the vgahw module,
+ * vgaHWInit and vgaRestore will typically be called here.
+ * Once up to the point where there can't be a failure
+ * set pScrn->vtSema to TRUE.
+ */
+ ...
+}
+ </code>
+
+<sect2>ScreenInit
+<p>
+
+ Define the &s.code;ScreenInit()&e.code; function. This is called
+ at the start of each server generation, and should fill in as much
+ of the &s.code;ScreenRec&e.code; as possible as well as any other
+ data that is initialised once per generation. It should initialise
+ the framebuffer layers it is using, and initialise the initial video
+ mode.
+
+ This function is mandatory.
+
+ NOTE: The &s.code;ScreenRec&e.code; (&s.code;pScreen&e.code;) is
+ passed to this driver, but it and the
+ &s.code;ScrnInfoRecs&e.code; are not yet hooked into each
+ other. This means that in this function, and functions it
+ calls, one cannot be found from the other.
+
+ <code>
+static Bool
+ZZZScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
+{
+ /* Get the ScrnInfoRec */
+ pScrn = xf86Screens[pScreen->myNum];
+
+ /*
+ * If using the vgahw module, its data structures and related
+ * things are typically initialised/mapped here.
+ */
+
+ /* Save the current video state */
+ ZZZSave(pScrn);
+
+ /* Initialise the first mode */
+ ZZZModeInit(pScrn, pScrn->currentMode);
+
+ /* Set the viewport if supported */
+
+ ZZZAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
+
+ /*
+ * Setup the screen's visuals, and initialise the framebuffer
+ * code.
+ */
+
+ /* Reset the visual list */
+ miClearVisualTypes();
+
+ /*
+ * Setup the visuals supported. This driver only supports
+ * TrueColor for bpp > 8, so the default set of visuals isn't
+ * acceptable. To deal with this, call miSetVisualTypes with
+ * the appropriate visual mask.
+ */
+
+ if (pScrn->bitsPerPixel > 8) {
+ if (!miSetVisualTypes(pScrn->depth, TrueColorMask,
+ pScrn->rgbBits, pScrn->defaultVisual))
+ return FALSE;
+ } else {
+ if (!miSetVisualTypes(pScrn->depth,
+ miGetDefaultVisualMask(pScrn->depth),
+ pScrn->rgbBits, pScrn->defaultVisual))
+ return FALSE;
+ }
+
+ /*
+ * Initialise the framebuffer.
+ */
+
+ switch (pScrn->bitsPerPixel) {
+ case 1:
+ ret = xf1bppScreenInit(pScreen, FbBase,
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi,
+ pScrn->displayWidth);
+ break;
+ case 4:
+ ret = xf4bppScreenInit(pScreen, FbBase,
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi,
+ pScrn->displayWidth);
+ break;
+ case 8:
+ ret = cfbScreenInit(pScreen, FbBase,
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi,
+ pScrn->displayWidth);
+ break;
+ case 16:
+ ret = cfb16ScreenInit(pScreen, FbBase,
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi,
+ pScrn->displayWidth);
+ break;
+ case 24:
+ ret = cfb24ScreenInit(pScreen, FbBase,
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi,
+ pScrn->displayWidth);
+ break;
+ case 32:
+ ret = cfb32ScreenInit(pScreen, FbBase,
+ pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi,
+ pScrn->displayWidth);
+ break;
+ default:
+ print a message about an internal error;
+ ret = FALSE;
+ break;
+ }
+
+ if (!ret)
+ return FALSE;
+
+ /* Override the default mask/offset settings */
+ if (pScrn->bitsPerPixel > 8) {
+ for (i = 0, visual = pScreen->visuals;
+ i < pScreen->numVisuals; i++, visual++) {
+ if ((visual->class | DynamicClass) == DirectColor) {
+ visual->offsetRed = pScrn->offset.red;
+ visual->offsetGreen = pScrn->offset.green;
+ visual->offsetBlue = pScrn->offset.blue;
+ visual->redMask = pScrn->mask.red;
+ visual->greenMask = pScrn->mask.green;
+ visual->blueMask = pScrn->mask.blue;
+ }
+ }
+ }
+
+ /*
+ * If banking is needed, initialise an miBankInfoRec (defined in
+ * "mibank.h"), and call miInitializeBanking().
+ */
+ if (!miInitializeBanking(pScreen, pScrn->virtualX, pScrn->virtualY,
+ pScrn->displayWidth, pBankInfo))
+ return FALSE;
+
+ /*
+ * If backing store is to be supported (as is usually the case),
+ * initialise it.
+ */
+ miInitializeBackingStore(pScreen);
+
+ /*
+ * Set initial black & white colourmap indices.
+ */
+ xf86SetBlackWhitePixels(pScreen);
+
+ /*
+ * Install colourmap functions. If using the vgahw module,
+ * vgaHandleColormaps would usually be called here.
+ */
+
+ ...
+
+ /*
+ * Initialise cursor functions. This example is for the mi
+ * software cursor.
+ */
+ miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
+
+ /* Initialise the default colourmap */
+ switch (pScrn->depth) {
+ case 1:
+ if (!xf1bppCreateDefColormap(pScreen))
+ return FALSE;
+ break;
+ case 4:
+ if (!xf4bppCreateDefColormap(pScreen))
+ return FALSE;
+ break;
+ default:
+ if (!cfbCreateDefColormap(pScreen))
+ return FALSE;
+ break;
+ }
+
+ /*
+ * Wrap the CloseScreen vector and set SaveScreen.
+ */
+ ZZZPTR(pScrn)->CloseScreen = pScreen->CloseScreen;
+ pScreen->CloseScreen = ZZZCloseScreen;
+ pScreen->SaveScreen = ZZZSaveScreen;
+
+ /* Report any unused options (only for the first generation) */
+ if (serverGeneration == 1) {
+ xf86ShowUnusedOptions(pScrn->scrnIndex, pScrn->options);
+ }
+
+ /* Done */
+ return TRUE;
+}
+ </code>
+
+
+<sect2>SwitchMode
+<p>
+
+ Define the &s.code;SwitchMode()&e.code; function if mode switching
+ is supported by the driver.
+
+ <code>
+static Bool
+ZZZSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
+{
+ return ZZZModeInit(xf86Screens[scrnIndex], mode);
+}
+ </code>
+
+
+<sect2>AdjustFrame
+<p>
+
+ Define the &s.code;AdjustFrame()&e.code; function if the driver
+ supports this.
+
+ <code>
+static void
+ZZZAdjustFrame(int scrnIndex, int x, int y, int flags)
+{
+ /* Adjust the viewport */
+}
+ </code>
+
+
+<sect2>EnterVT, LeaveVT
+<p>
+
+ Define the &s.code;EnterVT()&e.code; and &s.code;LeaveVT()&e.code;
+ functions.
+
+ These functions are mandatory.
+
+ <code>
+static Bool
+ZZZEnterVT(int scrnIndex, int flags)
+{
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ return ZZZModeInit(pScrn, pScrn->currentMode);
+}
+
+static void
+ZZZLeaveVT(int scrnIndex, int flags)
+{
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ ZZZRestore(pScrn);
+}
+ </code>
+
+<sect2>CloseScreen
+<p>
+
+ Define the &s.code;CloseScreen()&e.code; function:
+
+ This function is mandatory. Note that it unwraps the previously
+ wrapped &s.code;pScreen-&gt;CloseScreen&e.code;, and finishes by
+ calling it.
+
+ <code>
+static Bool
+ZZZCloseScreen(int scrnIndex, ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ if (pScrn->vtSema) {
+ ZZZRestore(pScrn);
+ ZZZUnmapMem(pScrn);
+ }
+ pScrn->vtSema = FALSE;
+ pScreen->CloseScreen = ZZZPTR(pScrn)->CloseScreen;
+ return (*pScreen->CloseScreen)(scrnIndex, pScreen);
+}
+ </code>
+
+<sect2>SaveScreen
+<p>
+
+ Define the &s.code;SaveScreen()&e.code; function (the screen
+ blanking function). When using the vgahw module, this will typically
+ be:
+
+ <code>
+static Bool
+ZZZSaveScreen(ScreenPtr pScreen, int mode)
+{
+ return vgaHWSaveScreen(pScreen, mode);
+}
+ </code>
+
+ This function is mandatory. Before modifying any hardware register
+ directly this function needs to make sure that the Xserver is active
+ by checking if &s.code;pScrn&e.code; is non-NULL and for
+ &s.code;pScrn->vtSema == TRUE&e.code;.
+
+<sect2>FreeScreen
+<p>
+
+ Define the &s.code;FreeScreen()&e.code; function. This function
+ is optional. It should be defined if the &s.code;ScrnInfoRec&e.code;
+ &s.code;driverPrivate&e.code; field is used so that it can be freed
+ when a screen is deleted by the common layer for reasons possibly
+ beyond the driver's control. This function is not used in during
+ normal (error free) operation. The per-generation data is freed by
+ the &s.code;CloseScreen()&e.code; function.
+
+ <code>
+static void
+ZZZFreeScreen(int scrnIndex, int flags)
+{
+ /*
+ * If the vgahw module is used vgaHWFreeHWRec() would be called
+ * here.
+ */
+ ZZZFreeRec(xf86Screens[scrnIndex]);
+}
+ </code>
+
+
+</article>