Threading Architecture: Physics + Rendering
This threading architecture splits the data structures of the game, such as the scene graph, into domains, and has threads that walk around the domains in the scene graph.
This version implements compound functional and domain decomposed threading of a game. At the functional level, two things are occurring, each of which represents a greatly simplified game component:
- Physics interactions
Star objects move toward each other and toward a black hole under the force of gravity. They do a gravity interaction and an update-positions phase in each frame. The set of stars is decomposed with the data structures and with Threading Building Blocks tasks into domains.
- Rendering
The scene graph goes into a display list and is displayed.

Figure 11-26. Screen capture from example
On two-processor cores, physics and rendering are each given a core resulting in a pipeline on two threads. On four-processor cores, physics has multiple Threading Building Blocks threads that execute different domains.