Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
accel(6)		      Svgalib User Manual		      accel(6)

NAME
       accel - tests the new style svgalib accelerator interface

SYNOPSIS
       accel

DESCRIPTION
       Test  new-style accelerated functions (As of this writing: Ark, Cirrus,
       Chips & Technologies cards, and Mach32 only).  For other	cards the demo
       will not	work (well it will complain  about  missing  accelerator  sup-
       port). Don't worry about	this.

       During  the development of the Mach32 new style driver for 1.2.12, this
       demo was	massively extended to check the	Mach32 functions.

       Upon startup it lists all supported SVGA	modes and asks you to enter  a
       number identifying the mode to be tested. The supported subfunctions of
       vga_accel(3)  in	 this  mode are	listed and the demo instructs to press
       <Return>	to start the demos.

       If supported, all drawing operations are	performed in the background.

       Then the	following tests	are performed:

   Positioning tests
       These tests were	originally intended to check that the accelerator com-
       mands work on the proper	screen locations. The screen shows 12 (4 x  3)
       smaller	areas  with red	crosses	in the corners.	When everything	is ok,
       the drawings should reach right in the corners of the crosses.

       A given card may	not support all	operations listed here.	In  that  case
       the  resp.  test	 area just shows the red crosses. For tests performed,
       the name	of the test is printed below the area.	The  tests  are	 (from
       left to right, top to bottom):

       1.     A	green box is drawn with	vga_accel(ACCEL_FILLBOX).

       2.     A	cross of green lines is	drawn with vga_accel(ACCEL_DRAWLINE).

       3.     A	 linux	pixmap	just  fitting  into  the crosses is drawn with
	      vga_accel(ACCEL_PUTIMAGE).

       4.     A	pixmap just fitting into the crosses is	 drawn	into  the  red
	      crosses  (by vgagl(5) which may or may not use the accelerator).
	      The pixmap is then copied	to a few  lines/columns	 below.	 Green
	      crosses mark the intended	destination position.

       5.     Works like 3. but	copies to an area above	the origin. The	accel-
	      erator  must  ensure  that the overlapping areas are handled non
	      corrupting. Thus,	watch that the copy operation is properly per-
	      formed.

       6.     A	green triangle is drawn	above the top/left to bottom/right di-
	      agonal by	use of vga_accel(ACCEL_DRAWHLINELIST).

       7.     Certain bitmaps are copied to the	screen.	In the corners	you'll
	      see the digits

	      0	     top/left, green on	red.

	      1	     top/right,	red on green.

	      2	     bottom/left, black	on white.

	      3	     bottom/right,  white  on black. Note that some black bor-
		     der, not the digit	will be	aligned	to the red crosses.

	      Finally, a yellow	wizard image is	drawn into the center.

	      The bit ordering for bitmaps is a	bit weird. Please  check  that
	      the digits are not mirrored or flipped.

       8.     This time	bitmap transparency is tested by drawing wizard	images
	      onto the aforementioned linux pixmap (left to right, top to bot-
	      tom) in yellow, red, green, and cyan. The	background of the yel-
	      low  wizard  is  masked out by a black border bitmap.  Note that
	      the wizard will not reach	 into  the  red	 corners  because  the
	      bitmap has some (transparent) border.

       9.     The  text	 below	this box is copied as a	monochrome bitmap from
	      the screen into the corners listed under 7. in the same colors.

       10.    Two green	rectangles with	an edge	cut out	 from  the  bottom  is
	      drawn using vga_accel(ACCEL_POLYLINE).Thereisanintendedbugwhich-
	      drawsthecenterofthe top line twice. If supported,	the lower rec-
	      tangle  is  drawn	in cyan	and with the xor raster	operation s.t.
	      the buggy	point is not drawn thus	leaving	a pin hole.

       11.    vga_accel(ACCEL_POLYHLINE)isusedtodrawsomegreenlineswhich-
	      makesthisarealook	like a green box with a	cut out, black M-style
	      shape.

       12.    A	weird green  polygon  is  filled  in  red  with	 vga_accel(AC-
	      CEL_POLYFILLMODE)	 using	the  techniques	given in vga_accel(3).
	      This needs some offscreen	memory.	If VGA memory is tight in that
	      resolution the test cannot be performed.

       After this screen, you'll have to hit <Return> to continue.

   Raster operations
       Again, red cross	bordered areas are drawn on the	screen,	this time  for
       each  of	 the  supported	raster operations. For ROP_AND and ROP_XOR the
       areas are filled	in white first.

       Three overlapping boxes A, B, C are drawn such that you see the follow-
       ing areas.

       AAAAAAddddBBBBBB
       AAAAAAddddBBBBBB
       AAAAAAddddBBBBBB
       AAAAeeggggffBBBB
       AAAAeeggggffBBBB
       AAAAeeggggffBBBB
	   CCCCCCCC
	   CCCCCCCC
	   CCCCCCCC

       The pictures should show:

       1.     Replace mode. A, B, C are	red, green, blue. They	just  overlap,
	      yielding d - green and e,	f, g - blue.

       2.     The  colors mix using ROP_OR (and	a nice color table). The over-
	      lapping areas become the additive	color mix: d - yellow, e - ma-
	      genta, f - cyan, and g - white.

       3.     ROP_AND is used. The background  is  filled  white  first,  s.t.
	      there is something in video memory to and	with non trivially. We
	      have  A,	B,  C in cyan, magenta,	yellow and d, e, f, g in blue,
	      green, red, black.

       4.     ROP_XOR is used and the background filled	white first too. A, B,
	      C	are red, green,	blue again, but	the overlapping	areas d, e, f,
	      g	 become	blue, green, red, white.

       5.     ROP_INV is used, s.t. A, B, C are	all white and d, e, f, g   be-
	      come  black, black, black, white.	 Note that this	is not done by
	      using ROP_XOR and	drawing	A, B, C	in white. Instead A, B,	C  are
	      drawn in the usual
	       red,  green,  blue.  However,  the accelerator just inverts the
	      memory contens.

       If the accelerator supports raster operations  for  ACCEL_DRAWHLINELIST
       actually	disks (well, ellipses) are drawn instead of boxes.

       After this screen, you'll have to hit <Return> to continue.

   Replace QuixDemo
       If ACCEL_DRAWLINE is supported, a Quix like bouncing series of lines in
       varying colors is drawn.	The lines are removed from the screen by over-
       drawing	them  in  black,  thus	erasing	the dots and text on the back-
       ground.

       The test	lasts about 5 seconds and some statistics are printed to  std-
       out.

   XOR Mode QuixDemo
       As  before,  but	 this time all lines are drawn in ROP_XOR mode (if AC-
       CEL_DRAWLINE supports raster operations). Thus the background will  not
       be destroyed this time.

       The  test lasts about 5 seconds and some	statistics are printed to std-
       out.

   FillBox Demo
       The screen is ACCEL_FILLBOX filled with a series	of boxes of increasing
       colors.	In truei/high color modes you'll probably only see a series of
       varying blue tones (because these are at	the beginning of the color ta-
       ble and there are soo many of them).

       The test	lasts about 5 seconds and some statistics are printed to  std-
       out.

   ScreenCopy Demo
       Some  random dots are drawn on the screen and thirds of the screen con-
       tents are moved around using ACCEL_SCREENCOPY.

       The test	lasts about 5 seconds and some statistics are printed to  std-
       out.

   Scroll Demo
       Some random dots	are drawn on the screen	and moved one line up with AC-
       CEL_SCREENCOPY.	 In offscreen memory a new line	is prepared which will
       be cleared by  ACCEL_FILLBOXandmoveinfrombelow.Thistestrequiressomeoff-
       screenandwillnot	be performed if	video memory is	very tight.

       The  test lasts about 5 seconds and some	statistics are printed to std-
       out.

   FillBox with	DrawHLineList Demo
       Like the	FillBox	test, but no box fill is done but the screen is	filled
       with a list of horizontal lines drawn with ACCEL_DRAWHLINELIST.

       The test	lasts about 5 seconds and some statistics are printed to  std-
       out.

   FillBox XOR Mode Demo
       Like the	FillBox	test, but the XOR raster operation is used.

       The  test lasts about 5 seconds and some	statistics are printed to std-
       out.

   PutBitmap Demo
       The screen is filled with bitmasks consisting of	 tiny  vertical	 lines
       alternating in red and blue.

       The  test lasts about 5 seconds and some	statistics are printed to std-
       out.

SOME DATAPOINTS
       Here is a list of speed listings	for some cards.	Please	keep  in  mind
       that  also the calling overhead for the program is measured. This seems
       to be esp. true for the QuixDemo.

   Results on a	Cirrus GD5434-E	with 2Mb:
       640x480x256 60 Hz
	      FillBox: 200.3 Mpixels/s (200.3 Mbytes/s)
	      ScreenCopy: 51.0 Mpixels/s (51.0 Mbytes/s)
	      Scroll Demo: 50.5	Mpixels/s (50.5	Mbytes/s)
	      FillBox XOR: 83.2	Mpixels/s (83.2	Mbytes/s)

       320x200x256 70 Hz
	      FillBox: 200.1 Mpixels/s (200.1 Mbytes/s)
	      ScreenCopy: 52.3 Mpixels/s (52.3 Mbytes/s)
	      Scroll Demo: 51.2	Mpixels/s (51.2	Mbytes/s)
	      FillBox XOR: 87.1	Mpixels/s (87.1	Mbytes/s)

       640x480x32K 60 Hz
	      FillBox: 90.9 Mpixels/s (181.8 Mbytes/s)
	      ScreenCopy: 23.1 Mpixels/s (46.3 Mbytes/s)
	      Scroll Demo: 23.0	Mpixels/s (46.1	Mbytes/s)
	      FillBox XOR: 37.2	Mpixels/s (74.5	Mbytes/s)

       640x480x16M (32-bit) 60 Hz
	      FillBox: 35.5 Mpixels/s (142.3 Mbytes/s)
	      ScreenCopy: 9.3 Mpixels/s	(37.3 Mbytes/s)
	      Scroll Demo: 9.2 Mpixels/s (37.1 Mbytes/s)
	      FillBox XOR: 14.6	Mpixels/s (58.6	Mbytes/s)

   On a	Cirrus Logic 5426 VLB (50 MHz MCLK):
       640x480x256 60 Hz
	      FillBox: 32.8 Mpixels/s (32.8 Mbytes/s)
	      ScreenCopy: 16.4 Mpixels/s (16.4 Mbytes/s)
	      Scroll Demo: 16.3	Mpixels/s (16.3	Mbytes/s)
	      FillBox XOR: 16.5	Mpixels/s (16.5	Mbytes/s)

       640x480x32K 60 Hz
	      FillBox: 12.2 Mpixels/s (24.4 Mbytes/s)
	      ScreenCopy: 6.1 Mpixels/s	(12.2 Mbytes/s)
	      Scroll Demo: 6.0 Mpixels/s (12.1 Mbytes/s)
	      FillBox XOR: 6.1 Mpixels/s (12.2 Mbytes/s)

   Tweaked to 60 MHz MCLK:
       640x480x256 60 Hz
	      FillBox: 42.1 Mpixels/s (42.1 Mbytes/s)
	      ScreenCopy: 21.0 Mpixels/s (21.0 Mbytes/s)
	      Scroll Demo: 20.9	Mpixels/s (20.9	Mbytes/s)
	      FillBox XOR: 21.1	Mpixels/s (21.1	Mbytes/s)

       640x480x32K 60 Hz
	      FillBox: 16.7 Mpixels/s (33.5 Mbytes/s)
	      ScreenCopy: 8.3 Mpixels/s	(16.7 Mbytes/s)
	      Scroll Demo: 8.3 Mpixels/s (16.7 Mbytes/s)
	      FillBox XOR: 8.3 Mpixels/s (16.7 Mbytes/s)

   Results on a	Mach32 EISA with 2Mb VRAM:
       1280x1024x256 60	Hz
	      Replace QuixDemo:	12.1 Klines/s (6.7 Mpixels/s or	6.7 Mbytes/s)
	      Xor QuixDemo: 9.9	Klines/s (5.1 Mpixels/s	or 5.1 Mbytes/s)
	      FillBox: 75.4 Mpixels/s (75.4 Mbytes/s)
	      ScreenCopy: 26.4 Mpixels/s (26.4 Mbytes/s)
	      Scroll Demo: 28.7	Mpixels/s (28.7	Mbytes/s)
	      FillBox with DrawHlineList: 73.1 Mpixels/s (73.1 Mbytes/s)
	      FillBox XOR: 37.9	Mpixels/s (37.9	Mbytes/s)
	      PutBitmap: 15.6 Mpixels/s	(15.6 Mbytes/s)

       1024x768x64K 72Hz
	      Replace QuixDemo:	12.3 Klines/s (5.2 Mpixels/s or	10.5 Mbytes/s)
	      Xor QuixDemo: 9.0	Klines/s (5.1 Mpixels/s	or 10.3	Mbytes/s)
	      FillBox: 37.6 Mpixels/s (75.2 Mbytes/s)
	      ScreenCopy: 13.2 Mpixels/s (26.4 Mbytes/s)
	      Scroll Demo: 13.2	Mpixels/s (26.4	Mbytes/s)
	      FillBox with DrawHlineList: 37.0 Mpixels/s (74.0 Mbytes/s)
	      FillBox XOR: 18.9	Mpixels/s (37.8	Mbytes/s)
	      PutBitmap: 15.2 Mpixels/s	(30.5 Mbytes/s)

       You're encouraged to send in more data.	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_accel(3),  threed(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), vgatest(6), plane(6), wrapdemo(6)

AUTHOR
       This manual page	was edited by Michael Weller  <eowmob@exp-math.uni-es-
       sen.de>.	 The  demo  and	most of	its documentation is due to Harm Hane-
       maayer <H.Hanemaayer@inter.nl.net>.

Svgalib	(>= 1.2.11)		 29 July 1997			      accel(6)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=accel&sektion=6&manpath=FreeBSD+Ports+14.3.quarterly>

home | help