Quote[/b] ]GPU
Write down these words because you are going to see them in the coming years, not just Xbox 360 related, but also in PC gaming: UNIFIED SHADER ARCHITECTURE.
What sets the Xbox 360 apart from any other existing gaming hardware and puts the console at the very edge of real-time visuals is its graphics system. ATI Technologies, the partner selected to create the Xbox 360 GPU, has designed the very first graphics processor that offers a unified shader pipeline at a hardware level.
This hardware solution together with a unified shader language, which will debut on PCs in 2006 with the next version of Windows (code-named Longhorn) and in its Windows Graphics Foundation 2.0, put the Xbox 360 hardware at the forefront of graphic technologies.
If you are asking yourself what does unified shader architecture mean, let’s first give a quick overview to what was available before the innovative architecture unveiled today so you can understand why it is so revolutionary.
A Little History about Shaders
Shaders are computer programs that define the final, on-screen surface properties of an object in a 3D environment. The most common use for shaders is to define the color, reflectivity and translucency of a surface, but they can also be used to manipulate the object’s position. Shaders were initially introduced in Pixar’s RenderMan for use in offline rendering; that is non real-time graphics usually utilized in the creation of digital visual effects. One example given by Seamus Blackley, one of the creators of the Xbox, when explaining the power of shaders was the example of Jurassic Park’s T-Rex dinosaur. The model for that creature had only 74,000 polygons, but through the use of shaders the character looked nearly life-like.
The GeForce 3 class of hardware, used as the core technology in the Xbox GPU, introduced programmable shaders to the graphics pipeline of graphic cards. Before the introduction of these programmable shaders, graphics equations were hard coded in the graphics chips so programmers and artists had little control over the shading process. The introduction of shaders set a landmark in real-time graphics marking the transition from fixed-functionality graphics hardware to programmable graphics hardware.
In the case of real-time graphics there are two types of shaders; pixel and vertex shaders. These graphics processing functions are executed on a per-pixel, or per-vertex basis at the appropriate point in the graphics pipeline inside the GPU. Programmable pixel shaders let developers manipulate colors, textures or even shapes by altering the lighting, color and surface at a pixel level, being a pixel is the smallest element of an image. Vertex shaders add special effects to objects by performing operations that change the values of the objects’ vertex data, where a vertex is a point of intersection in 3D space (the corner of a polygon) usually defined by its location using x-, y-, and z- coordinates.
Pixel shaders allow developers to create materials and surfaces that no longer look computerized or artificial, but rather organic. Vertex Shaders let developers create realistic animations, deformation of surfaces and real-time morphing for some smooth skeletal animations.
Until now, graphics chips had special dedicated units for pixel and vertex shaders and developers used low-level assembly languages or higher level languages such as that found in the DirectX API to create and run these shader programs on a GPU.
With the advent of the next-generation graphics chips from ATI, such as the one used in the Xbox 360, and the next-generation of DirectX, which will built in the next-generation Windows operating system from Microsoft, (code-named Longhorn) as Windows Graphics Foundation 2.0, a unified shader model will become a reality. The PC industry will have to wait until late 2006. With the Xbox 360, we’ll get this later this year.
Unified Shader Architecture
As we mentioned above, the Xbox 360 graphics processing unit is the first graphics chip to offer a unified shader pipeline at a hardware level. What you also need to know about this graphics chip from ATI is that it is the result of a revolutionary and clever invention.
By now, you may wonder why pixel and vertex shaders were not unified before. Well, the fact is that the requirements of these two types of shaders are quite different, making it necessary to create these two categories both at a hardware and software level. So the fact that someone, in this case ATI, found a way to develop a hardware that unifies both types of shaders under a single architecture is quite an accomplishment. So far, nVIDIA has expressed its dislike for a unified shading architecture giving as an explanation the different requirements of these two types of shaders.
Somehow, ATI has found a clever way to take advantage of the common aspects of both types of shaders while also developing hardware that can address the different requirements that pixel and vertex shaders demand. Recent findings in the United States Patent and Trademark Office and the specs sheet of the Xbox 360 give us a clue of how this clever solution operates.
This is a graphic system in which there are three main units:
A Reservation Station that can store graphic commands. As you would imagine, this reservation station could either store pixel or vertex functions but we’ll see those cases later on. For now, let’s just simply treat this reservation station is as a generic unit that acts as a memory device that stores graphic commands.
An Arbiter (no, this is not the guy from Halo 2) that is connected to the Reservation Station and can retrieve these graphic commands from the Reservation Station and deliver them to:
A Command Processing Engine, which receives these commands from the Arbiter, executes them and can send the commands back to the Reservation Station. These commands include a “done flag” that, when activated by the Command Processing Engine, tells the whole system that the command has been executed already.