SlideShare a Scribd company logo
Get Multicore Differentiation and Great Integrated Graphics Performance
Campaign is turn-based
Battle is RTS
Get Multicore Differentiation and Great Integrated Graphics Performance
Game Tick thread is running ~10 fps
Main Thread and Render Thread are running in sync
Game Tick builds game state and passes it to main thread
Get Multicore Differentiation and Great Integrated Graphics Performance
Worker Threads
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
We calculate intersection with all the frustums at once
Intersection results are stored in a bitfield
We calculate the area of the projected bounding box and cull small models
Then we select the LOD level based on the
approximated average triangle size on screen
Then we select the LOD level based on the
approximated average triangle size on screen
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Next step is building instance data for the individual parts
Get Multicore Differentiation and Great Integrated Graphics Performance
Based on the mesh and instance data and the material
we figure out which parts of the pipeline the mesh needs to be rendered to.
Each pipeline stage uses the same instance data.
Every single mesh has a number of instance lists.
One instance list per pipeline stage.
The instance is added to all the relevant instance lists.
The instance lists are duplicated to every worker thread to ensure lockless access.
And double buffered because while the render thread
is rendering the current frame, the main thread (and workers)
Is adding instances to the next frame’s instance lists.
We have one mesh list per mesh type.
Every mesh with at least a single instance in the frame
will get added to exactly one mesh list matching its mesh type.
Just like the instance lists we have one mesh list for every single worker thread.
Double buffered too.
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
We start by processing the mesh lists
We run one task per mesh type
Per-thread mesh lists are combined to a single list of meshes
Per-thread mesh lists are combined to a single list of meshes
Then we process all the meshes in the list one by one
Each mesh has instance lists per pipeline stage
We start with the first pipeline stage and
combine the instances there into a single list
Then we process the instances
Then process all subsequent stages sequentially
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Instance data is now uploaded to the GPU and prepared for batching
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
The actual rendering follows the different pipeline stages
Each stage renders a selection of mesh types
The meshes are prepared by the render thread workers
We have to start by waiting for the preparation tasks to be finished
We have to start by waiting for the preparation tasks to be finished
The tasks process all meshes/instances for all pipeline stages
We can use an atomic counter per pipeline stage
No need to further split the tasks
We just increased the granularity of waiting for other sub-tasks
Usually everything is ready after the short initial wait
Usually everything is ready after the short initial wait
Usually everything is ready after the short initial wait
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
The basic building blocks of the system are emitters
Emitters are emitting a number of particles over time
Particles are often just sorted per emitter
Problems start happening when the emitters overlap
Problems start happening when the emitters overlap
We sort all the particles together
Get Multicore Differentiation and Great Integrated Graphics Performance
Emission takes place on the CPU
Sorting is responsible for moving dead particles to one end of the GPU buffer
This make uploading new particles trivial
Running out of particle space stomps over particles farthest from camera
(for Total War:THREE KINGDOMS)
We were confident that order-independent transparency is the solution
First try was WBOIT
Second try was MBOIT
Get Multicore Differentiation and Great Integrated Graphics Performance
TW:3K was released with MBOIT
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance
Get Multicore Differentiation and Great Integrated Graphics Performance

More Related Content

DOCX
READER/WRITER SOLUTION
PPTX
Reader Writer problem
PPTX
Reader/writer problem
PPTX
Ruby basics || updated
ODP
IEEE1588 - Collision avoidance for Delay_Req messages in broadcast media
PDF
Learning Python through Minecraft on the Raspberry Pi - Worksheets
PPTX
Thread presentation
READER/WRITER SOLUTION
Reader Writer problem
Reader/writer problem
Ruby basics || updated
IEEE1588 - Collision avoidance for Delay_Req messages in broadcast media
Learning Python through Minecraft on the Raspberry Pi - Worksheets
Thread presentation

Similar to Get Multicore Differentiation and Great Integrated Graphics Performance (20)

DOCX
1-Information sharing 2-Computation speedup3-Modularity4-.docx
DOCX
Programming Languages Implementation and Design. .docx
PPT
Introto netthreads-090906214344-phpapp01
PPTX
Operating System Assignment Help
DOCX
import java.io.BufferedReader;import java.io.BufferedWriter;.docx
PPT
Intro To .Net Threads
PPT
Operating System 4
PPT
Operating System 4 1193308760782240 2
PDF
M|18 Architectural Overview: MariaDB MaxScale
DOCX
Article link httpiveybusinessjournal.compublicationmanaging-.docx
PDF
Peer sim (p2p network)
PDF
Report_Ines_Swayam
PPT
Multithreading
PDF
[Java concurrency]01.thread management
PDF
TCP Sockets Tutor maXbox starter26
PPT
Threads Basic : Features, Types & Implementation
DOC
CHAP7.DOC.doc
DOC
CHAP7.DOC.doc
PPTX
Parallelizing Conqueror's Blade
PPTX
Peer Sim (P2P network)
1-Information sharing 2-Computation speedup3-Modularity4-.docx
Programming Languages Implementation and Design. .docx
Introto netthreads-090906214344-phpapp01
Operating System Assignment Help
import java.io.BufferedReader;import java.io.BufferedWriter;.docx
Intro To .Net Threads
Operating System 4
Operating System 4 1193308760782240 2
M|18 Architectural Overview: MariaDB MaxScale
Article link httpiveybusinessjournal.compublicationmanaging-.docx
Peer sim (p2p network)
Report_Ines_Swayam
Multithreading
[Java concurrency]01.thread management
TCP Sockets Tutor maXbox starter26
Threads Basic : Features, Types & Implementation
CHAP7.DOC.doc
CHAP7.DOC.doc
Parallelizing Conqueror's Blade
Peer Sim (P2P network)
Ad

More from Intel® Software (20)

PPTX
AI for All: Biology is eating the world & AI is eating Biology
PPTX
Python Data Science and Machine Learning at Scale with Intel and Anaconda
PDF
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
PDF
AI for good: Scaling AI in science, healthcare, and more.
PDF
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
PPTX
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
PPTX
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
PPTX
AWS & Intel Webinar Series - Accelerating AI Research
PPTX
Intel Developer Program
PDF
Intel AIDC Houston Summit - Overview Slides
PDF
AIDC NY: BODO AI Presentation - 09.19.2019
PDF
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
PDF
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
PDF
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
PDF
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
PDF
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
PDF
AIDC India - AI on IA
PDF
AIDC India - Intel Movidius / Open Vino Slides
PDF
AIDC India - AI Vision Slides
PDF
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
AI for All: Biology is eating the world & AI is eating Biology
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
AI for good: Scaling AI in science, healthcare, and more.
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
AWS & Intel Webinar Series - Accelerating AI Research
Intel Developer Program
Intel AIDC Houston Summit - Overview Slides
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
AIDC India - AI on IA
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - AI Vision Slides
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Ad

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Getting Started with Data Integration: FME Form 101
PPTX
A Presentation on Artificial Intelligence
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PPTX
Machine Learning_overview_presentation.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Mushroom cultivation and it's methods.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
August Patch Tuesday
Approach and Philosophy of On baking technology
Getting Started with Data Integration: FME Form 101
A Presentation on Artificial Intelligence
Digital-Transformation-Roadmap-for-Companies.pptx
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Heart disease approach using modified random forest and particle swarm optimi...
Machine Learning_overview_presentation.pptx
Unlocking AI with Model Context Protocol (MCP)
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation_ Review paper, used for researhc scholars
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Mushroom cultivation and it's methods.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Group 1 Presentation -Planning and Decision Making .pptx
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
A comparative analysis of optical character recognition models for extracting...
August Patch Tuesday

Get Multicore Differentiation and Great Integrated Graphics Performance