Debug, Analyze and Optimize Games with Intel Tools

Matteo Valoriani
Matteo ValorianiChief Executive Officer at FifthIngenium | Speaker | MVP | Intel Innovator | HoloLens Expert à Fifth Ingenium s.r.l
Debug, Analyze and Optimize
Games with Intel Tools
Surviving the apocalypse on mainstream graphics
Matteo Valoriani, FifthIngenium CEO
Intel Software Innovator
Nice to Meet You
www.slideshare.net/MatteoValoriani
https://it.linkedin.com/in/matteovaloriani
http://fifthingenium.com/blog
https://github.com/mvaloriani
mvaloriani at gmail dot com
@MatteoValoriani
Matteo Valoriani
CEO of FifthIngenium
PhD at Politecnico of Milano
Speaker and Consultant
2
Agenda
3
• Introduction
• Intel® Graphics Performance
Analyzers .. What ?
• Intel® GPA Live Demo
• Optimizations
• Conclusion
4
PC Virtual Reality Mobile
6
Getting Started with
Intel® Graphics
Performance Analyzers
(Intel® GPA)
https://goo.gl/2cKmMa
Intel® Graphics Performance Analyzers 2017 R1
8
How to Get Started?
Download for FREE at https://software.intel.com/gpa/
• No Code Changes Needed
• No Environment Changes
• No IDE Necessary
9
Intel® GPA - Optimize Your Graphics Applications!
High–End
GPU
Mainstream
Graphics
10fps
5fps
60+
fps
5fps
30 fps
30+
fps
Intel® Graphics
Performance
Analyzers
Host OS
▪ Win 7, Win 8.1, Win 10 (64-
bit)
DirectX*
▪ DX 9, 9EX, 10.x, 11.0, 11.1, 12
Target Hardware
▪ Intel, NVidia* & AMD* GPUs
▪ Windows x86 Tablets
▪ HTC Vive*, Oculus Rift*
10
Optimize Windows*, Android*, and Ubuntu* Games!
Windows
Gaming
Android
Gaming
Host OS
▪ Windows, Ubuntu, Mac* OSX
OpenGL* ES
▪ 1.x, 2.x, 3.x
Target Hardware
▪ Intel Atom®
Android OS
▪ 4.x, 5.x, 6.x
Ubuntu
Gaming
Host OS
▪ Ubuntu 16.04
OpenGL
▪ 3.2, 3.3, 4.0, 4.1 (Core Profile)
Target Hardware
▪ Intel® HD Graphics 4k-6k
Target OS
▪ Ubuntu 16.04
11
Host/Target Architecture
Host System Target System
12
What’s Inside Intel® GPA?
System Analyzer / HUD
Graphics Frame
Analyzer
In-game analysis
Single frame analysisTimeline analysis
Graphics Monitor
Launch & config tool
Graphics Trace
Analyzer
13
How to Use Intel® GPA?
HUD / System Analyzer:
Frame Analyzer:
Trace Analyzer:
CPU Limited
GPU Limited
Capture Frame
Capture Trace
?Run with
Intel® GPA
In-Game Analysis Offline Analysis
14
Graphics Monitor
Launch & config tool
Define profiles & preferences
15
System Analyzer / HUD
In-game analysis
• Get metrics for CPU, GPU, graphics drivers, DirectX*,
OpenGL*, or OpenGL* ES
• Experiment with override modes that quickly isolate
common performance bottlenecks
• Capture frames and traces for further analysis
• Display up to 16 performance metrics
simultaneously
• Monitor the current, minimum, and maximum frame
rate
• Use without code modifications or special libraries
16
System Analyzer / HUD
Live Analysis
17
18
Graphics Frame Analyzer
In-game analysis
• Use the API log to identify visual errors by function and call
errors and warnings to graphics APIs
• Select a draw call and verify its contribution to the frame,
alpha channel, color, format, and depth buffers
• Quantify performance optimization opportunities with
render experiments per draw call
• Solve issues with shadowing, lighting, or color schemes by
locating misplaced objects
19
Graphics Frame Analyzer
Performance Analysis with Hardware Metrics
Evaluation Flow to find 3D hotspots
20
21
Published in the 6th generation graphics API dev guide :
https://software.intel.com/en-us/articles/6th-gen-graphics-api-dev-guide
22
23
Graphics Trace Analyzer
Single frame analysis
24
Optimizations
25
Script Frustum Culling and Co-routines
Use the following Monobehavior callbacks to cull scripts
outside of the camera frustum that do not need to
update when not in focus.
Monobehavior callbacks which trigger when object with
script leaves / enters the camera frustum
26
Script Frustum Culling and Co-routines (2)
Co-routines are essentially functions with the ability to
pause and resume execution.
The power of co-routines can be leveraged by
removing the original Update() function in your script
and replacing it with a co-routine.
You can then set how often you would like your co-
routine to execute using the yield command.
27
Memory Management Optimization
A great way to get an overview of how you are managing memory is to check the ‘GC
Alloc’ section of the Overview window in Unity Profiler and step through your frames until
you see a significant allocation.
• To avoid frequent allocations, it is advantageous to use structs instead of classes to
have allocations be done on the stack, instead of in the heap.
• Multiple allocations to the heap can lead to significant memory fragmentation and
frequent garbage collections.
28
Occlusion Culling
Occlusion culling is a feature available in Unity that enables you to cull out objects that
are occluded by other objects with respect to the camera.
29
Occlusion Culling
1. Go through your entire scene to multi-select
any objects that should be included in
occlusion culling calculations and mark them
as “Occluder Static” and “Occludee Static”.
2. When setting up your occlusion culling system,
set your occlusion areas carefully.By default,
Unity uses the entire scene as the occlusion
area, which can lead to frivolous computation.
3. To make sure that the entire scene isn’t used,
create an occlusion area manually and
surround only the area to be included in the
calculation.
30
LOD
Level of Detail (LOD) allows multiple meshes to attach to a game object and provides the
ability to switch between meshes the object uses based on camera distance. The LOD can
automatically simplify the mesh to compensate.
LOD L0 L1 L2
fps 160 180 220
31
Terrain Optimization
• Sampler limited
• No dynamic branching
• Optimized for Legacy HW where sampling was faster than computing LODs
• Implementation of dynamic branching increased perf by 2x ( 3ms -> 1.5ms)
• Using samplegrad for dynamic LOD selection
Conclusion
32
33
Conclusion
With the right tools :
and the right methodology, finding performance bottlenecks is easy !
Questions ?
34
References
https://software.intel.com/gpa/
https://software.intel.com/en-us/articles/6th-gen-graphics-api-dev-guide
https://software.intel.com/en-us/articles/how-to-plan-optimizations-with-unity
https://software.intel.com/en-us/android/articles/unity-optimization-guide-for-x86-android-part-2
https://software.intel.com/en-us/android/articles/unity-optimization-guide-for-x86-android-part-3
https://software.intel.com/en-us/android/articles/unity-optimization-guide-for-x86-android-part-4
https://x-team.com/blog/unity-3d-optimisation-and-best-practices-part-1/
http://docs.unity3d.com/Manual/class-OcclusionArea.html
Legal Notices and Disclaimers
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well
as any warranty arising from course of performance, course of dealing, or usage in trade.
You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel
a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein.
The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are
available on request.
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on
system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com].
Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark,
are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should
consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other
products. For more complete information visit www.intel.com/benchmarks.
Optimization Notice: Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors.
These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any
optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain
optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information
regarding the specific instruction sets covered by this notice.
Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your
system hardware, software or configuration may affect your actual performance.
Intel, Atom and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
*Other names and brands may be claimed as the property of others
© Intel Corporation.
36
Debug, Analyze and Optimize Games with Intel Tools
1 sur 37

Recommandé

Intel Graphics Performance Analyzers (Intel GPA) par
Intel Graphics Performance Analyzers (Intel GPA)Intel Graphics Performance Analyzers (Intel GPA)
Intel Graphics Performance Analyzers (Intel GPA)Intel® Software
3.5K vues28 diapositives
So You Want to Build a Snowman…But it is Summer par
So You Want to Build a Snowman…But it is SummerSo You Want to Build a Snowman…But it is Summer
So You Want to Build a Snowman…But it is SummerIntel® Software
2.3K vues44 diapositives
Make your unity game faster, faster par
Make your unity game faster, fasterMake your unity game faster, faster
Make your unity game faster, fasterIntel® Software
1.1K vues30 diapositives
Intel® Graphics Performance Analyzers par
Intel® Graphics Performance AnalyzersIntel® Graphics Performance Analyzers
Intel® Graphics Performance AnalyzersIntel® Software
5K vues39 diapositives
Real-Time Game Optimization with Intel® GPA par
Real-Time Game Optimization with Intel® GPAReal-Time Game Optimization with Intel® GPA
Real-Time Game Optimization with Intel® GPAIntel® Software
929 vues33 diapositives
Optimization Deep Dive: Unreal Engine 4 on Intel par
Optimization Deep Dive: Unreal Engine 4 on IntelOptimization Deep Dive: Unreal Engine 4 on Intel
Optimization Deep Dive: Unreal Engine 4 on IntelIntel® Software
2.9K vues26 diapositives

Contenu connexe

Tendances

More explosions, more chaos, and definitely more blowing stuff up par
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff upIntel® Software
1.8K vues64 diapositives
Real-Time Game Optimization with Intel® GPA par
Real-Time Game Optimization with Intel® GPAReal-Time Game Optimization with Intel® GPA
Real-Time Game Optimization with Intel® GPAIntel® Software
2K vues20 diapositives
Bringing the Real World Into the Game World par
Bringing the Real World Into the Game WorldBringing the Real World Into the Game World
Bringing the Real World Into the Game WorldIntel® Software
2.6K vues38 diapositives
Unity Optimization Tips, Tricks and Tools par
Unity Optimization Tips, Tricks and ToolsUnity Optimization Tips, Tricks and Tools
Unity Optimization Tips, Tricks and ToolsIntel® Software
2.6K vues50 diapositives
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ... par
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Intel® Software
1.3K vues59 diapositives
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De... par
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...Intel® Software
2.1K vues52 diapositives

Tendances(20)

More explosions, more chaos, and definitely more blowing stuff up par Intel® Software
More explosions, more chaos, and definitely more blowing stuff upMore explosions, more chaos, and definitely more blowing stuff up
More explosions, more chaos, and definitely more blowing stuff up
Intel® Software1.8K vues
Real-Time Game Optimization with Intel® GPA par Intel® Software
Real-Time Game Optimization with Intel® GPAReal-Time Game Optimization with Intel® GPA
Real-Time Game Optimization with Intel® GPA
Bringing the Real World Into the Game World par Intel® Software
Bringing the Real World Into the Game WorldBringing the Real World Into the Game World
Bringing the Real World Into the Game World
Intel® Software2.6K vues
Unity Optimization Tips, Tricks and Tools par Intel® Software
Unity Optimization Tips, Tricks and ToolsUnity Optimization Tips, Tricks and Tools
Unity Optimization Tips, Tricks and Tools
Intel® Software2.6K vues
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ... par Intel® Software
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Intel® Software1.3K vues
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De... par Intel® Software
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Intel® Software2.1K vues
The Architecture of 11th Generation Intel® Processor Graphics par Intel® Software
The Architecture of 11th Generation Intel® Processor GraphicsThe Architecture of 11th Generation Intel® Processor Graphics
The Architecture of 11th Generation Intel® Processor Graphics
Intel® Software12K vues
Streamed Cloud Gaming Solutions for Android* and PC Games par Intel® Software
Streamed Cloud Gaming Solutions for Android* and PC GamesStreamed Cloud Gaming Solutions for Android* and PC Games
Streamed Cloud Gaming Solutions for Android* and PC Games
Intel® Software5.8K vues
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration par Intel® Software
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning AccelerationclCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
Intel® Software3.8K vues
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S... par Intel® Software
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...
Embree Ray Tracing Kernels | Overview and New Features | SIGGRAPH 2018 Tech S...
Intel® Software4.1K vues
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ... par Intel® Software
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Intel® Software1.2K vues
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha... par BeMyApp
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
[Android Codefest Germany] Adding x86 target to your Android app by Xavier Ha...
BeMyApp2.7K vues
Create a Scalable and Destructible World in HITMAN 2* par Intel® Software
Create a Scalable and Destructible World in HITMAN 2*Create a Scalable and Destructible World in HITMAN 2*
Create a Scalable and Destructible World in HITMAN 2*
Intel® Software5.9K vues
GPU Virtualization in SUSE par Liang Yan
GPU Virtualization in SUSEGPU Virtualization in SUSE
GPU Virtualization in SUSE
Liang Yan3.7K vues
GS-4093, "AstoundSound for Gaming – The next dimension in the evolution of Au... par AMD Developer Central
GS-4093, "AstoundSound for Gaming – The next dimension in the evolution of Au...GS-4093, "AstoundSound for Gaming – The next dimension in the evolution of Au...
GS-4093, "AstoundSound for Gaming – The next dimension in the evolution of Au...
Snapdragon 845 Benchmarking UX Workshop par Low Hong Chuan
Snapdragon 845 Benchmarking UX WorkshopSnapdragon 845 Benchmarking UX Workshop
Snapdragon 845 Benchmarking UX Workshop
Low Hong Chuan24.9K vues
It Doesn't Have to Be Hard: How to Fix Your Performance Woes par Intel® Software
It Doesn't Have to Be Hard: How to Fix Your Performance WoesIt Doesn't Have to Be Hard: How to Fix Your Performance Woes
It Doesn't Have to Be Hard: How to Fix Your Performance Woes
Intel® Software5.5K vues

Similaire à Debug, Analyze and Optimize Games with Intel Tools

Getting Space Pirate Trainer* to Perform on Intel® Graphics par
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsIntel® Software
1.4K vues46 diapositives
Forts and Fights Scaling Performance on Unreal Engine* par
Forts and Fights Scaling Performance on Unreal Engine*Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*Intel® Software
2.7K vues30 diapositives
Design and Optimize your code for high-performance with Intel® Advisor and I... par
Design and Optimize your code for high-performance with Intel®  Advisor and I...Design and Optimize your code for high-performance with Intel®  Advisor and I...
Design and Optimize your code for high-performance with Intel® Advisor and I...Tyrone Systems
208 vues30 diapositives
Leveraging Artificial Intelligence Processing on Edge Devices par
Leveraging Artificial Intelligence Processing on Edge DevicesLeveraging Artificial Intelligence Processing on Edge Devices
Leveraging Artificial Intelligence Processing on Edge DevicesICS
949 vues35 diapositives
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET" par
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"LogeekNightUkraine
152 vues70 diapositives
Tales from the Optimization Trenches - Unite Copenhagen 2019 par
Tales from the Optimization Trenches - Unite Copenhagen 2019Tales from the Optimization Trenches - Unite Copenhagen 2019
Tales from the Optimization Trenches - Unite Copenhagen 2019Unity Technologies
1.3K vues93 diapositives

Similaire à Debug, Analyze and Optimize Games with Intel Tools (20)

Getting Space Pirate Trainer* to Perform on Intel® Graphics par Intel® Software
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Intel® Software1.4K vues
Forts and Fights Scaling Performance on Unreal Engine* par Intel® Software
Forts and Fights Scaling Performance on Unreal Engine*Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*
Intel® Software2.7K vues
Design and Optimize your code for high-performance with Intel® Advisor and I... par Tyrone Systems
Design and Optimize your code for high-performance with Intel®  Advisor and I...Design and Optimize your code for high-performance with Intel®  Advisor and I...
Design and Optimize your code for high-performance with Intel® Advisor and I...
Tyrone Systems208 vues
Leveraging Artificial Intelligence Processing on Edge Devices par ICS
Leveraging Artificial Intelligence Processing on Edge DevicesLeveraging Artificial Intelligence Processing on Edge Devices
Leveraging Artificial Intelligence Processing on Edge Devices
ICS949 vues
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET" par LogeekNightUkraine
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
Tales from the Optimization Trenches - Unite Copenhagen 2019 par Unity Technologies
Tales from the Optimization Trenches - Unite Copenhagen 2019Tales from the Optimization Trenches - Unite Copenhagen 2019
Tales from the Optimization Trenches - Unite Copenhagen 2019
Unity Technologies1.3K vues
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap... par Applitools
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Applitools1.7K vues
Intel® Xeon® Processor E7-8800/4800 v4 EAMG 2.0 par Intel IT Center
Intel® Xeon® Processor E7-8800/4800 v4 EAMG 2.0Intel® Xeon® Processor E7-8800/4800 v4 EAMG 2.0
Intel® Xeon® Processor E7-8800/4800 v4 EAMG 2.0
Intel IT Center9.2K vues
Desirable software features simulation & modeling par Shashwat Shriparv
Desirable software features simulation & modelingDesirable software features simulation & modeling
Desirable software features simulation & modeling
Shashwat Shriparv6.8K vues
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ... par Intel® Software
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative... par Kevin Goldsmith
GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative...GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative...
GPGPU in Commercial Software: Lessons From Three Cycles of the Adobe Creative...
Kevin Goldsmith4K vues
Accelerating AI Adoption with Partners par Sri Ambati
Accelerating AI Adoption with PartnersAccelerating AI Adoption with Partners
Accelerating AI Adoption with Partners
Sri Ambati873 vues
Accelerating AI from the Cloud to the Edge par Intel® Software
Accelerating AI from the Cloud to the EdgeAccelerating AI from the Cloud to the Edge
Accelerating AI from the Cloud to the Edge
Intel® Software5.5K vues
Agentless System Crawler - InterConnect 2016 par Canturk Isci
Agentless System Crawler - InterConnect 2016Agentless System Crawler - InterConnect 2016
Agentless System Crawler - InterConnect 2016
Canturk Isci1K vues
Briforum2013 applicationpackagingsmackdown public par Kevin Kaminski
Briforum2013 applicationpackagingsmackdown publicBriforum2013 applicationpackagingsmackdown public
Briforum2013 applicationpackagingsmackdown public
Kevin Kaminski908 vues
The Architecture of Intel Processor Graphics: Gen 11 par DESMOND YUEN
The Architecture of Intel Processor Graphics: Gen 11The Architecture of Intel Processor Graphics: Gen 11
The Architecture of Intel Processor Graphics: Gen 11
DESMOND YUEN800 vues

Plus de Matteo Valoriani

Immerge yourself in a new Reality par
Immerge yourself in a new RealityImmerge yourself in a new Reality
Immerge yourself in a new RealityMatteo Valoriani
468 vues62 diapositives
How Augment your Reality: Different perspective on the Reality / Virtuality C... par
How Augment your Reality: Different perspective on the Reality / Virtuality C...How Augment your Reality: Different perspective on the Reality / Virtuality C...
How Augment your Reality: Different perspective on the Reality / Virtuality C...Matteo Valoriani
323 vues69 diapositives
Hour ofcode par
Hour ofcodeHour ofcode
Hour ofcodeMatteo Valoriani
187 vues13 diapositives
More Personal Computing: Windows 10, Kinect and Wearables par
More Personal Computing: Windows 10, Kinect and WearablesMore Personal Computing: Windows 10, Kinect and Wearables
More Personal Computing: Windows 10, Kinect and WearablesMatteo Valoriani
176 vues40 diapositives
Introduction to development par
Introduction to developmentIntroduction to development
Introduction to developmentMatteo Valoriani
928 vues57 diapositives
Etna dev 2016 - Deep Dive Holographic Applications par
Etna dev 2016 - Deep Dive Holographic ApplicationsEtna dev 2016 - Deep Dive Holographic Applications
Etna dev 2016 - Deep Dive Holographic ApplicationsMatteo Valoriani
221 vues34 diapositives

Plus de Matteo Valoriani(20)

How Augment your Reality: Different perspective on the Reality / Virtuality C... par Matteo Valoriani
How Augment your Reality: Different perspective on the Reality / Virtuality C...How Augment your Reality: Different perspective on the Reality / Virtuality C...
How Augment your Reality: Different perspective on the Reality / Virtuality C...
Matteo Valoriani323 vues
More Personal Computing: Windows 10, Kinect and Wearables par Matteo Valoriani
More Personal Computing: Windows 10, Kinect and WearablesMore Personal Computing: Windows 10, Kinect and Wearables
More Personal Computing: Windows 10, Kinect and Wearables
Matteo Valoriani176 vues
Etna dev 2016 - Deep Dive Holographic Applications par Matteo Valoriani
Etna dev 2016 - Deep Dive Holographic ApplicationsEtna dev 2016 - Deep Dive Holographic Applications
Etna dev 2016 - Deep Dive Holographic Applications
Matteo Valoriani221 vues
Etna dev 2016 - Introduction to Holographic Development par Matteo Valoriani
Etna dev 2016 - Introduction to Holographic DevelopmentEtna dev 2016 - Introduction to Holographic Development
Etna dev 2016 - Introduction to Holographic Development
Matteo Valoriani169 vues
Etna dev 2016 - Introduction to Mixed Reality with HoloLens par Matteo Valoriani
Etna dev 2016 - Introduction to Mixed Reality with HoloLensEtna dev 2016 - Introduction to Mixed Reality with HoloLens
Etna dev 2016 - Introduction to Mixed Reality with HoloLens
Matteo Valoriani1.2K vues
Develop store apps with kinect for windows v2 par Matteo Valoriani
Develop store apps with kinect for windows v2Develop store apps with kinect for windows v2
Develop store apps with kinect for windows v2
Tecnologie e Startup: ICT è solo una commodity? par Matteo Valoriani
Tecnologie e Startup: ICT è solo una commodity? Tecnologie e Startup: ICT è solo una commodity?
Tecnologie e Startup: ICT è solo una commodity?
Matteo Valoriani538 vues

Dernier

1st parposal presentation.pptx par
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptxi238212
9 vues3 diapositives
Transcript: The Details of Description Techniques tips and tangents on altern... par
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...BookNet Canada
130 vues15 diapositives
Vertical User Stories par
Vertical User StoriesVertical User Stories
Vertical User StoriesMoisés Armani Ramírez
11 vues16 diapositives
20231123_Camunda Meetup Vienna.pdf par
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
28 vues73 diapositives
Igniting Next Level Productivity with AI-Infused Data Integration Workflows par
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
225 vues86 diapositives
Attacking IoT Devices from a Web Perspective - Linux Day par
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day Simone Onofri
15 vues68 diapositives

Dernier(20)

1st parposal presentation.pptx par i238212
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptx
i2382129 vues
Transcript: The Details of Description Techniques tips and tangents on altern... par BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada130 vues
Igniting Next Level Productivity with AI-Infused Data Integration Workflows par Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software225 vues
Attacking IoT Devices from a Web Perspective - Linux Day par Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri15 vues
DALI Basics Course 2023 par Ivory Egg
DALI Basics Course  2023DALI Basics Course  2023
DALI Basics Course 2023
Ivory Egg14 vues
6g - REPORT.pdf par Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex9 vues
Piloting & Scaling Successfully With Microsoft Viva par Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors par sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab15 vues
HTTP headers that make your website go faster - devs.gent November 2023 par Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn19 vues
STPI OctaNE CoE Brochure.pdf par madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb12 vues
From chaos to control: Managing migrations and Microsoft 365 with ShareGate! par sammart93
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
sammart939 vues

Debug, Analyze and Optimize Games with Intel Tools

  • 1. Debug, Analyze and Optimize Games with Intel Tools Surviving the apocalypse on mainstream graphics Matteo Valoriani, FifthIngenium CEO Intel Software Innovator
  • 2. Nice to Meet You www.slideshare.net/MatteoValoriani https://it.linkedin.com/in/matteovaloriani http://fifthingenium.com/blog https://github.com/mvaloriani mvaloriani at gmail dot com @MatteoValoriani Matteo Valoriani CEO of FifthIngenium PhD at Politecnico of Milano Speaker and Consultant 2
  • 3. Agenda 3 • Introduction • Intel® Graphics Performance Analyzers .. What ? • Intel® GPA Live Demo • Optimizations • Conclusion
  • 4. 4
  • 6. 6 Getting Started with Intel® Graphics Performance Analyzers (Intel® GPA) https://goo.gl/2cKmMa
  • 7. Intel® Graphics Performance Analyzers 2017 R1
  • 8. 8 How to Get Started? Download for FREE at https://software.intel.com/gpa/ • No Code Changes Needed • No Environment Changes • No IDE Necessary
  • 9. 9 Intel® GPA - Optimize Your Graphics Applications! High–End GPU Mainstream Graphics 10fps 5fps 60+ fps 5fps 30 fps 30+ fps Intel® Graphics Performance Analyzers
  • 10. Host OS ▪ Win 7, Win 8.1, Win 10 (64- bit) DirectX* ▪ DX 9, 9EX, 10.x, 11.0, 11.1, 12 Target Hardware ▪ Intel, NVidia* & AMD* GPUs ▪ Windows x86 Tablets ▪ HTC Vive*, Oculus Rift* 10 Optimize Windows*, Android*, and Ubuntu* Games! Windows Gaming Android Gaming Host OS ▪ Windows, Ubuntu, Mac* OSX OpenGL* ES ▪ 1.x, 2.x, 3.x Target Hardware ▪ Intel Atom® Android OS ▪ 4.x, 5.x, 6.x Ubuntu Gaming Host OS ▪ Ubuntu 16.04 OpenGL ▪ 3.2, 3.3, 4.0, 4.1 (Core Profile) Target Hardware ▪ Intel® HD Graphics 4k-6k Target OS ▪ Ubuntu 16.04
  • 12. 12 What’s Inside Intel® GPA? System Analyzer / HUD Graphics Frame Analyzer In-game analysis Single frame analysisTimeline analysis Graphics Monitor Launch & config tool Graphics Trace Analyzer
  • 13. 13 How to Use Intel® GPA? HUD / System Analyzer: Frame Analyzer: Trace Analyzer: CPU Limited GPU Limited Capture Frame Capture Trace ?Run with Intel® GPA In-Game Analysis Offline Analysis
  • 14. 14 Graphics Monitor Launch & config tool Define profiles & preferences
  • 15. 15 System Analyzer / HUD In-game analysis • Get metrics for CPU, GPU, graphics drivers, DirectX*, OpenGL*, or OpenGL* ES • Experiment with override modes that quickly isolate common performance bottlenecks • Capture frames and traces for further analysis • Display up to 16 performance metrics simultaneously • Monitor the current, minimum, and maximum frame rate • Use without code modifications or special libraries
  • 18. 18 Graphics Frame Analyzer In-game analysis • Use the API log to identify visual errors by function and call errors and warnings to graphics APIs • Select a draw call and verify its contribution to the frame, alpha channel, color, format, and depth buffers • Quantify performance optimization opportunities with render experiments per draw call • Solve issues with shadowing, lighting, or color schemes by locating misplaced objects
  • 20. Performance Analysis with Hardware Metrics Evaluation Flow to find 3D hotspots 20
  • 21. 21 Published in the 6th generation graphics API dev guide : https://software.intel.com/en-us/articles/6th-gen-graphics-api-dev-guide
  • 22. 22
  • 25. 25 Script Frustum Culling and Co-routines Use the following Monobehavior callbacks to cull scripts outside of the camera frustum that do not need to update when not in focus. Monobehavior callbacks which trigger when object with script leaves / enters the camera frustum
  • 26. 26 Script Frustum Culling and Co-routines (2) Co-routines are essentially functions with the ability to pause and resume execution. The power of co-routines can be leveraged by removing the original Update() function in your script and replacing it with a co-routine. You can then set how often you would like your co- routine to execute using the yield command.
  • 27. 27 Memory Management Optimization A great way to get an overview of how you are managing memory is to check the ‘GC Alloc’ section of the Overview window in Unity Profiler and step through your frames until you see a significant allocation. • To avoid frequent allocations, it is advantageous to use structs instead of classes to have allocations be done on the stack, instead of in the heap. • Multiple allocations to the heap can lead to significant memory fragmentation and frequent garbage collections.
  • 28. 28 Occlusion Culling Occlusion culling is a feature available in Unity that enables you to cull out objects that are occluded by other objects with respect to the camera.
  • 29. 29 Occlusion Culling 1. Go through your entire scene to multi-select any objects that should be included in occlusion culling calculations and mark them as “Occluder Static” and “Occludee Static”. 2. When setting up your occlusion culling system, set your occlusion areas carefully.By default, Unity uses the entire scene as the occlusion area, which can lead to frivolous computation. 3. To make sure that the entire scene isn’t used, create an occlusion area manually and surround only the area to be included in the calculation.
  • 30. 30 LOD Level of Detail (LOD) allows multiple meshes to attach to a game object and provides the ability to switch between meshes the object uses based on camera distance. The LOD can automatically simplify the mesh to compensate. LOD L0 L1 L2 fps 160 180 220
  • 31. 31 Terrain Optimization • Sampler limited • No dynamic branching • Optimized for Legacy HW where sampling was faster than computing LODs • Implementation of dynamic branching increased perf by 2x ( 3ms -> 1.5ms) • Using samplegrad for dynamic LOD selection
  • 33. 33 Conclusion With the right tools : and the right methodology, finding performance bottlenecks is easy !
  • 36. Legal Notices and Disclaimers No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade. You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein. The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are available on request. Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com]. Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more complete information visit www.intel.com/benchmarks. Optimization Notice: Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your system hardware, software or configuration may affect your actual performance. Intel, Atom and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others © Intel Corporation. 36