[comp.windows.x] Speeding up the X server on sun3's

devin@topologixtopologix.com (Devin Hooker) (10/12/88)

I have seen discussion about speeding up the x server on sun 3's, and I was
wondering how to do this?  AtDhVaAnNkCsE.

				-Devin

-- 
Devin Hooker
Software Engineer
4860 Ward Rd.
Denver, Co.  80033    (303) 421-7700

rgs@corona.megatek.uucp (Rusty Sanders) (10/13/88)

From article <163@topologixtopologix.com>, by devin@topologixtopologix.com (Devin Hooker):
> I have seen discussion about speeding up the x server on sun 3's, and I was
> wondering how to do this?  AtDhVaAnNkCsE.
> 
I presume you're talking about color X on a sun (since mono isn't toooo bad).
First off, you wait for X11R3 to be release, since one of the things you're
likely to want to speed up is already sped up some. With that in hand, you
start a lot of coding.

First thing to do is get hold of the purdue mods for mono X and do similar
things in color X. That means changing cfbmskbits.h and cfbmskbits.c. While
you're in there do something about the PFILL macro (use a lookup table instead
of logic, it's only 256 words).

That will get you about 6%-10%, in general. *Whoopie*, that's the end of the
easy things to do.

The first real specific place is glyph rendering. Look at cfbteglyphblt.c . 
Currently it paints glyphs left to right, top to bottom. Change it so it
goes the other way. allowing you to calculate the masks only once.
Now, break out the getstipplepixel calls into real code, move anything
invarient you can out of the loop, declare registers to point at the
data, and otherwise optimize the bejeezus out of the thing.

After that trivial excersize create cfbimggblt.c and cfbplygblt.c, based on
a combo of cfbtegblt.c and the corresponding mfbimggblt.c and mfbplygblt.c.

After that you'll have moderatly fast glyphs (probably about 1/2 to 1/3
as fast as what I do, but I'll leave it as an extra credit effort to figure
out how that works, sorry).

Next thing is probably line drawing (if you use the window manager any, you'll
notice it's maddening). That one's easy. Just steal mfbline.c, mfbhrzvert.c,
and mfbbres.c and modify them to peices. Remember, don't ever use a macro
without known EXACTLY what code it generates. If you want good performance,
don't do the same calculation twice.

You may want to speed up tiled drawing and solid area drawing. Those are in
Those are in cfbfillsp.c. By now, you should be getting a good feel for what
to do, so I won't go into it.

That should give you enough for a goodly period of time. I wish that I could
contribute the stuff I've done to get good speed out of the server, but my
company (rightly so) believes it's proprietary. Guess you'll just have to
buy our sun based system :-) (Actually, I do use some hardware on our FBM
which gives me very good scroll speed, fast and painless cursoring, and
a minor speedup on clipping to odd pixel boundaries).

I suspect the reason that nobody's gone and contributed a faster version
of X for the sun is that it's non trivial to get there (actually, for any
cfb based system). Any company which invests the effort will probably want
to keep that advantage. At the moment, then, your only option is to roll up
your sleeves and dig in to it.

(By the way, your system name "topologix" is 9 characters long. That upsets
many uucp sites. By the time the message got to me you return address was
devin@topologixtopologix.com , evidently having one of its "."s striped.
I would suggest you change the name of your site, 8 characters is the most
allowed, I believe)
Rusty Sanders, Megatek Corp. --> rgs@megatek or...
         ...ucsd!
..hplabs!hp-sdd!megatek!rgs
  ...ames!scubed!

rusty@grunt.berkeley.edu (10/14/88)

In article <669@stiatl.UUCP> meo@stiatl.UUCP (Miles O'Neal) writes:
>The path of least resistance is to await the X11/NeWS release due out
>(theoretically) Q1/88...

Last I heard, it's slower than the x11r2 sun server, and you have
to buy it; it won't be part of the SunOS distribution (neither of
which isn't surprising since NeWS is slow and isn't part of SunOS).

--------------------------------------
	rusty c. wright
	rusty@violet.berkeley.edu ucbvax!violet!rusty

peter@polygen.uucp (Peter Ent) (10/14/88)

I need info on another performance "enhancement" for the Sun X11 Server:
how do you make it do save_under?  According to the X macro, DoesSaveUnder,
it does not do save_under (nor backing_store).  Doing the backing
store yourself (via Pixmaps) seems slow.

Does anyone know if save_under can be turned on or is in a future
release?

	Peter Ent
	Polygen Corp.
	Waltham, Ma.
	(617) 890-2888

RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (10/14/88)

    Date: 14 Oct 88 12:55:49 GMT
    From: polygen!peter@bu-cs.bu.edu  (Peter Ent)

    how do you make it do save_under?

Get R3 when it comes out.

casey@admin.cognet.ucla.edu (Casey Leedom) (10/18/88)

| From: rgs@corona.megatek.uucp (Rusty Sanders)
| 
| | From: devin@topologixtopologix.com (Devin Hooker)
| | 
| | I have seen discussion about speeding up the x server on sun 3's, and I
| | was wondering how to do this?
| 
| [lot of good information on how to speed up the color Sun X server]
| 
| I wish that I could contribute the stuff I've done to get good speed out
| of the server, but my company (rightly so) believes it's proprietary.
| Guess you'll just have to buy our sun based system :-).
| 
| I suspect the reason that nobody's gone and contributed a faster version
| of X for the sun is that it's non trivial to get there (actually, for any
| cfb based system).  Any company which invests the effort will probably want
| to keep that advantage.  At the moment, then, your only option is to roll
| up your sleeves and dig in to it.

  I don't mean to start a flame war here, so please take my comments in
the ``questioning mode'' that they're offered.

  It strikes me that MegaTek got an awful lot of free software (X11) on
which to base their speeded up SUn server work.  Much of that free
software was even donated by some of their competitors.  Is it really
fair to hold out on the improvements that they've made?  After all,
everyone else across the net is donating the fixes and improvements they
make to the X11 distribution (which again MegaTek benefits from).

  Thanks for all the hints on how to speed up the Sun server, but I hope
that MegaTek reconsiders their position on releasing your work.  This is
especially true if, as you hint, some of the improvements are applicable
to any cfb based server.

Casey

--------
I have a friend who is planning on voting for Bush because ``Bush looks
like a Party Man - someone who will follow whatever the Party Line is.''
Now, while this was very perceptive of my friend (Bush seems to be
willing to say anything to get elected - no matter how at odds with what
he may have said before), I call this a bug, not a feature ...

dtucker@cod.NOSC.MIL (David Tucker) (10/28/88)

What are Purdue modifications?  Will they improve mono x performance
on SUN3s?  Where would one find these modifications?