threading successes of popular pc games and engines paul lindberg and brad werth intel corporation...
TRANSCRIPT
![Page 1: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/1.jpg)
Threading Successes of Popular PC Games and
Engines
Paul Lindberg and Brad WerthIntel Corporation
GDC 2008
![Page 2: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/2.jpg)
22
What’s this all about?
•Last year we had a great turnout for our hands-on tutorial on game threading.
•This year we want to focus on current commercial products and future pathfinding efforts.
•We’ll cover performance and feature enhancements from threading.
•This is a half day tutorial!
![Page 3: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/3.jpg)
33
What we’ll hit today
•Introduction•Supreme Commander•Gamebryo Element Engine•Hellgate: London
– Break!
•Intel’s n-core engine experiment•Allegorithmic’s Substance•Wrap-up
– Food!
![Page 4: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/4.jpg)
44
Why threading?
•GHz era – so over.•Multi-core is ubiquitous in gaming platforms.•Consumers demand validation of their purchase.
•Threading is still an unsolved problem for games.
![Page 5: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/5.jpg)
55
Let’s look at common threading themes for games
•Task (on a thread)
•Control Transition– Lock protecting shared data– Data copied to local data– Operation on local data
Task
![Page 6: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/6.jpg)
66
Render Split works well, but gains are limited
•Copy data necessary for calls to rendering APIs•Make all rendering calls from the same thread•Render one frame behind the simulation
Render
The Rest
![Page 7: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/7.jpg)
77
Work Crew or Pipeline moves a lot of data around
•Apply the Render Split concept everywhere
Render
Physics
Particles
Animation
Render
Physics
Particles Particles Particles Particles
Physics Physics
Animation
AI
Animation Animation
AI
![Page 8: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/8.jpg)
88
Operation Queue keeps data localized, and bandwidth down
•Keep the data in one place, but queue up operations on it• In a perfect world, reads are immediate, free, and consistent
QueueAI
Service
Animation
Physics
Render
![Page 9: Threading Successes of Popular PC Games and Engines Paul Lindberg and Brad Werth Intel Corporation GDC 2008](https://reader035.vdocument.in/reader035/viewer/2022072013/56649e615503460f94b5c58e/html5/thumbnails/9.jpg)
99
How are games today targeting multi-core?•Thread for performance
– Framerate– Load times– Easier path to smooth framerates, compared to time-slicing– Now very common
•Thread for features– Many possible CPU-intensive effects– Just starting to appear
•Use threaded middleware– Does whatever it does, and scales it out– Common, but how well do they work together?