MaximumPC 2007 01

(Dariusz) #1

XXXXXXX JANUARYJANUARY 2007 MAMAXIMXIMUUMMPPCC 00 2


for the PC nearly as consistent as it is for
game consoles.


DEDICATED DOESN’T ALWAYS
MEAN SUPERIOR
Hardware that’s dedicated to a certain task
usually does a better job at that task than
multipurpose hardware. In DirectX 9.0, for
instance, GPUs have components dedicat-
ed to executing vertex-shader code (simple
geometry, basically) and others dedicated
to running pixel-shader operations. DirectX
10 takes a different approach. It envisions
a unifi ed architecture in which any of the
GPU’s shader-processing units can execute
any of the three types of shader code: the
aforementioned vertex and pixel instruc-
tions, plus the new category of geometry.
Microsoft’s reasoning is sound: If a
game needs a lot of geometry processing
at a particular moment in time, for example,
why not dedicate all the GPU’s resources
to it instead of leaving thousands of transis-
tors standing around with their fi gurative
arms folded saying “Hey, that’s not my job.”
Dynamic load balancing and thread arbiters
in the GPU will prioritize hardware utilization
to ensure that the most important tasks are
always performed fi rst. This unifi ed architec-
ture should also enable the graphics pipeline
to evolve even more rapidly, because the
hardware on which it operates is fl exible
enough that it can handle new tasks.


COOL TOOLS
One way to improve 3D graphics perfor-
mance is to reduce the number of draw
calls made to the CPU. This is particularly
important in scenes where there are many
complex objects, such as jungle foliage or
armies arrayed on a battlefi eld. Direct3D 10
supports a technique known as instancing
to accomplish this. Basically, a software
application can instruct the GPU to draw the
same object multiple times in multiple plac-
es without requiring the CPU to intervene.
Texture arrays are then used to avoid
having every object in a scene look exactly
the same. A texture array allows mul-
tiple textures to be loaded into the same
resource. When each object is drawn, the
program can choose from an index of tex-
tures that can be mapped onto it.
We discussed the Direct3D 10 pipeline
in some depth in our “2007 Tech Preview” in
the Holiday issue, but there’s an important
aspect of the new Geometry Shader that we


didn’t cover: stream output. Previous gen-
erations of the Direct3D pipeline functioned
in a strictly linear fashion, with instructions
entering the top and images emerging from
the bottom to be sent to the display. Stream
output enables the vertex and geometry
shaders to store their results in memory buf-
fers, and then circulate this output back to
the top of the pipeline for a second round of
processing—with minimal intervention from
the CPU. Stream output should increase the
GPU’s capacity for parallel processing by a
signifi cant factor.

SO WHAT’S NEXT?
Microsoft is already hard at work on the next
big thing: DirectX 10.1 This point release
will include all the image-quality goodness
of DX10, and it will add a number of new
features that should allow developers and

GPU manufacturers to take PC image qual-
ity even further. One of the most signifi cant
improvements will impact an application’s
control over antialiasing. In the current
state of affairs, under which AA is either on
or off, GPU cycles are frequently wasted
on scenes where aliasing isn’t going to be
noticed anyway. Under DirectX 10.1, devel-
opers can control not only both multisample
and supersample antialiasing, they can also
choose the best sample patterns for each
rendering scenario.
We’ve barely scratched the surface of
DirectX 10. With support for shader instruc-
tions of unlimited length, improved load bal-
ancing between the CPU and GPU, reduced
API and driver overhead, and a vision of
GPUs offering precision equal to that of
CPUs, DX10 and the videocards that sup-
port it hold the promise to blow our minds.

COMPLEX VERTEX PROCESSING

TRADITIONAL SHADERS

COMPLEX PIXEL PROCESSING

=


VERTEX SHADER UNITS Engaged in
vertex processing

PIXEL SHADER UNITS Engaged in
pixel processing

=


VERTEX SHADER UNITS Engaged in
vertex processing

PIXEL SHADER UNITS Engaged in
pixel processing

UNIFIED SHADERS

COMPLEX VERTEX PROCESSING

COMPLEX PIXEL PROCESSING

=


UNIFIED SHADER UNITS Engaged in
vertex processing

Engaged in
pixel processing

=


UNIFIED SHADER UNITS Engaged in
pixel processing

Engaged in
vertex processing

I D L E


AN ENTIRELY NEW SHADER ARCHITECTURE


Unified shaders make more efficient use of hardware


I D L E

Free download pdf