Linux Blog

testaccel

Section: Svgalib User Manual (6)
Updated: 29 July 1997
Index Return to Main Contents
 

NAME

testaccel - test the old style blitter functions and vga_ext_set()  

SYNOPSIS

testaccel [ -nowait ] [ { all | videomodes... } ]

 

DESCRIPTION

Program to test the old blitter functions in a screen mode. Checks the 8-bit wide color lookup tables on Mach32's with type 2 DACs as well. [I think '6bpp' and '8bpp' are silly names for the 8-bit LUT thing -- bpp is bits per pixel, in the framebuffer - HH :-)]

After each test it waits for a key press except when -nowait is given.

You can specify names of modes to test on the command line or specify all to loop over all svgalib modes.

The program will run on any card, however, most of the tests can only be performed on a Mach32.

The subtest are in turn:

1 -
For each 256 color mode the program sees if it is possible to enable a special mode with 8 bits per color in the RGB lookup table. If so, for example 256 different shades of blue can be implemented. The program displays as much blue shades as possible in a shade from dark (left) to bright (right) and some text in an opposite direction on top of it. In case 56 different shades are supported, the screen is divided and shows a rough 64 shades scale (ordinary vga) on top and the smooth shade below. Right now 256 different shades are only possible on a Mach32 with RAMDAC of type 2. For modes with few pixels only, the program might fail to print the text properly and will 'wrap' it around the screen edges.
2 -
Draws a bouncing 'linux' logo stopping after a fixed amount of 1 pixel steps. Uses vga_bitblt(3) on the image plus a one pixel outline in border color to move the pixel around the screen. The Mach32 is very fast in this discipline.
3 -
Draws filled rectangles using vga_fillblt(3). At first a series of larger to smaller centered rectangles is drawn to fill the screen. For 256 or less color modes these will use a sequence of 256 random colors. For 32K or more color modes it will use colors 0 up too, however, you'll usually just see a repeating series of blues (limitations of monitor/human eye, the blue's differ not enough for the eye to see). Then a bunch of random boxes in random places is drawn overwriting each other. The Mach32 is very fast in this discipline.
4 -
Draws small fish bitmaps and then larger linux logos in random positions using vga_imageblt(3). They just overlap each other The Mach32 is poor in this discipline. If you have a linear frame buffer enabled, it is used instead to perform this function (even if the program does not use a linear frame buffer otherwise). Usually this is twice as fast for Mach32.
5 -
Use vga_hlinelistblt(3) o do some simple polygon fills: squares, circles, diamonds of random sizes, positions and colors. Again, the Mach32 is very fast in this discipline, but somehow slowed down by the imperfect prototype of this function. Again, the polygons just overlap each other.

The resp. tests will only be performed where supported by the hardware. For Mach32 this means only SVGA 256, 32K, 64K color modes. The linear frame buffer emulated vga_imageblt(3) works for all SVGA modes though.

The program prints the number of pixels drawn and the time required plus the resulting rate of pixels per second. For Mach32 the rate depends on the amount of screen accesses (2 per pixel move for vga_bitblt(3), 1 per pixel move for vga_fillblt(3) and vga_hlinelistblt(3); also twice bytes are affected for 32K, 64K color modes). On a non VRAM card you'll also note the effect of the memory access caused by the generation of the video frames (more colors/rez/sync rates => less speed). Also, higher modes draw more pixels per call, thus less call and setup overhead.

Here are the rates for my card on an almost idle 486 EISA system which should be fairly optimal (2MB VRAM EISA Mach32) except maybe the linear frame buffer emulated imageblt which might be faster on PCI card:


Testing mode 1: G320x200x16...
Dacwidth test not applicable.
Testing mode 2: G640x200x16...
Dacwidth test not applicable.
Testing mode 3: G640x350x16...
Dacwidth test not applicable.
Testing mode 4: G640x480x16...
Dacwidth test not applicable.
Testing mode 5: G320x200x256...
Warning: Resolution too small, displayed text is
probably scrambled.

Has support for CLUT width 8 bit
Testing mode 6: G320x240x256...
Dacwidth test not applicable.
Testing mode 7: G320x400x256...
Dacwidth test not applicable.
Testing mode 8: G360x480x256...
Dacwidth test not applicable.
Testing mode 9: G640x480x2...
Dacwidth test not applicable.
Testing mode 10: G640x480x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 6.49 seconds -> 27.21 Megapels
Has FillBlt: 217884171 Pixels in 4.55 seconds -> 47.89 Megapels
Has ImageBlt: 17085000 Pixels in 3.07 seconds -> 5.57 Megapels
Has HlineLst: 20192124 Pixels in 0.57 seconds -> 35.42 Megapels
Testing mode 11: G800x600x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 6.65 seconds -> 26.56 Megapels
Has FillBlt: 343102613 Pixels in 6.23 seconds -> 55.07 Megapels
Has ImageBlt: 17085000 Pixels in 3.06 seconds -> 5.58 Megapels
Has HlineLst: 33166399 Pixels in 0.78 seconds -> 42.52 Megapels
Testing mode 12: G1024x768x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 6.88 seconds -> 25.67 Megapels
Has FillBlt: 603141286 Pixels in 9.78 seconds -> 61.67 Megapels
Has ImageBlt: 17085000 Pixels in 3.07 seconds -> 5.57 Megapels
Has HlineLst: 52958845 Pixels in 1.08 seconds -> 49.04 Megapels
Testing mode 13: G1280x1024x256...
Has support for CLUT width 8 bit
Has BitBlt: 176610000 Pixels in 7.10 seconds -> 24.87 Megapels
Has FillBlt: 1063820849 Pixels in 16.16 seconds -> 65.83 Megapels
Has ImageBlt: 17085000 Pixels in 3.07 seconds -> 5.57 Megapels
Has HlineLst: 95798478 Pixels in 1.75 seconds -> 54.74 Megapels
Testing mode 14: G320x200x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 12.30 seconds -> 14.36 Megapels
Has FillBlt: 41317334 Pixels in 3.61 seconds -> 11.45 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 3411068 Pixels in 0.23 seconds -> 14.83 Megapels
Testing mode 15: G320x200x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 12.29 seconds -> 14.37 Megapels
Has FillBlt: 42351016 Pixels in 4.12 seconds -> 10.28 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 3561694 Pixels in 0.23 seconds -> 15.49 Megapels
Testing mode 16: G320x200x16M...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 8.83 seconds -> 1.93 Megapels
Testing mode 17: G640x480x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.38 seconds -> 13.20 Megapels
Has FillBlt: 217723964 Pixels in 7.95 seconds -> 27.39 Megapels
Has ImageBlt: 17085000 Pixels in 5.94 seconds -> 2.88 Megapels
Has HlineLst: 19579110 Pixels in 0.74 seconds -> 26.46 Megapels
Testing mode 18: G640x480x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.37 seconds -> 13.21 Megapels
Has FillBlt: 221608034 Pixels in 8.28 seconds -> 26.76 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 21048202 Pixels in 0.79 seconds -> 26.64 Megapels
Testing mode 19: G640x480x16M...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 8.82 seconds -> 1.94 Megapels
Testing mode 20: G800x600x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.97 seconds -> 12.64 Megapels
Has FillBlt: 357205415 Pixels in 12.22 seconds -> 29.23 Megapels
Has ImageBlt: 17085000 Pixels in 5.92 seconds -> 2.89 Megapels
Has HlineLst: 34391335 Pixels in 1.16 seconds -> 29.65 Megapels
Testing mode 21: G800x600x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 13.97 seconds -> 12.64 Megapels
Has FillBlt: 348943970 Pixels in 11.87 seconds -> 29.40 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 34510200 Pixels in 1.17 seconds -> 29.50 Megapels
Testing mode 22: G800x600x16M...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 8.83 seconds -> 1.93 Megapels
Testing mode 23: G1024x768x32K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 14.60 seconds -> 12.10 Megapels
Has FillBlt: 608000981 Pixels in 18.62 seconds -> 32.65 Megapels
Has ImageBlt: 17085000 Pixels in 5.93 seconds -> 2.88 Megapels
Has HlineLst: 53767429 Pixels in 1.72 seconds -> 31.26 Megapels
Testing mode 24: G1024x768x64K...
Dacwidth test not applicable.
Has BitBlt: 176610000 Pixels in 14.60 seconds -> 12.10 Megapels
Has FillBlt: 601666798 Pixels in 18.80 seconds -> 32.00 Megapels
Has ImageBlt: 17085000 Pixels in 5.92 seconds -> 2.89 Megapels
Has HlineLst: 52037798 Pixels in 1.67 seconds -> 31.16 Megapels
Testing mode 32: G720x348x2...
Dacwidth test not applicable.
Testing mode 33: G320x200x16M32...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 11.60 seconds -> 1.47 Megapels
Testing mode 34: G640x480x16M32...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 11.62 seconds -> 1.47 Megapels
Testing mode 35: G800x600x16M32...
Dacwidth test not applicable.
Has ImageBlt: 17085000 Pixels in 11.62 seconds -> 1.47 Megapels

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 sunsite.unc.edu at /pub/Linux/libs/graphics and tsx-11.mit.edu at /pub/linux/sources/libs which will most probably be mirrored by a site close to you.

 

SEE ALSO

svgalib(7), vgagl(7), libvga.config(5), vga_ext_set(3), vga_bitblt(3), vga_fillblt(3), vga_hlinelistblt(3), vga_imageblt.3 threed(6), accel(6), bg_test(6), eventtest(6), forktest(6), fun(6), keytest(6), mousetest(6), scrolltest(6), speedtest(6), spin(6), testgl(6), testlinear(6), vgatest(6), plane(6), wrapdemo(6)

 

AUTHOR

This manual page was edited by Michael Weller <eowmob@exp-math.uni-essen.de>. He also wrote thise demo and it's documentation.


 

Index

NAME
SYNOPSIS
DESCRIPTION
SEE ALSO
AUTHOR