1fd7d9bd3SmrgGeneral concerns
2fd7d9bd3Smrg----------------
3fd7d9bd3Smrg
4fd7d9bd3SmrgMachine type
5fd7d9bd3SmrgDisplay type
6fd7d9bd3SmrgDisplay on different machine?
7fd7d9bd3SmrgVisual
8fd7d9bd3SmrgClipping
9fd7d9bd3SmrgObscured by cursor
10fd7d9bd3SmrgBackground tiling
11fd7d9bd3SmrgThe whole software vs. hardware bit: computational overhead vs. time spent
12fd7d9bd3Smrg  drawing
13fd7d9bd3SmrgPlanemask
14fd7d9bd3Smrg
15fd7d9bd3SmrgPolyFillRectangle
16fd7d9bd3Smrg-----------------
17fd7d9bd3SmrgUse same test as PolyRectangle?
18fd7d9bd3SmrgPerhaps give FillPoly some of these too, see if it special cases them.
19fd7d9bd3SmrgFill Rectangle vs. Fill Poly for same size areas would be an
20fd7d9bd3Smrg  interesting comparison.
21fd7d9bd3Smrg
22fd7d9bd3SmrgThings to look for:
23fd7d9bd3Smrg	All it's really doing is setting or unsetting planes.
24fd7d9bd3Smrg	When a whole word is filled, it should be quite fast (just
25fd7d9bd3Smrg	setting it to 0 or ~0).
26fd7d9bd3Smrg	Otherwise, the speed of a single rectangle should be about
27fd7d9bd3Smrg	equal to its size.
28fd7d9bd3Smrg
29e53c48bfSmrgData:
30fd7d9bd3Smrg	Pixels per second.
31fd7d9bd3Smrg	Average size of rectangle.
32fd7d9bd3Smrg
33e53c48bfSmrgGC fields:
34fd7d9bd3Smrg	function:
35fd7d9bd3Smrg	Tiling: likely to be a lot slower, although for whole words
36fd7d9bd3Smrg		you're just setting it to a certain value, rather than 0.
37fd7d9bd3Smrg		(You also have to look at the y value).  Strange width
38fd7d9bd3Smrg		tiles (are these allowed?) are likely to be real bad.
39fd7d9bd3Smrg	Stippling: also slower - I'm not sure whether or not this would
40fd7d9bd3Smrg		be slower than tiling.  This probably has a greater
41fd7d9bd3Smrg		chance of being done in hardware.
42fd7d9bd3Smrg
43fd7d9bd3Smrg	plane-mask:
44fd7d9bd3Smrg		plane of 0 would be real fast, since it doesn't modify
45fd7d9bd3Smrg		anything.  plane of ~0 should be fast, since it doesn't
46fd7d9bd3Smrg		have to think.  Anything else would probably be
47fd7d9bd3Smrg		proportional to the number of planes...
48fd7d9bd3Smrg
49fd7d9bd3Smrg	subwindow-mode: I don't believe it matters.
50fd7d9bd3Smrg
51fd7d9bd3Smrg	clip-x-origin
52fd7d9bd3Smrg	clip-y-origin
53fd7d9bd3Smrg	clip-mask:
54fd7d9bd3Smrg		Clipping in general should probably increase speed rather
55fd7d9bd3Smrg		than decrease it, unless the clipping region is strange.
56fd7d9bd3Smrg		Possible increase in speed because less change to the
57fd7d9bd3Smrg		display is being made; possible decrease in speed because
58fd7d9bd3Smrg		more thought has to be given to what is drawn or not.
59fd7d9bd3Smrg		Software vs. hardware, I suppose.
60fd7d9bd3Smrg
61e53c48bfSmrgPossibly
62fd7d9bd3Smrg	foreground: similar to plane-mask in its effect, I would think.
63fd7d9bd3Smrg
64fd7d9bd3Smrg	tile: "nice" width tiles would probably be better.  A width which
65fd7d9bd3Smrg		is not a divisor of the length of a word would be
66fd7d9bd3Smrg		significantly slower.  A width the size of a word is
67fd7d9bd3Smrg		probably perfect.  The actual contents of the tile
68fd7d9bd3Smrg		probably don't matter: Any code to check for tiles
69fd7d9bd3Smrg		which could be "simplified" would probably take too much
70fd7d9bd3Smrg		time to execute to do any good.
71fd7d9bd3Smrg
72fd7d9bd3Smrg	stipple: like tile
73fd7d9bd3Smrg
74fd7d9bd3SmrgOther:
75e53c48bfSmrg	alignment on word boundaries: fastest when one is changing whole
76fd7d9bd3Smrg	words at a time.  That way, you're just setting whole words to
77fd7d9bd3Smrg	0 or ~0 and not doing any computation.  A 32x1 rectangle should
78fd7d9bd3Smrg	be much faster than a 1x32 rectangle.
79fd7d9bd3Smrg
80fd7d9bd3Smrg---------
81fd7d9bd3SmrgThings to put in test:
82fd7d9bd3Smrg
83fd7d9bd3SmrgCheck all alignments.
84fd7d9bd3SmrgPerhaps some sort of comparison between thin rectangles oriented
85fd7d9bd3Smrg  horizontally and oriented vertically.
86fd7d9bd3SmrgSmall rectangles, big rectangles: compare pixels/second for each.
87fd7d9bd3Smrg  Good way of computing overhead costs.
88fd7d9bd3Smrg
89fd7d9bd3Smrg---------
90fd7d9bd3Smrgtest
91fd7d9bd3Smrg(1-32)x32 at all 32 bits in a word.
92fd7d9bd3Smrg(97-128)x32
93fd7d9bd3Smrg(97-128)x128
94