|
|
After completing the work described above, you should have a fully functional X server, but the performance is probably far below the capabilities of the hardware you are supporting.
The listed topics describe the most performance-critical drawing routines, roughly in the order in which they should be implemented. Measuring X server performance in a useful way is difficult; see ``Benchmarks, X''. For the purposes of this implementation we will focus on what makes commonly used X clients run more quickly, instead of what might produce better benchmark numbers.
As you implement each of the new drawing routines, you must update the xxxData.c file. This file contains the function pointers to the routines used by your driver to render graphics. Currently, the only rendering routine you have implemented is DrawImage(D3nfb). This means that the other drawing routines with their pointers in the xxxData.c file need to reduce all drawing operations (such as drawing a solid rectangle) down to the single current operation of drawing a full pixel image. This is why your driver is slow.
For SVR5 and SCO OpenServer 5, this generic code is in the ./Xserver/hw/sco/ports/gen directory. Optimizing your driver involves replacing what is referred to as ``gen'' code with code specific to your own graphics chip. To achieve this, do the following for each routine:
The following types of optimizations are recommended: