Manual Reference Pages  - vgatest (6)


vgatest - makes basic tests on any svgalib graphics mode


     The Test Pattern
See Also




Mode test program. First the program gives a list of the supported modes, then you enter a number and vgatest displays a test pattern in that mode.

The test pattern consists of a sequence of crosses (in different colors, if the mode support has different colors) in the top left corner.

Below you see either four horizontal color bars (white, red, green, and blue with increasing intensity from left to right) or vertical stripes.

If the mode has 32K or more colors, six squares will appear on top of that, each showing some different smooth color shades

The whole pattern is enclosed in a white border around the edge of the screen.

See below for details of the test pattern in case you need to verify that it is being displayed correctly or diagnose a problem with the display.

It also shows some details from vga_getmodeinfo(3).

To terminate the display and exit the program, hit any key. If that key is ’d’, vgatest dumps the values of all the SVGA registers to Standard Output, in the manner of vga_dumpregs() before exiting.

This demo is part of svgalib and can be found in the demos/ subdirectory of the original svgalib distribution. However, it is not installed in the system by default, s.t. it is unclear where you can find it if your svgalib was installed by some linux distribution. Even then, when you have the demo on your system, you probably won’t have the sources s.t. it is only of limited use for you.

In case of any such problem, simply get an svgalib distribution from the net. You even don’t need to install it. Just make in the demos/ subdirecty. As of this writing, svgalib-1.2.12.tar.gz is the latest version and can be retrieved by ftp from at /pub/Linux/libs/graphics and at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

    The Test Pattern

Here are the details of the test pattern that vgatest displays.

The screen is surrounded by a white frame which is at the very edges of the screen and one pixel thick.

At the top of the screen is a set of 16 overlapping crosses, lined up horizontally 5 pixels apart. Each cross is composed of a one pixel thick line sloping down at 45 degrees and one sloping up at 45 degrees meeting in the center. The top of each of these lines is at the 11th raster line on the screen and the bottom is at the 90th, so the crosses are 80 lines high. The leftmost pixel of the crosses is in the 11th column of the screen and the rightmost is in the 165th column. The lines are in multiple colors, but each line is one color (except where it intersects another line).

Below the crosses are either 4 horizontal bands of color or vertical bars. If the mode has 2 or 16 colors, you get the vertical bars. If the mode has 256, 32K, 64K, or 16M colors, you get the horizontal bands of color.

For a 2 color mode, the vertical bars are are one pixel wide white bars, spaced 4 pixels apart all the way across the screen on a black background. The first white bar is in the 3rd column. (But don’t forget the white border described above).

For a 16 color mode, the vertical bars are one pixel wide and contiguous, filling the 3rd column from the left through the 3rd column from the right. The bars cycle through each of the 16 colors from left to right.

The vertical bars start in the 101st raster line and end in the 3rd line from the bottom of the screen.

For a higher color mode, the color bands fill the 3rd column from the left through the 3rd column from the right. (leaving a column of black and the aforementioned white border at the edges). The bands are all the same height with nothing between them. They are as large as will fit starting in the 101st line of the screen and ending at or before the 3rd line from the bottom. So depending on the number of lines on the screen, there are 1, 2, 3, or 4 black lines between the lowest bar and the white bottom border.

The hues of the bands are, from top to bottom, white, red, green, and blue. Each band goes from zero to maximal brightness from left to right.

In addition to the color bands, for a mode with 32K or more colors, six squares, 64 pixels on a side are arranged in a matrix centered on the screen, spaced 32 pixels apart. They replace any other part of the test pattern. These are actual squares only if your monitor displays square pixels in this mode, i.e. 64 columns is the same length as 64 lines. Normal monitors, properly adjusted, display square pixels for 1024 x 768 modes, but may not for other geometries.

Each square contains 4096 different colors, one pixel per color, in smooth transition. In each top square, one color component (red, green, or blue) is zero another varies linearly in the vertical direction and the other varies linearly in the Y direction. The bottom squares are the same except that one color component is maximum instead of zero.


svgalib(7), vgagl(7), libvga.config(5), vga_getmodeinfo(3), threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testaccel(6), testgl(6), testlinear(6), plane(6), wrapdemo(6)


This manual page was edited by Michael Weller <>. The exact source of the referenced demo as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer <>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.

Svgalib (>= 1.9.13) vgatest (6) 01 January 2001
blog comments powered by Disqus