Single page Print

Performance improvements and new possibilities
Valve says hybrid threading is the most difficult approach to multithreading, but it scales well enough to be worth the investment. With dual-core processors, Valve sees an increase in frame rate as the main benefit to multithreading. However, there comes a point where increasing the frame rate begins to deliver diminishing returns. With quad-core systems, Valve is looking to provide gamers with new experiences rather than simply smoothing frame rates. Game elements like artificial intelligence, particle systems, and physics have traditionally been given fractions of a single CPU's resources. Quad-core processors allow them to access considerably greater computational resources that programmers are more than eager to burn on smarter AI, richer visual simulations, and more realistic physics.

Artificial intelligence is a great candidate for hybrid threading because it's tolerant in the sense that answers to questions aren't necessarily needed right away. The game can wait a few fractions of a second for the answer to a "where's cover?" question without adversely affecting gameplay, allowing some calculations to be queued to run on idle processor cores. There are also implications for what Valve calls out-of-band AI. This additional layer of artificial intelligence is separate from the core AI, but feeds information to it.


Valve rains down particles


Environmental particle interaction

Particle systems also lend themselves well to hybrid threading. Although they're mostly a visual effect, particle systems actually tend not to be GPU-bound. They also tend not to interact with each other, making it possible to run independent particle systems on individual cores. In situations where there is only one particle system in the scene, that system can also be distributed across multiple cores. Having those extra cores available for particle processing allows Valve to create much more complex particle systems—ones that can interact with the world and even have gameplay implications.

Quantifying multi-core performance
To illustrate how multi-core processors can improve performance, Valve gave us a couple of benchmark applications. The first runs the VRAD lighting calculation tool on a Half-Life 2 map. This isn't an end user application, but it shows how well multithreading can speed elements of the game development process, in this case a level build.

VRAD exhibits near-linear scaling, with the quad-core Core 2 Extreme QX6700 building the level nearly twice as quickly as the X6800, which runs at a higher clock speed. The Athlon 64 FX-62 is more than 35% slower than Intel's fastest dual-core processor and not even close to the QX6700.

Valve also gave us a particle system benchmark that actually runs inside the Source engine. This test steps through a series of particle simulations, and according to Valve, it's completely CPU-bound. Unlike VRAD, this test case is more typical of what an actual gamer might experience.

The QX6700 cleans up in the particle system benchmark, running nearly twice as fast as the dual-core X6800. Again, we see the FX-62 bring up the rear, although this time it's only about 20% off the pace set by the X6800.