From: vixie@pa.dec.com (Paul A Vixie)
Newsgroups: comp.unix.bsd
Subject: S3 question - Amancio, are you there?
Date: 26 Dec 92 03:41:05
Organization: DEC Network Software Lab
Distribution: world
NNTP-Posting-Host: cognition.pa.dec.com

I could have addressed this directly to Amancio, but I am betting that a
lot of other folks would like to know the answer.  I have been away from
the PC UNIX world for a while now (years, really) but I am presently
taking a look at different PC configurations for possible BSD/386 or 386BSD
use.  I've already determined that Localbus ("VESA") is more cost effective
than EISA (in terms of useful-bit-made-faster per dollar-spent) and that
a VESA/ISA system is probably what I want unless the price difference of a
VESA/EISA system is within epsilon of what I have in my new-computer fund.

I see that the two greatest bit-bangers of the average computer are available
as VESA cards: display, and disk.  I'm still formulating my disk controller
questions and perhaps I'll ask them in a future post.  Right now I'm trying
to solve the S3 mystery.

At work I have a EISA/SVGA/34020 board.  It is very fast when run under
Windows 3.1; however, Microsoft had access to the 34020 specs and I don't,
so I can't figure out how to port the X server to it and noone in this
newsgroup seems to have done that either.  It's too bad -- a 34020 with
a minimal BITBLT interpreter downloaded into it would make for a lightening
fast X11 server with the 34020 as almost a co-processor.  However, I'm
fairly sure that the 34020's days are numbered given something called "S3"
and the "GUI Accelerator" that seem to be taking the market by storm.

I know that SVGA is more or less a hack on the IBM VGA spec to allow more
pixels; what I don't know is what an "SVGA S3" is.  I have gathered from
context in posts on this newsgroup that it is some kind of graphics
accelerator chipset and that there are several different revisions of
it and that different board manufacturers have had different results.
Yet, VGA is fundamentally a frame buffer that has some hardware assist
for certain operations.  Where does S3 fit in?  Is it another IO port, or
just more opcodes to the existing VGA IO port?  Or just a faster implementation
of the VGA spec?

There are two reasons I need to know this.  First, if the VGA really is "just
a frame buffer", then given a fast CPU and VESA it should be trivial to get
the MIT CFB server running and have it run near the theoretical maximum
(though at some potentially unneccessary cost in main CPU cycles).  If on
the other hand VGA is like EGA in that you can only map certain parts into
memory at a time and it's generally cheaper to send high-level commands and
let the graphics hardware figure out how to achieve them, then I see a
problem.

What problem?  Well, DEC did this really neat thing called the "Dragon" chip
set back on their MicroVAX II/GPX.  It was really really fast -- if you wrote
your application in FORTRAN on VMS.  On the other hand if you ran under X11,
things ran doggishly slow and the visual results were often less than perfect.
This is because the _only_ way to talk to a Dragon is in high-level op-codes,
and the model X11 lived in was incompatible with the one the Dragon used --
so achieving one X11 operation often took several, or hundreds, of Dragon
operations.  Since the Dragon's speed came from its economy of scale, the
speed was less than amazing.

That seems to be what kills EGA (and non-SVGA VGA) performance on PC's.  You
can either send lots of not-exactly-what-you-wanted high level operations
down the "wire" or you can write to memory over a very slow bus.  Either way
things are very very slow.

So here comes S3.  Is it the salvation to all the world's woes?  That depends.
Given VESA, one can access the VGA's "array" at memory speed (barring refresh
stalls -- that whole thing isn't dual-ported, is it?).  Is that enough?  Or,
if not, is it the S3 that gives one the extra performance and/or op-codes that
make X11 sing?  And, if that last is true, why isn't an S3 on EISA or even ISA
"fast enough" ?

I know that Amancio's numbers indicate that the problem _is solved_, one way
or another.  But before I consider plunking money down to buy one of these
boxes, I would very much like to know _how_ it was solved.  And, I would like
to know the answer to the perennial question: "which VESA S3 card is fastest,
and why?"

Thanks in advance...
--
Paul Vixie, DEC Network Systems Lab	
Palo Alto, California, USA         	"Don't be a rebel, or a conformist;
<vixie@pa.dec.com> decwrl!vixie		they're the same thing, anyway.  Find
<paul@vix.com>     vixie!paul		your own path, and stay on it."  -me
Newsgroups: comp.unix.bsd