How to add an (S)VGA driver to XFree86 : Introduction
Previous: How to add an (S)VGA driver to XFree86
Next: Getting Started

## 1. Introduction

Adding support for a new SVGA chipset to XFree86 is a challenging project for someone who wants to learn more about hardware-level programming. It can be fraught with hazards (in particular, crashing the machine is all too common). But in the end, when the server comes up and functions, it is immensely satisfying.

Adding support for an SVGA chipset does not change any of the basic functioning of the server. It is still a dumb 8-bit PseudoColor server or 1-bit StaticGray server. Adding support for new hardware (e.g. accelerated chips) is a major undertaking, and is not anywhere near formalized enough yet that it can be documented.

Nonetheless, the driver-level programming here is a good introduction. And can well be the first step for adding support for an accelerated chipset, as many are SVGA-supersets. Writing an SVGA-level driver for the chipset can provide a stable development platform for making use of new features (in fact, this has been done for the S3, Cirrus, and WD accelerated chipsets, for internal use as the accelerated servers are developed for XFree86 2.0).

Now let's get down to it. In addition to this documentation, a stub driver has been provided. This should provide you a complete framework for your new driver. Don't let the size of this document persuade you that this is an overly difficult task. A lot of work has been put into making this document as close to complete as possible; hence it should, in theory, be possible to use this as a cookbook, and come out with a working driver when you reach the end. I do advise that you read it all the way through before starting.

How to add an (S)VGA driver to XFree86 : Introduction
Previous: How to add an (S)VGA driver to XFree86
Next: Getting Started