model that will support a variety of image-synthesis algorithms, as well as nongraphics tasks.
This architectural transformation presents both
opportunities and challenges. For hardware designers, the
primary challenge is to balance the demand for greater
programmability with the need to continue delivering high performance on traditional image-synthesis
algorithms. Software developers have an opportunity to
escape from the constraints of hardware-dictated image-synthesis algorithms so that almost any desired algorithm
can be implemented, even those that have nothing to do
with graphics. With this opportunity, however, comes the
challenge of writing efficient, high-performance parallel
software to run on the new graphics architectures. Writing such software is substantially more difficult than writing the single-threaded software that most developers are
accustomed to, and it requires that programmers address
challenges such as algorithm parallelization, load balancing, synchronization, and management of data locality.
The transformation of graphics hardware from a specialized architecture to a flexible high-throughput parallel
architecture will have an impact far beyond the domain
of computer graphics. For a variety of technical and business reasons, graphics architectures are likely to evolve
into the dominant high-throughput “manycore” architectures of the future.
This article begins by describing the high-level forces
that drive the evolution of realtime graphics systems,
then moves on to some of the detailed technical trends
in realtime graphics algorithms that are emerging in
response to these high-level forces. Finally, it considers
how future graphics architectures are expected to evolve
to accommodate these changes in graphics algorithms
and discusses the challenges that these architectures will
present for software developers.
APPLICATIONS DRIVE EVOLUTION OF
To understand what form future graphics architectures
are likely to take, we need to examine the forces that are
driving the evolution of these architectures. As with any
engineered artifact, graphics architectures are designed to
deliver the maximum benefit to the end user within the
fundamental technology constraints that determine what
is affordable at a particular point in time. As VLSI (very
large-scale integration) fabrication technology advances,
the boundary of what is affordable changes, so that each
generation of graphics architecture can provide additional
capabilities at the same cost as the previous generation.
Thus, the key high-level question is: What do we want
these new capabilities to be?
Roughly speaking, graphics hardware is used for three
purposes: 3D graphics, particularly entertainment applications (i.e., games); 2D desktop display, which used to be
strictly 2D but now uses 3D capabilities for compositing
desktops such as those found in Microsoft’s Vista and
Apple’s Mac OS X; and video playback (i.e., decompression and display of streaming video and DVDs).
Although for most users desktop display and video
playback are more important than 3D graphics, this
article focuses on the needs of 3D graphics because these
applications, with their significant demands for performance and functionality, have been the strongest force
driving the evolution of graphics architectures.
Designing a graphics system for future 3D entertainment applications is particularly tricky because at a
technical level the goals are ill defined. It is currently not
possible to compute an image of the ideal quality at real-time frame rates, as evidenced by the fact that the images
in computer-generated movies are of higher quality than
those in computer games. Thus, designers must make
approximations to the ideal computation. There are an
enormous variety of possible approximations to choose
L ink between Applications and Architectures