diff options
author | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 16:48:57 +0000 |
---|---|---|
committer | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 16:48:57 +0000 |
commit | 9508a382f8a9f241dab097d921b6d290c1c3a776 (patch) | |
tree | fa456480bae7040c3f971a70b390f2d091c680b5 /hw/xfree86/doc | |
parent | ded6147bfb5d75ff1e67c858040a628b61bc17d1 (diff) |
Initial revision
Diffstat (limited to 'hw/xfree86/doc')
-rw-r--r-- | hw/xfree86/doc/README.DRI | 1257 | ||||
-rw-r--r-- | hw/xfree86/doc/README.fonts | 1146 | ||||
-rw-r--r-- | hw/xfree86/doc/README.rapidaccess | 48 | ||||
-rw-r--r-- | hw/xfree86/doc/changelogs/CHANGELOG | 16588 | ||||
-rw-r--r-- | hw/xfree86/doc/changelogs/CHANGELOG.ND | 418 | ||||
-rw-r--r-- | hw/xfree86/doc/changelogs/CHANGELOG.R5 | 1249 | ||||
-rw-r--r-- | hw/xfree86/doc/devel/DebuggingHints | 192 | ||||
-rw-r--r-- | hw/xfree86/doc/devel/Domain.note | 159 | ||||
-rw-r--r-- | hw/xfree86/doc/devel/RAC.Notes | 696 | ||||
-rw-r--r-- | hw/xfree86/doc/devel/README.DRIcomp | 543 | ||||
-rw-r--r-- | hw/xfree86/doc/devel/Registry | 410 | ||||
-rw-r--r-- | hw/xfree86/doc/sgml/DESIGN.sgml | 7415 |
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          "> +] > + +<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->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->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 -> config file -> 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 ID << 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 < C < 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->options&e.code;. This function requires that + &s.code;pScrn->confScreen&e.code;, &s.code;pScrn->display&e.code;, + &s.code;pScrn->monitor&e.code;, + &s.code;pScrn->numEntities&e.code;, and + &s.code;pScrn->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 == 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->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->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 > 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->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->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->HDisplay&e.code; and + &s.code;mode->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 × 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 × 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->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 > 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->Clock * + ClockMulFactor) / ClockDivFactor&e.code;. + + </quote> + &s.code;PrivFlags&e.code; + <quote><p> + This field is copied into the + &s.code;mode->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->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->SynthClock = + &f.indent;(mode->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->numClocks&e.code;, + and the probed clocks are set in the &s.code;pScrn->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->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->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->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->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 * 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->paletteEnabled&e.code; in order to + preserve the palette access state. It should be cleared when + &s.code;hwp->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->paletteEnabled&e.code; in order to + preserve the palette access state. It should be cleared when + &s.code;hwp->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->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->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 = { &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(&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, + &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, &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, &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, + &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, &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->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> |