threading successes 01 intro
TRANSCRIPT
![Page 1: Threading Successes 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/html5/thumbnails/1.jpg)
Threading Successes of Popular PC Games and
Engines
Paul Lindberg and Brad WerthIntel Corporation
GDC 2008
![Page 2: Threading Successes 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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 01 Intro](https://reader036.vdocuments.mx/reader036/viewer/2022082503/55b7ad3abb61eba5338b4604/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?