***Perspective - State of 3D Graphics Hardware
by Brian Hook
As of early 1997, we are seeing the real emergence of useful and common
3D acceleration in the PC consumer space. Machines from major
manufacturers are now shipping with 3D acceleration, even if it is
mostly token "free-D" acceleration, and sales of add-in 3D acceleration
boards from Creative, Orchid, Diamond, and Integraph are taking off.
Software stores are now beginning to stock titles with 3D acceleration
out of the box -- 3D accelerated games are no longer the domain of
bundled titles and cobbled together after market patches for games
designed for the VGA. 1997 will be remembered as the genesis of real 3D
acceleration for the consumer PC.
So the question is-where will the market head? John Latta did a very
insightful report on this in Wave #617. In this article I'm going to
discuss some related topics, and give my slant on some of the issues he
raises.
Because of the cut-throat nature of the consumer PC industry, chip
vendors that aren't pioneering are going to get left behind. The days
of differentiation through strong 2D support are gone-Windows
acceleration is a well understood problem, and just about anyone can
design a fast Windows accelerator. The differentiating factors today
are 3D and video acceleration. Of these two, the former is by far
getting the most hype- people are finding a hard time coming up with
real applications that need video acceleration.
With the adoption of standardized 3D graphics APIs such as Direct3D and
OpenGL, chip vendors are going to be competing on price, performance,
and features. It's going to be easy to test the performance of
different chips using games and applications that use these
standardized APIs- benchmarking facilities like id Software's Quake
TIMEDEMO are going to quickly become the selling points for many
vendors, as these reflect real world performance. People don't care
about abstract metrics like triangles/second or megapixels/second, they
care about the real performance of real games they can buy.
The absence of even a single feature such as bilinear blending will be
absolutely unacceptable when trying to get design wins in the future,
even if it's for a slightly lower price. OEMs are not going to invest
in technologies that they know will lose in a marketing war.
Not only that, but if you're the odd man out by missing a particular
feature then ISVs may just say "Vendor XYZ not supported" instead of
trying to deal with it. Id Software's GLQuake is establishing such a
reference- hardware with poor fill rates or bad Z-buffering and alpha
blending performance need not apply when trying to support GLQuake.
This is much simpler for developers than trying to write code that
supports every possible permutation of missing features or performance.
With that said, it's still going to be entirely possible that a wide
range of 3D performance will exist across many price ranges. Feature
sets may be roughly the same across an entire price range, the
differentiating factor will be performance. An analogy may be struck
with overall system performance-people with low budgets may opt for
systems with reduced hard drive space, slower CPUs, and less memory,
and realize that overall system performance will suffer as a result of
tighter spending limits. With low end systems it is entirely
appropriate to expect a 3D accelerator that doesn't have the
performance of a system that costs twice as much.
In the near future we'll see fill rates climb to the point that they
are useable on the low end, and downright phenomenal on the high end.
Low end accelerators will have fill rate of at least 20 mpixels/second,
and high end accelerators will have fill rates from 75-150
mpixels/second.
Triangle setup will be moved on-chip, freeing up precious CPU cycles,
and bus mastering will become more prevalent to ease host<->chip flow
control problems common with poor PIO designs. Windows/2D/video
acceleration will be incorporated into these chipsets since this is
demanded by the public at large-people don't want more boards taking up
what few PCI slots they have. The amount of local texture memory will
be variable, depending on market conditions (DRAM prices) and how well
AGP turns out in practice, but game developers are going to start
expecting a bare minimum of 2MB of "working set" texture RAM.
Compressed textures will become more prevalent. In the near future bus
and main memory bandwidth concerns are going to become the predominant
performance issues. Right now real PCI system bandwidth of 80MB/sec is
achievable, but this still limits us to barely a million
triangles/second under ideal conditions. We're going to find that a lot
of future applications are going to be main memory bandwidth limited.
This is only going to be helped by larger L1 and L2 caches, unless a
major breakthrough in main memory designs occurs (doubtful).
I don't foresee geometric acceleration in the near future. There are
several reasons for this. The primary one is that commodity CPUs have
reasonable floating point performance-a P6 should easily manage more
than 1 million triangles/second worth of lighting and transformation
when doing raw computations. Also, geometric acceleration is tough to
implement because you can't just put a little bit in hardware. If you
accelerate transformations, you need to accelerate the rest of the
pipeline, including clipping and maybe even lighting. APIs such as
Direct3D and OpenGL also support post-transformation effects such as
texture coordinate generation for environment mapping. Putting all of
this in a dedicated ASIC will be prove nearly impossible, at least not
without making some significant trade-offs (number of lights, type of
lighting, etc.)
Essentially, an entire API would have to be implemented in silicon, and
this just isn't feasible from a cost/performance point of view. One
could do a very competent implementation of OpenGL or Direct3D in a
dedicated RISC CPU such as the MIPS R5000 or a PowerPC 604e, with, say,
4MB of local DRAM for storing code. But at this point you have an add-
in board that costs at least $1000 -- effectively an embedded OpenGL
computer on a board.
What we may see instead is SMP configurations where an entire OpenGL
implementation runs on a second processor under Windows NT. There are
also technical limitations with this, but when someone comes out with
such an implementation it will be interesting to see the result.
If it can be managed I wouldn't be surprised to see portables with 3D
acceleration become more prevalent. Portables and laptops are often
replacing people's desktop systems completely, and I think these people
may still want 3D acceleration for many purposes-entertainment, walk-
throughs, business presentations, etc. If we see applications released
that require Direct3D or OpenGL support, then laptop users are not
going to want to be left out in the cold simply because of no 3D
acceleration-and laptop manufacturers will rush to meet the need.
I think 1997 is going to be remembered as "The Year 3D Acceleration
Started To Happen...Really". 1995 and 1996 had releases of several
almost-rans- the Rendition Verite was plagued by poor VGA performance
and very few design wins; the 3Dfx Voodoo was a 3D only card that
required an annoying pass-thru connector; the "FreeD" chips turned out
to be, in many cases, slower than fast 3D software; and most of the 3D
accelerated titles were simply hopped up versions of games designed for
VGA (Descent, Descent II, Quake/VQuake/GLQuake, MechWarrior 2).
In 1997 we'll start to see the first quality titles coming out designed
with 3D acceleration in mind, if not designed for 3D acceleration
exclusively. A significant number of machines will have some form of 3D
acceleration, even if it's just MMX, and the API Wars will begin to
settle out. Direct3D and OpenGL will both gather significant support,
and will probably end up coexisting with each other in the PC space.
ABOUT THE AUTHOR
Brian Hook is a highly-respected member of the 3D graphics industry,
with more than 14 years of experience specializing in real-time 3D
graphics. He is the author of the popular book, "Building a 3D Game
Engine in C++" as well as numerous articles in industry publications.
He is also the president of WK Software, an engineering consulting firm
specializing in all aspects of the 3D graphics pipeline. WK Software
can be found at:
www.wksoftware.com
Wave Issue 9702 2/3/97 Article 2-01