v03i060: xbench -- benchmark X servers, Part03/04

Dan Heller argv at island.uu.net
Wed Mar 29 04:07:44 AEST 1989


Submitted-by: Claus Gittinger <unido!sinix!claus>
Posting-number: Volume 3, Issue 60
Archive-name: xbench/part03

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 3 (of 4)."
# Contents:  benches.h main.c results/sun3-160.R2.out
#   results/sun3-50.R3.out scripts/detail.awk scripts/xstones.awk
# Wrapped by x11 at babel on Thu Mar 23 14:08:00 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'benches.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'benches.h'\"
else
echo shar: Extracting \"'benches.h'\" \(12065 characters\)
sed "s/^X//" >'benches.h' <<'END_OF_FILE'
typedef int  (*FUNCPTR)();
X#define NOFUNC  ((FUNCPTR)0)
X
extern hline_setup(), hline_bench(), hline_cleanup(), hline_msg();
extern vline_setup(), vline_bench(), vline_cleanup(), vline_msg();
extern sline_setup(), sline_bench(), sline_cleanup(), sline_msg();
extern line_setup(), line_bench(), line_cleanup(), line_msg();
extern dline_setup(), dline_bench(), dline_cleanup(), dline_msg();
extern wline_setup(), wline_bench(), wline_cleanup(), wline_msg();
extern rects_setup(), rects_bench(), rects_cleanup(), rects_msg();
extern arcs_setup(), arcs_bench(), arcs_cleanup(), arcs_msg();
extern filledarcs_setup(), filledarcs_bench(), filledarcs_cleanup(), filledarcs_msg();
extern filledpoly_setup(), filledpoly_bench(), filledpoly_cleanup(), filledpoly_msg();
extern fillrects_setup(), fillrects_bench(), fillrects_cleanup(), fillrects_msg();
extern tiledrects_setup(), tiledrects_bench(), tiledrects_cleanup(), tiledrects_msg();
extern stippledrects_setup(), stippledrects_bench(), stippledrects_cleanup(), stippledrects_msg();
extern invrects_setup(), invrects_bench(), invrects_cleanup(), invrects_msg();
extern imagestring_setup(), imagestring_bench(), imagestring_cleanup(), imagestring_msg();
extern screencopy_setup(), screencopy_bench(), screencopy_cleanup(), screencopy_msg();
extern scroll_setup(), scroll_bench(), scroll_cleanup(), scroll_msg();
extern pixmapcopy_setup(), pixmapcopy_bench(), pixmapcopy_cleanup(), pixmapcopy_msg();
extern bitmapcopy_setup(), bitmapcopy_bench(), bitmapcopy_cleanup(), bitmapcopy_msg();
extern complex1_setup(), complex1_bench(), complex1_cleanup(), complex1_msg();
X
struct benchFunctionDescription {
X    char        *name;          /* name of bench */
X    int         level;          /* its level */
X    FUNCPTR     setupFunc;      /* functions to do it ... */
X    FUNCPTR     benchFunc;
X    FUNCPTR     cleanupFunc;
X    FUNCPTR     messageFunc;
X    unsigned    benchArg;       /* argument to function */
X} benchList[] = {
X/*      name            level  functions */
X
X    {   "line2",            2, line_setup, line_bench, line_cleanup, line_msg,   2 },
X    {   "line10",           1, line_setup, line_bench, line_cleanup, line_msg,  10 },
X    {   "line100",          1, line_setup, line_bench, line_cleanup, line_msg, 100 },
X    {   "line400",          1, line_setup, line_bench, line_cleanup, line_msg, 400 },
X    {   "line500",          2, line_setup, line_bench, line_cleanup, line_msg, 500 },
X
X    {   "hline2",           3, hline_setup, hline_bench, hline_cleanup, hline_msg,   2 },
X    {   "hline10",          2, hline_setup, hline_bench, hline_cleanup, hline_msg,  10 },
X    {   "hline50",          4, hline_setup, hline_bench, hline_cleanup, hline_msg,  50 },
X    {   "hline100",         2, hline_setup, hline_bench, hline_cleanup, hline_msg, 100 },
X    {   "hline200",         4, hline_setup, hline_bench, hline_cleanup, hline_msg, 200 },
X    {   "hline300",         4, hline_setup, hline_bench, hline_cleanup, hline_msg, 300 },
X    {   "hline400",         2, hline_setup, hline_bench, hline_cleanup, hline_msg, 400 },
X    {   "hline500",         3, hline_setup, hline_bench, hline_cleanup, hline_msg, 500 },
X    {   "hline600",         4, hline_setup, hline_bench, hline_cleanup, hline_msg, 600 },
X    {   "hline700",         4, hline_setup, hline_bench, hline_cleanup, hline_msg, 700 },
X    {   "hline800",         4, hline_setup, hline_bench, hline_cleanup, hline_msg, 800 },
X
X    {   "vline2",           3, vline_setup, vline_bench, vline_cleanup, vline_msg,   2 },
X    {   "vline10",          2, vline_setup, vline_bench, vline_cleanup, vline_msg,  10 },
X    {   "vline50",          4, vline_setup, vline_bench, vline_cleanup, vline_msg,  50 },
X    {   "vline100",         2, vline_setup, vline_bench, vline_cleanup, vline_msg, 100 },
X    {   "vline200",         4, vline_setup, vline_bench, vline_cleanup, vline_msg, 200 },
X    {   "vline300",         4, vline_setup, vline_bench, vline_cleanup, vline_msg, 300 },
X    {   "vline400",         2, vline_setup, vline_bench, vline_cleanup, vline_msg, 400 },
X    {   "vline500",         3, vline_setup, vline_bench, vline_cleanup, vline_msg, 500 },
X    {   "vline600",         4, vline_setup, vline_bench, vline_cleanup, vline_msg, 600 },
X    {   "vline700",         4, vline_setup, vline_bench, vline_cleanup, vline_msg, 700 },
X    {   "vline800",         4, vline_setup, vline_bench, vline_cleanup, vline_msg, 800 },
X
X    {   "sline2",           3, sline_setup, sline_bench, sline_cleanup, sline_msg,   2 },
X    {   "sline10",          2, sline_setup, sline_bench, sline_cleanup, sline_msg,  10 },
X    {   "sline100",         2, sline_setup, sline_bench, sline_cleanup, sline_msg, 100 },
X    {   "sline400",         2, sline_setup, sline_bench, sline_cleanup, sline_msg, 400 },
X    {   "sline500",         3, sline_setup, sline_bench, sline_cleanup, sline_msg, 500 },
X
X    {   "dline2",           2, dline_setup, dline_bench, dline_cleanup, dline_msg,   2 },
X    {   "dline10",          1, dline_setup, dline_bench, dline_cleanup, dline_msg,  10 },
X    {   "dline100",         1, dline_setup, dline_bench, dline_cleanup, dline_msg, 100 },
X    {   "dline400",         1, dline_setup, dline_bench, dline_cleanup, dline_msg, 400 },
X    {   "dline500",         2, dline_setup, dline_bench, dline_cleanup, dline_msg, 500 },
X
X    {   "wline2",           2, wline_setup, wline_bench, wline_cleanup, wline_msg,   2 },
X    {   "wline10",          1, wline_setup, wline_bench, wline_cleanup, wline_msg,  10 },
X    {   "wline100",         1, wline_setup, wline_bench, wline_cleanup, wline_msg, 100 },
X    {   "wline400",         1, wline_setup, wline_bench, wline_cleanup, wline_msg, 400 },
X    {   "wline500",         2, wline_setup, wline_bench, wline_cleanup, wline_msg, 500 },
X
X    {   "rects2",           2, rects_setup, rects_bench, rects_cleanup, rects_msg,   2 },
X    {   "rects10",          1, rects_setup, rects_bench, rects_cleanup, rects_msg,  10 },
X    {   "rects100",         1, rects_setup, rects_bench, rects_cleanup, rects_msg, 100 },
X    {   "rects400",         1, rects_setup, rects_bench, rects_cleanup, rects_msg, 400 },
X    {   "rects500",         2, rects_setup, rects_bench, rects_cleanup, rects_msg, 500 },
X
X    {   "fillrects2",       2, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg,   2 },
X    {   "fillrects10",      1, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg,  10 },
X    {   "fillrects100",     1, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 100 },
X    {   "fillrects400",     1, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 400 },
X    {   "fillrects500",     2, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 500 },
X
X    {   "tiledrects2",      2, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg,   2 },
X    {   "tiledrects10",     1, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg,  10 },
X    {   "tiledrects100",    1, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 100 },
X    {   "tiledrects400",    1, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 400 },
X    {   "tiledrects500",    2, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 500 },
X
X    {   "stippledrects2",   2, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg,   2 },
X    {   "stippledrects10",  1, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg,  10 },
X    {   "stippledrects100", 1, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 100 },
X    {   "stippledrects400", 1, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 400 },
X    {   "stippledrects500", 2, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 500 },
X
X    {   "invrects2",        2, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg,   2 },
X    {   "invrects10",       1, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg,  10 },
X    {   "invrects100",      1, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 100 },
X    {   "invrects400",      1, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 400 },
X    {   "invrects500",      2, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 500 },
X
X    {   "arcs2",            2, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg,   2 },
X    {   "arcs10",           1, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg,  10 },
X    {   "arcs100",          1, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 100 },
X    {   "arcs400",          1, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 400 },
X    {   "arcs500",          2, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 500 },
X
X    {   "filledarcs2",      2, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg,   2 },
X    {   "filledarcs10",     1, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg,  10 },
X    {   "filledarcs100",    1, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 100 },
X    {   "filledarcs400",    1, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 400 },
X    {   "filledarcs500",    2, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 500 },
X
X    {   "filledpoly10",     2, filledpoly_setup, filledpoly_bench, filledpoly_cleanup, filledpoly_msg,  10 },
X    {   "filledpoly100",    1, filledpoly_setup, filledpoly_bench, filledpoly_cleanup, filledpoly_msg, 100 },
X
X    {   "screencopy2",      2, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg,   2 },
X    {   "screencopy10",     1, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg,  10 },
X    {   "screencopy100",    1, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 100 },
X    {   "screencopy400",    1, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 400 },
X    {   "screencopy500",    2, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 500 },
X
X    {   "scroll",           1, scroll_setup, scroll_bench, scroll_cleanup, scroll_msg, 16 },
X
X    {   "pixmapcopy2",      3, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg,   2 },
X    {   "pixmapcopy10",     2, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg,  10 },
X    {   "pixmapcopy100",    2, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 100 },
X    {   "pixmapcopy400",    2, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 400 },
X    {   "pixmapcopy500",    3, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 500 },
X
X    {   "bitmapcopy2",      2, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg,   2 },
X    {   "bitmapcopy10",     1, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg,  10 },
X    {   "bitmapcopy100",    1, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 100 },
X    {   "bitmapcopy400",    1, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 400 },
X    {   "bitmapcopy500",    2, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 500 },
X
X    {   "imagestring:fixed",1, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"fixed" },
X    {   "imagestring:6x12", 2, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"6x12" },
X    {   "imagestring:8x13", 2, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"8x13" },
X    {   "imagestring:9x15", 2, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"9x15" },
X
X    {   "complex1",         1, complex1_setup, complex1_bench, complex1_cleanup, complex1_msg, 0 },
X
X    {   "",                99, NOFUNC, NOFUNC, NOFUNC, NOFUNC, 0 },
X};
END_OF_FILE
if test 12065 -ne `wc -c <'benches.h'`; then
    echo shar: \"'benches.h'\" unpacked with wrong size!
fi
# end of 'benches.h'
fi
if test -f 'main.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'main.c'\"
else
echo shar: Extracting \"'main.c'\" \(6794 characters\)
sed "s/^X//" >'main.c' <<'END_OF_FILE'
static char SCCSID[] = "@(#)main.c	1.2 89/02/13";
X/*
X * Copyright 1989 Siemens
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted, provided
X * that the above copyright notice appear in all copies and that both that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of Siemens not be used in advertising or
X * publicity pertaining to distribution of the software without specific,
X * written prior permission.  Siemens makes no representations about the
X * suitability of this software for any purpose.  It is provided "as is"
X * without express or implied warranty.
X *
X * Author:  Claus Gittinger, Siemens Munich, unido!sinix!claus at uunet.uu.net
X */
X
X/*
X * xbench
X *
X * measure performance
X *
X * written Feb. '89 by claus
X */
X#include <stdio.h>
X#include <X11/Xlib.h>
X#include <X11/Xutil.h>
X#include "patchlevel.h"
X
Display *dpy;
Window  rootWin, win;
int     sync;
int     screen;
int     screenWidth, screenHeight;
int     onlyCount, exclCount;
char    *onlyList[100];
char    *exclList[100];
X/*
X * since the bench is really a graphics benchmark,
X * I do not want to have daemons (rwhod ...) and other stuff
X * like that to disturb me.
X * since I cannot remove them, best I can do is to run the
X * benchmarks more than once and take the BEST time - not the
X * average. This minimizes the influence of sync. rwhod etc...
X *
X * the number of runs is defined below.
X * since every run takes about 10 sec's, this gives 30 secs for every
X * test.
X */
static int nruns = 3;
X
main(argc,argv)
X    int argc;
X    char **argv;
X{
X	Visual               visual;
X	XSetWindowAttributes xswa;
X	int                  timeGoal = 10;
X	char                 **ap;
X	char                 *cp;
X	char                 *displayName = NULL;
X	XSizeHints           szhint;
X	int                  list = 0;
X	int                  ask = 0;
X	int                  level = 1;
X	int                  ac;
X
X	sync = 0;
X	onlyCount = 0;
X	exclCount = 0;
X	for (ap = &argv[1], ac=argc-1; ac; ac--) {
X	    cp = *ap++;
X	    if (strcmp(cp, "-display") == 0) {
X		displayName = *ap++; ac--;
X	    } else if (strcmp(cp, "-level") == 0) {
X		cp = *ap++; ac--;
X		sscanf(cp, "%d", &level);
X	    } else if (strcmp(cp, "-nruns") == 0) {
X		cp = *ap++; ac--;
X		sscanf(cp, "%d", &nruns);
X	    } else if (strcmp(cp, "-timegoal") == 0) {
X		cp = *ap++; ac--;
X		sscanf(cp, "%d", &timeGoal);
X	    } else if (strcmp(cp, "-sync") == 0) {
X		sync++;
X	    } else if (strcmp(cp, "-ask") == 0) {
X		ask++;
X	    } else if (strcmp(cp, "-help") == 0) {
X		list++;
X	    } else if (strcmp(cp, "-only") == 0) {
X		onlyList[onlyCount++] = *ap++; ac--;
X		level = 99;
X	    } else if (strcmp(cp, "-not") == 0) {
X		exclList[exclCount++] = *ap++; ac--;
X	    } else
X		usage();
X	}
X
X	onlyList[onlyCount] = NULL;
X	exclList[exclCount] = NULL;
X
X	if ((level<1) || list) {
X	    listBenches();
X	    exit(0);
X	}
X
X	dpy = XOpenDisplay(displayName);
X	if ( dpy == NULL ) {
X	    fprintf(stderr, "can't open DISPLAY \n");
X	    exit(1);
X	}
X
X	screen = DefaultScreen(dpy);
X	screenWidth = DisplayWidth(dpy, screen);
X	screenHeight = DisplayHeight(dpy, screen);
X	rootWin = RootWindow(dpy, screen);
X
X	serverinfo(dpy, timeGoal);
X
X	/*
X	 * create a full screen window ..
X	 */
X	visual.visualid = CopyFromParent;
X	xswa.backing_store = NotUseful;
X	xswa.event_mask = StructureNotifyMask;
X	xswa.background_pixel = BlackPixel(dpy, screen);
X	xswa.override_redirect = True;
X	win = XCreateWindow(dpy, rootWin,
X				0, 0, screenWidth, screenHeight,
X				0,
X				DefaultDepth(dpy, screen),
X				InputOutput, &visual,
X				CWEventMask | CWBackPixel |
X					      CWOverrideRedirect,
X				&xswa);
X
X	if (win == (Window)0) {
X	    fprintf(stderr, "can't create window\n");
X	    exit(1);
X	}
X	szhint.flags = PSize | PPosition;
X	szhint.x = 0;
X	szhint.y = 0;
X	szhint.width = screenWidth;
X	szhint.height = screenHeight;
X	XSetStandardProperties(dpy, win, "xbench", "should not be iconified",
X			       (Pixmap)0, argv, argc, &szhint);
X
X	XSync(dpy, 0);
X
X	doBenches(dpy, win, ask, nruns, timeGoal, level, onlyList, exclList);
X
X	XCloseDisplay(dpy);
X	exit(0);
X}
X
usage() {
X	fprintf(stderr, "usage: xbench [options]\n");
X	fprintf(stderr, "  allowed options:\n");
X	fprintf(stderr, "    -display name  ................. define server\n");
X	fprintf(stderr, "    -level number (default 1) ...... define number of tests made\n");
X	fprintf(stderr, "    -timeGoal seconds (default 10) . runtime per test\n");
X	fprintf(stderr, "    -nruns number (default 3) ...... runs per test\n");
X	fprintf(stderr, "    -help .......................... print list of available tests\n");
X	fprintf(stderr, "    -only testname ................. run named test only\n");
X	fprintf(stderr, "    -not testname .................. do not run named test\n");
X	fprintf(stderr, "    -ask ........................... interactive mode\n");
X	fprintf(stderr, "    -sync .......................... sync for slow operations\n");
X	exit(1);
X}
X
serverinfo(dpy, timeGoal)
Display *dpy;
X{
X	char buffer[128];
X
X	printf("==================================================\n");
X	printf("GENERAL INFORMATION\n");
X	printf("\n");
X	fprintf(stderr, "describe brand/configuration of SERVER machine (1 line)\n");
X	fprintf(stderr, "(example: XYZ-891 with steam-engine [return]\n");
X	gets(buffer);
X	printf("server: %s\n", buffer);
X	fprintf(stderr, "describe brand/configuration of CLIENT machine (1 line)\n");
X	gets(buffer);
X	printf("client: %s\n", buffer);
X	fprintf(stderr, "describe communication used (1 line)\n");
X	fprintf(stderr, "(example: 10Mb ether or 19600 slip ..)\n");
X	gets(buffer);
X	printf("communication: %s\n", buffer);
X	fprintf(stderr, "any additional notes (1 line)\n");
X	gets(buffer);
X	printf("notes: %s\n", buffer);
X	printf("\n");
X	printf("==================================================\n");
X	printf("SERVER INFORMATION\n");
X	printf("\n");
X	printf("Servervendor            : %s\n",ServerVendor(dpy));
X	printf("XSERVER version         : %d.%d\n",ProtocolVersion(dpy), VendorRelease(dpy));
X	printf("Revision                : %d\n",ProtocolRevision(dpy));
X	printf("Defaultdepth rootwindow : %d\n",DefaultDepth(dpy,0));
X	printf("Server Byte-Order       : %s\n",((ImageByteOrder(dpy)
X		        == MSBFirst) ?	"MSBFirst" : "LSBFirst" ));
X	printf("Server BitmapBitOrder   : %s\n",((BitmapBitOrder(dpy)
X		 == MSBFirst) ?	"MSBFirst" : "LSBFirst" ));
X	printf("DisplayWidth            : %d\n",DisplayWidth(dpy,0));
X	printf("DisplayHeight           : %d\n",DisplayHeight(dpy,0));
X	printf("\n");
X	printf("==================================================\n");
X	printf("XBENCH INFORMATION\n");
X	printf("VERSION: %d TIMEGOAL = %d sec; NRUNS = %d", 
X			PATCHLEVEL, timeGoal, nruns);
X	if (sync)
X	    printf("; SYNC");
X	printf("\n");
X	printf("\n");
X}
END_OF_FILE
if test 6794 -ne `wc -c <'main.c'`; then
    echo shar: \"'main.c'\" unpacked with wrong size!
fi
# end of 'main.c'
fi
if test -f 'results/sun3-160.R2.out' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'results/sun3-160.R2.out'\"
else
echo shar: Extracting \"'results/sun3-160.R2.out'\" \(6125 characters\)
sed "s/^X//" >'results/sun3-160.R2.out' <<'END_OF_FILE'
X==================================================
GENERAL INFORMATION
X
server: sun 3/160 (R2)
client: same
communication: unix socket
notes: sunOS 3.4 - plain (untuned) X11R2
X
X==================================================
SERVER INFORMATION
X
Servervendor            : MIT X Consortium
XXSERVER version         : 11.2
Revision                : 0
Defaultdepth rootwindow : 1
Server Byte-Order       : MSBFirst
Server BitmapBitOrder   : MSBFirst
DisplayWidth            : 1152
DisplayHeight           : 900
X
X==================================================
XXBENCH INFORMATION
VERSION: 1 TIMEGOAL = 10 sec; NRUNS = 3
X
X========= line10 ========= 
LINES
X
X42240 vectors of len. 10 in 11 secs
rate =  3840.00 vectors/sec
X========= line100 ========= 
LINES
X
X20736 vectors of len. 100 in 10 secs
rate =  2073.60 vectors/sec
X========= line400 ========= 
LINES
X
X8448 vectors of len. 400 in 12 secs
rate =   704.00 vectors/sec
X========= dline10 ========= 
DASHED LINES
X
X12288 dashed vectors of len. 10 in 11 secs
rate =  1117.09 vectors/sec
X========= dline100 ========= 
DASHED LINES
X
X3072 dashed vectors of len. 100 in 14 secs
rate =   219.43 vectors/sec
X========= dline400 ========= 
DASHED LINES
X
X1536 dashed vectors of len. 400 in 28 secs
rate =    54.86 vectors/sec
X========= wline10 ========= 
WIDE LINES
X
X2304 wide vectors (linewidth=5) of len. 10 in 18 secs
rate =   128.00 vectors/sec
X========= wline100 ========= 
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 100 in 37 secs
rate =    41.51 vectors/sec
X========= wline400 ========= 
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 400 in 121 secs
rate =    12.69 vectors/sec
X========= rects10 ========= 
RECTANGLES
X
X22784 rectangles with 10 pixel sides in 10 secs
rate =  2278.40 rectangles/sec (91136 Pixels/sec)
X========= rects100 ========= 
RECTANGLES
X
X11776 rectangles with 100 pixel sides in 11 secs
rate =  1070.55 rectangles/sec (428218 Pixels/sec)
X========= rects400 ========= 
RECTANGLES
X
X4864 rectangles with 400 pixel sides in 12 secs
rate =   405.33 rectangles/sec (648533 Pixels/sec)
X========= fillrects10 ========= 
XFILLED RECTANGLES
X
X50176 rectangles with 10 pixel sides in 10 secs
rate =  5017.60 rectangles/sec (501760 Pixels/sec)
X========= fillrects100 ========= 
XFILLED RECTANGLES
X
X10752 rectangles with 100 pixel sides in 11 secs
rate =   977.45 rectangles/sec (9774545 Pixels/sec)
X========= fillrects400 ========= 
XFILLED RECTANGLES
X
X2816 rectangles with 400 pixel sides in 17 secs
rate =   165.65 rectangles/sec (26503529 Pixels/sec)
X========= tiledrects10 ========= 
TILE-FILLED RECTANGLES
X
X33536 rectangles with 10 pixel sides in 10 secs
rate =  3353.60 rectangles/sec (335360 Pixels/sec)
X========= tiledrects100 ========= 
TILE-FILLED RECTANGLES
X
X4864 rectangles with 100 pixel sides in 12 secs
rate =   405.33 rectangles/sec (4053333 Pixels/sec)
X========= tiledrects400 ========= 
TILE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 26 secs
rate =    49.23 rectangles/sec (7876923 Pixels/sec)
X========= stippledrects10 ========= 
STIPPLE-FILLED RECTANGLES
X
X8960 rectangles with 10 pixel sides in 11 secs
rate =   814.55 rectangles/sec (81454 Pixels/sec)
X========= stippledrects100 ========= 
STIPPLE-FILLED RECTANGLES
X
X2304 rectangles with 100 pixel sides in 15 secs
rate =   153.60 rectangles/sec (1536000 Pixels/sec)
X========= stippledrects400 ========= 
STIPPLE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 35 secs
rate =    36.57 rectangles/sec (5851428 Pixels/sec)
X========= invrects10 ========= 
INVERTED RECTANGLES
X
X35261 rectangles with 10 pixel sides in 10 secs
rate =  3526.10 rectangles/sec (352610 Pixels/sec)
X========= invrects100 ========= 
INVERTED RECTANGLES
X
X8601 rectangles with 100 pixel sides in 11 secs
rate =   781.91 rectangles/sec (7819090 Pixels/sec)
X========= invrects400 ========= 
INVERTED RECTANGLES
X
X1721 rectangles with 400 pixel sides in 20 secs
rate =    86.05 rectangles/sec (13768000 Pixels/sec)
X========= arcs10 ========= 
ARCS
X
X2722 arcs with 10 pixel diameter in 12 secs
rate =   226.83 arcs/sec
X========= arcs100 ========= 
ARCS
X
X1532 arcs with 100 pixel diameter in 13 secs
rate =   117.85 arcs/sec
X========= arcs400 ========= 
ARCS
X
X1022 arcs with 400 pixel diameter in 15 secs
rate =    68.13 arcs/sec
X========= filledarcs10 ========= 
XFILLED ARCS
X
X2042 filled arcs with 10 pixel diameter in 12 secs
rate =   170.17 filled arcs/sec
X========= filledarcs100 ========= 
XFILLED ARCS
X
X1192 filled arcs with 100 pixel diameter in 14 secs
rate =    85.14 filled arcs/sec
X========= filledarcs400 ========= 
XFILLED ARCS
X
X682 filled arcs with 400 pixel diameter in 19 secs
rate =    35.89 filled arcs/sec
X========= filledpoly100 ========= 
XFILLED POLYGONS
X
X1084 filled polygons with 5 points (size 100) in 12 secs
rate =    90.33 filled polygons/sec
X========= screencopy10 ========= 
COPYAREA (SCREEN->SCREEN)
X
X1464 copies with 10 pixel sides in 13 secs
rate =   112.62 copies/sec (11261 Pixels/sec)
X========= screencopy100 ========= 
COPYAREA (SCREEN->SCREEN)
X
X1026 copies with 100 pixel sides in 14 secs
rate =    73.29 copies/sec (732857 Pixels/sec)
X========= screencopy400 ========= 
COPYAREA (SCREEN->SCREEN)
X
X444 copies with 400 pixel sides in 28 secs
rate =    15.86 copies/sec (2537142 Pixels/sec)
X========= scroll ========= 
SCROLL
X
X585 scrolls (area: 640 x 400) in 16 secs
rate =    25.43 scrolls/sec (6511304 Pixels/sec)
X========= bitmapcopy10 ========= 
COPYPLANE (BITMAP->SCREEN)
X
X1281 copies with 10 pixel sides in 13 secs
rate =    98.54 copies/sec (9853 Pixels/sec)
X========= bitmapcopy100 ========= 
COPYPLANE (BITMAP->SCREEN)
X
X769 copies with 100 pixel sides in 15 secs
rate =    51.27 copies/sec (512666 Pixels/sec)
X========= bitmapcopy400 ========= 
COPYPLANE (BITMAP->SCREEN)
X
X385 copies with 400 pixel sides in 39 secs
rate =     9.87 copies/sec (1579487 Pixels/sec)
X========= imagestring:fixed ========= 
DRAW IMAGE STRING - font="fixed" (height = 13)
X
X61992 chars in 11 secs
rate =  5635.64 chars/sec
X========= complex1 ========= 
WINDOW CREATE/DRAW/DESTROY
X
X165 runs 10 secs
rate =    16.50 runs/sec
X==================================================
X
END_OF_FILE
if test 6125 -ne `wc -c <'results/sun3-160.R2.out'`; then
    echo shar: \"'results/sun3-160.R2.out'\" unpacked with wrong size!
fi
# end of 'results/sun3-160.R2.out'
fi
if test -f 'results/sun3-50.R3.out' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'results/sun3-50.R3.out'\"
else
echo shar: Extracting \"'results/sun3-50.R3.out'\" \(6750 characters\)
sed "s/^X//" >'results/sun3-50.R3.out' <<'END_OF_FILE'
XFrom sinix!unido!uka!gitting Mon Mar 20 19:45:44 1989
Received: by athen.sp4.siemens.de
X	  at Mon, 20 Mar 89 19:45:19  +0100 (5.52/SIE-0.1)
Message-Id: <8903201710.AS10131 at unido.irb.informatik.uni-dortmund.de>
Received: from uka.uucp 
X	by unido.irb.informatik.uni-dortmund.de with uucp via EUnet
X	for sinix
X	id AS10131; Mon, 20 Mar 89 18:10:37 +0100
Received: from i30s16 by iraun1.ira.uka.de id aa07727; 20 Mar 89 16:28 MET
Date: Mon, 20 Mar 89 16:27:35 MET
XFrom: "Juergen Gittinger" <gitting%uka at unido>
To: claus%uni-dortmund.de at athen
Subject:  xbench
Status: R
X
Hallo Claus !
X
Hier die neuen xbench-Werte fuer die Sun3/50.
X
X	Tschau
X		Juergen
X
X==================================================
GENERAL INFORMATION
X
server: Sun3/50 (R3)
client: Sun3/50
communication: unix-socket
notes: 
X
X==================================================
SERVER INFORMATION
X
Servervendor            : MIT X Consortium
XXSERVER version         : 11.3
Revision                : 0
Defaultdepth rootwindow : 1
Server Byte-Order       : MSBFirst
Server BitmapBitOrder   : MSBFirst
DisplayWidth            : 1152
DisplayHeight           : 900
X
X==================================================
XXBENCH INFORMATION
VERSION: 1 TIMEGOAL = 10 sec; NRUNS = 3
X
X========= line10 ========= 
LINES
X
X34560 vectors of len. 10 in 10 secs
rate =  3456.00 vectors/sec
X========= line100 ========= 
LINES
X
X19200 vectors of len. 100 in 11 secs
rate =  1745.45 vectors/sec
X========= line400 ========= 
LINES
X
X8448 vectors of len. 400 in 12 secs
rate =   704.00 vectors/sec
X========= dline10 ========= 
DASHED LINES
X
X9216 dashed vectors of len. 10 in 12 secs
rate =   768.00 vectors/sec
X========= dline100 ========= 
DASHED LINES
X
X3072 dashed vectors of len. 100 in 18 secs
rate =   170.67 vectors/sec
X========= dline400 ========= 
DASHED LINES
X
X1536 dashed vectors of len. 400 in 33 secs
rate =    46.55 vectors/sec
X========= wline10 ========= 
WIDE LINES
X
X2304 wide vectors (linewidth=5) of len. 10 in 29 secs
rate =    79.45 vectors/sec
X========= wline100 ========= 
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 100 in 76 secs
rate =    20.21 vectors/sec
X========= wline400 ========= 
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 400 in 256 secs
rate =     6.00 vectors/sec
X========= rects10 ========= 
RECTANGLES
X
X18944 rectangles with 10 pixel sides in 11 secs
rate =  1722.18 rectangles/sec (68887 Pixels/sec)
X========= rects100 ========= 
RECTANGLES
X
X11776 rectangles with 100 pixel sides in 11 secs
rate =  1070.55 rectangles/sec (428218 Pixels/sec)
X========= rects400 ========= 
RECTANGLES
X
X5888 rectangles with 400 pixel sides in 13 secs
rate =   452.92 rectangles/sec (724676 Pixels/sec)
X========= fillrects10 ========= 
XFILLED RECTANGLES
X
X39168 rectangles with 10 pixel sides in 10 secs
rate =  3916.80 rectangles/sec (391680 Pixels/sec)
X========= fillrects100 ========= 
XFILLED RECTANGLES
X
X11264 rectangles with 100 pixel sides in 11 secs
rate =  1024.00 rectangles/sec (10240000 Pixels/sec)
X========= fillrects400 ========= 
XFILLED RECTANGLES
X
X2816 rectangles with 400 pixel sides in 16 secs
rate =   176.00 rectangles/sec (28160000 Pixels/sec)
X========= tiledrects10 ========= 
TILE-FILLED RECTANGLES
X
X27392 rectangles with 10 pixel sides in 10 secs
rate =  2739.20 rectangles/sec (273920 Pixels/sec)
X========= tiledrects100 ========= 
TILE-FILLED RECTANGLES
X
X4608 rectangles with 100 pixel sides in 14 secs
rate =   329.14 rectangles/sec (3291428 Pixels/sec)
X========= tiledrects400 ========= 
TILE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 31 secs
rate =    41.29 rectangles/sec (6606451 Pixels/sec)
X========= stippledrects10 ========= 
STIPPLE-FILLED RECTANGLES
X
X13056 rectangles with 10 pixel sides in 11 secs
rate =  1186.91 rectangles/sec (118690 Pixels/sec)
X========= stippledrects100 ========= 
STIPPLE-FILLED RECTANGLES
X
X2304 rectangles with 100 pixel sides in 15 secs
rate =   153.60 rectangles/sec (1536000 Pixels/sec)
X========= stippledrects400 ========= 
STIPPLE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 36 secs
rate =    35.56 rectangles/sec (5688888 Pixels/sec)
X========= invrects10 ========= 
INVERTED RECTANGLES
X
X30101 rectangles with 10 pixel sides in 10 secs
rate =  3010.10 rectangles/sec (301010 Pixels/sec)
X========= invrects100 ========= 
INVERTED RECTANGLES
X
X9459 rectangles with 100 pixel sides in 11 secs
rate =   859.91 rectangles/sec (8599090 Pixels/sec)
X========= invrects400 ========= 
INVERTED RECTANGLES
X
X2151 rectangles with 400 pixel sides in 18 secs
rate =   119.50 rectangles/sec (19120000 Pixels/sec)
X========= arcs10 ========= 
ARCS
X
X342 arcs with 10 pixel diameter in 71 secs
rate =     4.82 arcs/sec
X========= arcs100 ========= sync
ARCS
X
X14 arcs with 100 pixel diameter in 11 secs
rate =     1.27 arcs/sec
X========= arcs400 ========= sync
ARCS
X
X6 arcs with 400 pixel diameter in 11 secs
rate =     0.55 arcs/sec
X========= filledarcs10 ========= 
XFILLED ARCS
X
X512 filled arcs with 10 pixel diameter in 33 secs
rate =    15.52 filled arcs/sec
X========= filledarcs100 ========= sync
XFILLED ARCS
X
X60 filled arcs with 100 pixel diameter in 11 secs
rate =     5.45 filled arcs/sec
X========= filledarcs400 ========= sync
XFILLED ARCS
X
X26 filled arcs with 400 pixel diameter in 10 secs
rate =     2.60 filled arcs/sec
X========= filledpoly100 ========= 
XFILLED POLYGONS
X
X1084 filled polygons with 5 points (size 100) in 12 secs
rate =    90.33 filled polygons/sec
X========= screencopy10 ========= 
COPYAREA (SCREEN->SCREEN)
X
X1902 copies with 10 pixel sides in 12 secs
rate =   158.50 copies/sec (15850 Pixels/sec)
X========= screencopy100 ========= 
COPYAREA (SCREEN->SCREEN)
X
X1170 copies with 100 pixel sides in 14 secs
rate =    83.57 copies/sec (835714 Pixels/sec)
X========= screencopy400 ========= 
COPYAREA (SCREEN->SCREEN)
X
X444 copies with 400 pixel sides in 25 secs
rate =    17.76 copies/sec (2841600 Pixels/sec)
X========= scroll ========= 
SCROLL
X
X585 scrolls (area: 640 x 400) in 16 secs
rate =    26.59 scrolls/sec (6807272 Pixels/sec)
X========= bitmapcopy10 ========= 
COPYPLANE (BITMAP->SCREEN)
X
X2561 copies with 10 pixel sides in 11 secs
rate =   232.82 copies/sec (23281 Pixels/sec)
X========= bitmapcopy100 ========= 
COPYPLANE (BITMAP->SCREEN)
X
X897 copies with 100 pixel sides in 17 secs
rate =    52.76 copies/sec (527647 Pixels/sec)
X========= bitmapcopy400 ========= 
COPYPLANE (BITMAP->SCREEN)
X
X385 copies with 400 pixel sides in 47 secs
rate =     8.19 copies/sec (1310638 Pixels/sec)
X========= imagestring:fixed ========= 
DRAW IMAGE STRING - font="fixed" (height = 13)
X
X55104 chars in 11 secs
rate =  5009.45 chars/sec
X========= complex1 ========= 
WINDOW CREATE/DRAW/DESTROY
X
X153 runs 10 secs
rate =    15.30 runs/sec
X==================================================
X
X
X
END_OF_FILE
if test 6750 -ne `wc -c <'results/sun3-50.R3.out'`; then
    echo shar: \"'results/sun3-50.R3.out'\" unpacked with wrong size!
fi
# end of 'results/sun3-50.R3.out'
fi
if test -f 'scripts/detail.awk' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'scripts/detail.awk'\"
else
echo shar: Extracting \"'scripts/detail.awk'\" \(9127 characters\)
sed "s/^X//" >'scripts/detail.awk' <<'END_OF_FILE'
BEGIN           {
X		    nplanes = "?";
X		    width = "?";
X		    height = "?";
X		    vendor = "?";
X		    vsn = "?";
X		    server = "?";
X		    client = "?";
X		    com = "?";
X		    s = "?";
X		    note = "";
X
X		    value["line10"] = "?";
X		    value["line100"] = "?";
X		    value["line400"] = "?";
X		    value["dline10"] = "?";
X		    value["dline100"] = "?";
X		    value["dline400"] = "?";
X		    value["wline10"] = "?";
X		    value["wline100"] = "?";
X		    value["wline400"] = "?";
X		    value["rects10"] = "?";
X		    value["rects100"] = "?";
X		    value["rects400"] = "?";
X		    value["fillrects10"] = "?";
X		    value["fillrects100"] = "?";
X		    value["fillrects400"] = "?";
X		    value["tiledrects10"] = "?";
X		    value["tiledrects100"] = "?";
X		    value["tiledrects400"] = "?";
X		    value["stippledrects10"] = "?";
X		    value["stippledrects100"] = "?";
X		    value["stippledrects400"] = "?";
X		    value["arcs10"] = "?";
X		    value["arcs100"] = "?";
X		    value["arcs400"] = "?";
X		    value["filledarcs10"] = "?";
X		    value["filledarcs100"] = "?";
X		    value["filledarcs400"] = "?";
X		    value["filledpoly100"] = "?";
X		    value["invrects10"] = "?";
X		    value["invrects100"] = "?";
X		    value["invrects400"] = "?";
X		    value["screencopy10"] = "?";
X		    value["screencopy100"] = "?";
X		    value["screencopy400"] = "?";
X		    value["scroll"] = "?";
X		    value["bitmapcopy10"] = "?";
X		    value["bitmapcopy100"] = "?";
X		    value["bitmapcopy400"] = "?";
X		    value["string"] = "?";
X		    value["complex1"] = "?";
X		}
X
X/server:/       {
X		    server = $2
X		    if ( $3 != "") {
X		      server = server " " $3
X		    }
X		    if ( $4 != "") {
X		      server = server " " $4
X		    }
X		    if ( $5 != "") {
X		      server = server " " $5
X		    }
X		    if ( $6 != "") {
X		      server = server " " $6
X		    }
X		    if ( $7 != "") {
X		      server = server " " $7
X		    }
X		    if ( $8 != "") {
X		      server = server " " $8
X		    }
X		    if ( $9 != "") {
X		      server = server " " $9
X		    }
X		}
X
X/client:/       {
X		    client = $2
X		    if ( $3 != "") {
X		      client = client " " $3
X		    }
X		    if ( $4 != "") {
X		      client = client " " $4
X		    }
X		    if ( $5 != "") {
X		      client = client " " $5
X		    }
X		    if ( $6 != "") {
X		      client = client " " $6
X		    }
X		    if ( $7 != "") {
X		      client = client " " $7
X		    }
X		    if ( $8 != "") {
X		      client = client " " $8
X		    }
X		    if ( $9 != "") {
X		      client = client " " $9
X		    }
X		}
X
X/communication:/{
X		    com = $2
X		    if ( $3 != "") {
X		      com = com " " $3
X		    }
X		    if ( $4 != "") {
X		      com = com " " $4
X		    }
X		    if ( $5 != "") {
X		      com = com " " $5
X		    }
X		    if ( $6 != "") {
X		      com = com " " $6
X		    }
X		    if ( $7 != "") {
X		      com = com " " $7
X		    }
X		    if ( $8 != "") {
X		      com = com " " $8
X		    }
X		    if ( $9 != "") {
X		      com = com " " $9
X		    }
X		}
X
X/notes:/        {
X		    note = $2
X		    if ( $3 != "") {
X		      note = note " " $3
X		    }
X		    if ( $4 != "") {
X		      note = note " " $4
X		    }
X		    if ( $5 != "") {
X		      note = note " " $5
X		    }
X		    if ( $6 != "") {
X		      note = note " " $6
X		    }
X		    if ( $7 != "") {
X		      note = note " " $7
X		    }
X		    if ( $8 != "") {
X		      note = note " " $8
X		    }
X		    if ( $9 != "") {
X		      note = note " " $9
X		    }
X		}
X
X/Servervendor / {
X		    vendor = $3;
X		    if ( $4 != "") {
X		      vendor = vendor " " $4
X		    }
X		    if ( $5 != "") {
X		      vendor = vendor " " $5
X		    }
X		    if ( $6 != "") {
X		      vendor = vendor " " $6
X		    }
X		    if ( $7 != "") {
X		      vendor = vendor " " $7
X		    }
X		    if ( $8 != "") {
X		      vendor = vendor " " $8
X		    }
X		    if ( $9 != "") {
X		      vendor = vendor " " $9
X		    }
X		}
X/version /      {
X		    vsn = $4;
X		    if ( $5 != "") {
X		      vsn = vsn " " $5
X		    }
X		    if ( $6 != "") {
X		      vsn = vsn " " $6
X		    }
X		    if ( $7 != "") {
X		      vsn = vsn " " $7
X		    }
X		}
X/Defaultdepth / { nplanes = $4 }
X/DisplayWidth /  { width = $3 }
X/DisplayHeight / { height = $3 }
X
X/ line10 /           { x = "line10";             }
X/ line100 /          { x = "line100";            }
X/ line400 /          { x = "line400";            }
X/ dline10 /          { x = "dline10";            }
X/ dline100 /         { x = "dline100";           }
X/ dline400 /         { x = "dline400";           }
X/ wline10 /          { x = "wline10";            }
X/ wline100 /         { x = "wline100";           }
X/ wline400 /         { x = "wline400";           }
X/ rects10 /          { x = "rects10";            }
X/ rects100 /         { x = "rects100";           }
X/ rects400 /         { x = "rects400";           }
X/ fillrects10 /      { x = "fillrects10";        }
X/ fillrects100 /     { x = "fillrects100";        }
X/ fillrects400 /     { x = "fillrects400";        }
X/ tiledrects10 /     { x = "tiledrects10";        }
X/ tiledrects100 /    { x = "tiledrects100";       }
X/ tiledrects400 /    { x = "tiledrects400";       }
X/ stippledrects10 /  { x = "stippledrects10";     }
X/ stippledrects100 / { x = "stippledrects100";    }
X/ stippledrects400 / { x = "stippledrects400";    }
X/ arcs10 /           { x = "arcs10";             }
X/ arcs100 /          { x = "arcs100";            }
X/ arcs400 /          { x = "arcs400";            }
X/ filledarcs10 /     { x = "filledarcs10";       }
X/ filledarcs100 /    { x = "filledarcs100";      }
X/ filledarcs400 /    { x = "filledarcs400";      }
X/ filledpoly100 /    { x = "filledpoly100";      }
X/ invrects10 /       { x = "invrects10";         }
X/ invrects100 /      { x = "invrects100";        }
X/ invrects400 /      { x = "invrects400";        }
X/ screencopy10 /     { x = "screencopy10";       }
X/ screencopy100 /    { x = "screencopy100";      }
X/ screencopy400 /    { x = "screencopy400";      }
X/ scroll /           { x = "scroll";             }
X/ bitmapcopy10 /     { x = "bitmapcopy10";       }
X/ bitmapcopy100 /    { x = "bitmapcopy100";      }
X/ bitmapcopy400 /    { x = "bitmapcopy400";      }
X/ imagestring/       { x = "string";             }
X/ complex1 /         { x = "complex1";           }
X
X/rate =/             {
X		       value[x] = $3;
X		       x = "dummy"; w = 1
X		     }
X
X/NOT RUN/            {
X		       x = "dummy"; w = 1
X		     }
X
XEND                  {
X		       print ".bp"
X		       print ".NH"
X		       print server
X		       print ".LP"
X		       print ".nf"
X		       print "Vendor:  " vendor                           ;
X		       print "Release: " vsn                              ;
X		       print "Display: " width " x " height " x " nplanes ;
X		       print " "                             ;
X		       print "Notes  : " note            ;
X		       print " "                             ;
X		       print "Connection for test: " com ;
X		       print "Machine on the other side: " client;
X		       print " "   ;
X		       print ".fi" ;
X		       print ".sp" ;
X		       print ".TS" ;
X		       print ".box, tab(!);"    ;
X		       print "l | c | c | c | c | r"
X		       print "l | r | r | r | r | r."
X		       print "test!10!100!400!!"
X		       print "="
X		       print "lines!" value["line10"] "!" value["line100"] "!" value["line400"] "!!lines/sec"
X		       print "_"
X		       print "dashed lines!" value["dline10"] "!" value["dline100"] "!" value["dline400"] "!!lines/sec"
X		       print "_"
X		       print "wide lines!" value["wline10"] "!" value["wline100"] "!" value["wline400"] "!!lines/sec"
X		       print "_"
X		       print "rectangles !" value["rects10"] "!" value["rects100"] "!" value["rects400"] "!!rectangles/sec"
X		       print "="
X		       print "filled rectangles !" value["fillrects10"] "!" value["fillrects100"] "!" value["fillrects400"] "!!rectangles/sec"
X		       print "_"
X		       print "tiled rectangles !" value["tiledrects10"] "!" value["tiledrects100"] "!" value["tiledrects400"] "!!rectangles/sec"
X		       print "_"
X		       print "stippled rectangles !" value["stippledrects10"] "!" value["stippledrects100"] "!" value["stippledrects400"] "!!rectangles/sec"
X		       print "="
X		       print "arcs!" value["arcs10"] "!" value["arcs100"] "!" value["arcs400"] "!!arcs/sec"
X		       print "_"
X		       print "filled arcs!" value["filledarcs10"] "!" value["filledarcs100"] "!" value["filledarcs400"] "!!arcs/sec"
X		       print "="
X		       print "filled polygon!" " " "!" value["filledpoly100"] "!" " " "!!fills/sec"
X		       print "="
X		       print "screen copy!" value["screencopy10"] "!" value["screencopy100"] "!" value["screencopy400"] "!!copies/sec"
X		       print "_"
X		       print "scrolls!" " ! ! !" value["scroll"] "!scrolls/sec"
X		       print "_"
X		       print "bitmap copy!" value["bitmapcopy10"] "!" value["bitmapcopy100"] "!" value["bitmapcopy400"] "!!copies/sec"
X		       print "_"
X		       print "invert rectangles !" value["invrects10"] "!" value["invrects100"] "!" value["invrects400"] "!!rectangles/sec"
X		       print "="
X		       print "text !" " ! ! !" value["string"] "!chars/sec"
X		       print "="
X		       print "complex!" " ! ! !" value["complex1"] "!runs/sec"
X		       print "="
X		       print ".TE"
X		       print ".LP"
X		     }
END_OF_FILE
if test 9127 -ne `wc -c <'scripts/detail.awk'`; then
    echo shar: \"'scripts/detail.awk'\" unpacked with wrong size!
fi
# end of 'scripts/detail.awk'
fi
if test -f 'scripts/xstones.awk' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'scripts/xstones.awk'\"
else
echo shar: Extracting \"'scripts/xstones.awk'\" \(9498 characters\)
sed "s/^X//" >'scripts/xstones.awk' <<'END_OF_FILE'
BEGIN                {
X		       countedWeight["all"] = 0;
X		       missedWeight["all"] = 0;
X		       runtime["all"] = 0;
X
X		       countedWeight["line"] = 0;
X		       missedWeight["line"] = 0;
X		       runtime["line"] = 0;
X
X		       countedWeight["fill"] = 0;
X		       missedWeight["fill"] = 0;
X		       runtime["fill"] = 0;
X
X		       countedWeight["blit"] = 0;
X		       missedWeight["blit"] = 0;
X		       runtime["blit"] = 0;
X
X		       countedWeight["arc"] = 0;
X		       missedWeight["arc"] = 0;
X		       runtime["arc"] = 0;
X
X		       countedWeight["text"] = 0;
X		       missedWeight["text"] = 0;
X		       runtime["text"] = 0;
X
X		       countedWeight["complex"] = 0;
X		       missedWeight["complex"] = 0;
X		       runtime["complex"] = 0;
X
X		       sunValue["line10"]           = 3456.00;
X		       sunValue["line100"]          = 1745.45;
X		       sunValue["line400"]          =  704.00;
X
X		       sunValue["dline10"]          =  768.00;
X		       sunValue["dline100"]         =  170.67;
X		       sunValue["dline400"]         =   46.55;
X
X		       sunValue["wline10"]          =   79.45;
X		       sunValue["wline100"]         =   20.21;
X		       sunValue["wline400"]         =    6.00;
X
X		       sunValue["rects10"]          = 1722.18;
X		       sunValue["rects100"]         = 1070.55;
X		       sunValue["rects400"]         =  452.92;
X
X		       sunValue["fillrects10"]      = 3916.80;
X		       sunValue["fillrects100"]     = 1024.00;
X		       sunValue["fillrects400"]     =  176.00;
X
X		       sunValue["tiledrects10"]     = 2739.20;
X		       sunValue["tiledrects100"]    =  329.14;
X		       sunValue["tiledrects400"]    =   41.29;
X
X		       sunValue["stippledrects10"]  = 1186.91;
X		       sunValue["stippledrects100"] =  153.60;
X		       sunValue["stippledrects400"] =   35.56;
X
X		       sunValue["invrects10"]       = 3010.10;
X		       sunValue["invrects100"]      =  859.91;
X		       sunValue["invrects400"]      =  119.50;
X
X		       sunValue["arcs10"]           =    4.82;
X		       sunValue["arcs100"]          =    1.27;
X		       sunValue["arcs400"]          =    0.55;
X
X		       sunValue["filledarcs10"]     =   15.52;
X		       sunValue["filledarcs100"]    =    5.45;
X		       sunValue["filledarcs400"]    =    2.60;
X
X		       sunValue["filledpoly100"]    =   90.33;
X
X		       sunValue["screencopy10"]     =  158.50;
X		       sunValue["screencopy100"]    =   83.57;
X		       sunValue["screencopy400"]    =   17.76;
X
X		       sunValue["scroll"]           =   26.59;
X
X		       sunValue["bitmapcopy10"]     =  232.82;
X		       sunValue["bitmapcopy100"]    =   52.76;
X		       sunValue["bitmapcopy400"]    =    8.19;
X
X		       sunValue["string"]           = 5009.45;
X
X		       sunValue["complex1"]         =   15.30;
X		     }
X
X/ line10 /           { x = "line10";            w = 300;  g = "line"; }
X/ line100 /          { x = "line100";           w = 400;  g = "line"; }
X/ line400 /          { x = "line400";           w = 300;  g = "line"; }
X/ dline10 /          { x = "dline10";           w =  50;  g = "line"; }
X/ dline100 /         { x = "dline100";          w = 150;  g = "line"; }
X/ dline400 /         { x = "dline400";          w = 100;  g = "line"; }
X/ wline10 /          { x = "wline10";           w =  50;  g = "line"; }
X/ wline100 /         { x = "wline100";          w = 100;  g = "line"; }
X/ wline400 /         { x = "wline400";          w =  50;  g = "line"; }
X/ rects10 /          { x = "rects10";           w = 150;  g = "line"; }
X/ rects100 /         { x = "rects100";          w = 250;  g = "line"; }
X/ rects400 /         { x = "rects400";          w = 150;  g = "line"; }
X/ fillrects10 /      { x = "fillrects10";       w = 350;  g = "fill"; }
X/ fillrects100 /     { x = "fillrects100";      w = 450;  g = "fill";  }
X/ fillrects400 /     { x = "fillrects400";      w = 350;  g = "fill";  }
X/ tiledrects10 /     { x = "tiledrects10";      w = 150;  g = "fill";  }
X/ tiledrects100 /    { x = "tiledrects100";     w = 250;  g = "fill";  }
X/ tiledrects400 /    { x = "tiledrects400";     w = 150;  g = "fill";  }
X/ stippledrects10 /  { x = "stippledrects10";   w =  50;  g = "fill";  }
X/ stippledrects100 / { x = "stippledrects100";  w = 100;  g = "fill";  }
X/ stippledrects400 / { x = "stippledrects400";  w =  50;  g = "fill";  }
X/ arcs10 /           { x = "arcs10";            w =  50;  g = "arc";  }
X/ arcs100 /          { x = "arcs100";           w = 100;  g = "arc";  }
X/ arcs400 /          { x = "arcs400";           w =  50;  g = "arc";  }
X/ filledarcs10 /     { x = "filledarcs10";      w =  50;  g = "arc";  }
X/ filledarcs100 /    { x = "filledarcs100";     w = 100;  g = "arc";  }
X/ filledarcs400 /    { x = "filledarcs400";     w =  50;  g = "arc";  }
X/ filledpoly100 /    { x = "filledpoly100";     w = 200;  g = "dummy"; }
X/ invrects10 /       { x = "invrects10";        w = 100;  g = "blit"; }
X/ invrects100 /      { x = "invrects100";       w = 150;  g = "blit"; }
X/ invrects400 /      { x = "invrects400";       w = 100;  g = "blit"; }
X/ screencopy10 /     { x = "screencopy10";      w =  50;  g = "blit"; }
X/ screencopy100 /    { x = "screencopy100";     w = 150;  g = "blit"; }
X/ screencopy400 /    { x = "screencopy400";     w = 100;  g = "blit"; }
X/ scroll /           { x = "scroll";            w =1000;  g = "blit"; }
X/ bitmapcopy10 /     { x = "bitmapcopy10";      w =  50;  g = "blit"; }
X/ bitmapcopy100 /    { x = "bitmapcopy100";     w = 100;  g = "blit"; }
X/ bitmapcopy400 /    { x = "bitmapcopy400";     w =  50;  g = "blit"; }
X/ imagestring/       { x = "string";            w =3000;  g = "text"; }
X/ complex1 /         { x = "complex1";          w = 800;  g = "complex"; }
X
X/rate =/             {
X		       if ( x != "dummy" ) {
X			 ratio = $3 / sunValue[x];
X			 runtime["all"] = runtime["all"] + w/ratio;
X			 countedWeight["all"] = countedWeight["all"] + w;
X
X			 runtime[g] = runtime[g] + w/ratio;
X			 countedWeight[g] = countedWeight[g] + w;
X			 x = "dummy"; w = 1
X		       }
X		     }
X
X/NOT RUN/            {
X		       if (x != "dummy") {
X			 missedWeight["all"] = missedWeight["all"] + w;
X			 missedWeight[g] = missedWeight[g] + w;
X			 x = "dummy"; w = 1
X		      }
X		     }
X
XEND                  {
X		       cw = countedWeight["line"];
X		       mw = missedWeight["line"];
X		       rt = runtime["line"];
X		       allWeight = 10000;
X
X		       if (cw == 0) {
X			   print "TOTAL ? lineStones"
X		       } else {
X			   rt = (rt*allWeight)/cw;
X			   if (mw > 0) {
X			       text = "expected ";
X		           } else {
X			       text = "";
X		           }
X
X			   ratio = allWeight/rt;
X			   stones = int(allWeight * ratio);
X			   t = sprintf("TOTAL %s %8.0f lineStones",text,stones);
X			   print t;
X		       }
X
X		       cw = countedWeight["fill"];
X		       mw = missedWeight["fill"];
X		       rt = runtime["fill"];
X
X		       if (cw == 0) {
X			   print "TOTAL ? fillStones"
X		       } else {
X			   rt = (rt*allWeight)/cw;
X			   if (mw > 0) {
X			       text = "expected ";
X		           } else {
X			       text = "";
X		           }
X
X			   ratio = allWeight/rt;
X			   stones = int(allWeight * ratio);
X			   t = sprintf("TOTAL %s %8.0f fillStones",text,stones);
X			   print t;
X		       }
X
X		       cw = countedWeight["blit"];
X		       mw = missedWeight["blit"];
X		       rt = runtime["blit"];
X
X		       if (cw == 0) {
X			   print "TOTAL ? blitStones"
X		       } else {
X			   rt = (rt*allWeight)/cw;
X			   if (mw > 0) {
X			       text = "expected ";
X		           } else {
X			       text = "";
X		           }
X
X			   ratio = allWeight/rt;
X			   stones = int(allWeight * ratio);
X			   t = sprintf("TOTAL %s %8.0f blitStones",text,stones);
X			   print t;
X		       }
X
X		       cw = countedWeight["arc"];
X		       mw = missedWeight["arc"];
X		       rt = runtime["arc"];
X
X		       if (cw == 0) {
X			   print "TOTAL ? arcStones"
X		       } else {
X			   rt = (rt*allWeight)/cw;
X			   if (mw > 0) {
X			       text = "expected ";
X		           } else {
X			       text = "";
X		           }
X
X			   ratio = allWeight/rt;
X			   stones = int(allWeight * ratio);
X			   t = sprintf("TOTAL %s %8.0f arcStones",text,stones);
X			   print t;
X		       }
X
X		       cw = countedWeight["text"];
X		       mw = missedWeight["text"];
X		       rt = runtime["text"];
X
X		       if (cw == 0) {
X			   print "TOTAL ? textStones"
X		       } else {
X			   rt = (rt*allWeight)/cw;
X			   if (mw > 0) {
X			       text = "expected ";
X		           } else {
X			       text = "";
X		           }
X
X			   ratio = allWeight/rt;
X			   stones = int(allWeight * ratio);
X			   t = sprintf("TOTAL %s %8.0f textStones",text,stones);
X			   print t;
X		       }
X
X		       cw = countedWeight["complex"];
X		       mw = missedWeight["complex"];
X		       rt = runtime["complex"];
X
X		       if (cw == 0) {
X			   print "TOTAL ? complexStones"
X		       } else {
X			   rt = (rt*allWeight)/cw;
X			   if (mw > 0) {
X			       text = "expected ";
X		           } else {
X			       text = "";
X		           }
X
X			   ratio = allWeight/rt;
X			   stones = int(allWeight * ratio);
X			   t = sprintf("TOTAL %s %8.0f complexStones",text,stones);
X			   print t;
X		       }
X
X		       cw = countedWeight["all"];
X		       mw = missedWeight["all"];
X		       rt = runtime["all"];
X
X		       if (cw == 0) {
X			   print "TOTAL ? xStones"
X		       } else {
X			   rt = (rt*allWeight)/cw;
X			   if (mw > 0) {
X			       text = "expected ";
X		           } else {
X			       text = "";
X		           }
X
X			   ratio = allWeight/rt;
X			   stones = int(allWeight * ratio);
X		           t = sprintf("TOTAL %s %8.0f xStones",text,stones);
X			   print t;
X		       }
X		     }
END_OF_FILE
if test 9498 -ne `wc -c <'scripts/xstones.awk'`; then
    echo shar: \"'scripts/xstones.awk'\" unpacked with wrong size!
fi
# end of 'scripts/xstones.awk'
fi
echo shar: End of archive 3 \(of 4\).
cp /dev/null ark3isdone
MISSING=""
for I in 1 2 3 4 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 4 archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0



More information about the Comp.sources.x mailing list