DirectX 10 & the Future of Gaming

How is DirectX 10 and its Unified Architecture going to benefit gamers? What is the gamer going to need to take and advantage of it? We recently sat down with ATI and talked about DirectX 10 and how their next generation desktop GPU will benefit.

continued...

DirectX 10 removes Limitations

Fix the Small Batch Problem

Since DirectX 10 is completely written from the ground up as a new API, a lot of the old overhead can be reduced. Object overhead is greatly reduced so that more unique objects can be shown in a scene at one time. In the real world no two objects are identical even if they are the “same.” Currently in a game we might find all the chairs in a room to be drawn so they would look exactly the same. We see the same thing with grass, trees, and many other objects. This “carbon copy” impression peels away layers of immersion that the game developer is striving for. Currently most grass you might see on a battlefield are just copies of each other and most other vegetation is not unique either; simply changes to fullness and color for the most part are used to make the objects “different.” In tomorrow’s games there can be hundreds if not thousands of unique objects. With DirectX 10 the capability will be there to show more unique objects so that the environment is more realistic and immersive. Of course you can still hit performance limits with the hardware you are rendering with, but at least the API won’t be holding game content developers back. Performance of the GPU will be the deciding factor, at least in the foreseeable future.

Article Image Article Image Article Image Article Image

With less overhead the execution time is reduced. Currently with DirectX 9 for the most part, the API+Driver can take up to 40% of execution time. With DirectX 10 this is reduced in half allowing more time for the game/application. What this means is that the game content developer can insert more unique objects into their games creating a more immersive experience.

Include a new Geometry Shader

Article Image

One of the new features added to DirectX 10 is a new stage in the pipeline called a Geometry Shader. In the slide above you can see how it fits into the scheme of things on a fixed pipeline architecture. It is fit right in-between the Vertex and Pixel units. To put this in real terms this new shader can take triangles and treat them like objects controlling them at their vertices. These primitives are then passed on to the pixel shader. This can allow for some very neat effects such as real time Displacement Mapping, Stencil Shadow Extrusion, Point-Sprite generation from points, Motion Blur, and so many other effects that will now be possible with DirectX 10 hardware. The Geometry Shader is a very exciting new feature for game content developers if not the most exciting new graphical feature do DirectX 10.


Base DirectX 10 on a Unified Architecture

DirectX 10 is built from the ground up with a unified architecture in mind. This unified API and GPU architecture collapses the traditional vertex, geometry and pixel units into one processing stage instead of separate units. So, the API can handle all of these instructions through a single GPU stage instead of it having to be broken apart as it has been in the past. Instead of vertex, pixel, and geometry shader units, just think one big unit to do it all. Today we are at many times seeing processing units on a GPU being wasted due to applications bottlenecking other units. Currently we might see Vertex Shading units going unused while waiting for Shader Units to complete their processing (or vice versa). Unified architecture should remedy much of this latency and wasted silicon cycles.

While DirectX 10 can fully utilize a unified GPU architecture, a unified GPU isn’t required to meet DirectX 10 specification. Therefore you can still have a GPU with separate vertex, geometry, and pixel units that is completely DirectX 10 capable and compliant. The key component that will need be to supported by a non-unified GPU is the new Geometry Shader that could work in a fixed pipeline architecture as shown above.

Article Image Article Image Article Image

Article Image Article Image Article Image

One of the key ideas behind a unified architecture is to move the GPU from a rendering only processor to a complete compute processor. Right now all the GPU does is render 3D and displays it on your screen (yes it does more like 2D, video etc... but for the point of this article we are talking about 3D). With a unified architecture the GPU becomes more. It becomes a processor that can do almost anything that needs code processed. This means the GPU can take on more functions like physics, AI, animation and many other processes that can benefit the gaming experience. DirectX 10 and a unified GPU architecture helps a video card become an all-in-one Swiss army knife of game processing. Those are the ideas at least, how it all works out is up to the game content developers.

Article Image

In the slide above you can see there is a new thread arbiter. This arbiter unit issues threads to the core which determines how much of the scene needs vertex, geometry or pixel shading resources. It basically plays “traffic cop” for all of the instructions moving towards the GPU. The GPU then does all the required work rendering your scene. This will allow highly complex vertex and pixel shaded-heavy scenes to be processed with the full resources of the GPU. The thread arbiter can issue many threads at once, just like multi-threading with a CPU. You can see how all of this ties in with the “Ultrathreading” core introduced in the Radeon X1000 series technology. The X1000 series could be considered a hybrid Unified Architecture, as it is a step right before a fully realized Unified Architecture.

Article Image

You can now see how all this ties into the XBOX 360 as well. The XBOX 360 uses ATI GPU technology and it is a unified architecture. Therefore ATI already has a 1st generation unified architecture GPU on the market. Obviously the XBOX 360 is ahead of desktop GPUs in terms of this technology.

ATI’s next generation desktop GPU will be a fully unified architecture. Since the XBOX 360 is ATI’s first generation unified architecture technology their next generation desktop GPU will be ATI’s 2nd generation unified architecture technology. That means ATI has taken what they learned from the XBOX 360 unified architecture and made improvements to create an even better unified architecture for the PC with their next generation desktop GPU. This also means porting games between the XBOX 360 to ATI desktop GPU hardware should be easier.