Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
2
Megacity on Mobile
How We Optimized It with Adaptive
Performance
David Berger, Software Developer at Unity Technologies
...
GenerativeArt—MadewithUnity
Samsung
GameSDK
Jungwoo Kim,
Principal Engineer, Samsung Electronics
Limitation in Mobile
4
Limitation in Mobile
5
149 mm2398 mm2119 mm2
PC Desktop
CPU
PC Desktop
GPU
Limitation in Mobile
6
— Peak GPU Performance
S6 S7 S8 S9S5
20182017201620152014
2006
Optimization
7
— New Technologies
Optimizing Games
8
Governor in UI Rendering
9
Touch Booster
Late	respond
à Perf	drop
Governor in Gaming
10
Late	respond
à Perf	drop
Over	react
à Heat	up
Governor in Gaming
11
Late	respond
à Perf	drop
Over	react
à Heat	up
Heat Management
12
— Thermal Throttling in Gaming
60 fps @ start
40 fps @ end
Heat Management
13
— Managing Target Performance helps sustainability of gaming experience
50 fps steady
GameSDK
14
— onHighTempWarning(int warningLevel)
WarningLevel 0 WarningLevel 1 WarningLevel 2
Throttling
GameSDK
15
— getTempLevel(), getCPU/GPUJTLevel(), getSkinTempLevel()
0
1
2
3
4
5
6
7
GameSDK
16
— getLevelWithScene(String scene, int cpuLevel, int gpuLevel)
CPU Freq
GPU Freq
Level 2
Level 1
GameSDK
17
New interface to exchange power and thermal hint
between game app and the device to manage gaming
performance b...
What Samsung is doing…
18
— Helping Developers with adoption of New Technologies
What Samsung is doing…
19
— Helping Developers with adoption of New Technologies
GPUWatch + GameSDK
What Samsung is doing…
20
— Helping Developers with adoption of New Technologies
Adaptive Performance
21
Adaptive Performance in Megacity
GenerativeArt—MadewithUnity
Adaptive Performance
Get device performance
status and thermal trends
Proactively adjust perfo...
Smoother Gameplay
25
8M
Triangles
6M
Entities
2K
Cars
30FPS - stable over time
26
27
30
15
200 Time [m]
Framerate
Adaptive Performance
28
— Start with Low CPU/GPU levels (Menu->Level)
– Increase levels for CPU or GPU bottleneck
respecti...
29
30
15
200 10
Time [m]
GenerativeArt—MadewithUnity
Adaptive Performance: How it works
1-Add the package
GenerativeArt—MadewithUnity
Adaptive Performance: How it works
2-Register to OnThermalEvent, Set initial target level
GenerativeArt—MadewithUnity
Adaptive Performance: How it works
3-Manage your quality settings when Thermal status changes
GenerativeArt—MadewithUnity
Adaptive Performance: How it works
4-You can subscribe to Performance bottleneck events
GenerativeArt—MadewithUnity
Adaptive Performance: How it works
4-You can subscribe to performance bottleneck events
GenerativeArt—MadewithUnity
Adaptive Performance Preview
available in the coming weeks
GenerativeArt—MadewithUnity
Roadmap
● Preview
○ 2019.1+
● Verified
○ 2019.3
● Future
○ 2019.3+
Megacity on mobile: How we optimized it with Adaptive Performance
Megacity on mobile: How we optimized it with Adaptive Performance
Megacity on mobile: How we optimized it with Adaptive Performance
Megacity on mobile: How we optimized it with Adaptive Performance
Upcoming SlideShare
Loading in …5
×

Megacity on mobile: How we optimized it with Adaptive Performance

2,678 views

Published on

Have you seen our Megacity demo? With 4.5M mesh renderers, 200K unique objects per building, 100K audio sources, and 5K dynamic vehicles, running it on mobile was a major challenge. Unity's David Berger reveals how the new Adaptive Performance feature, developed in partnership with Samsung, ensured a smoother mobile experience and greatly improved battery life.

Published in: Technology
  • Be the first to comment

Megacity on mobile: How we optimized it with Adaptive Performance

  1. 1. 2 Megacity on Mobile How We Optimized It with Adaptive Performance David Berger, Software Developer at Unity Technologies db@unity3d.com
  2. 2. GenerativeArt—MadewithUnity Samsung GameSDK Jungwoo Kim, Principal Engineer, Samsung Electronics
  3. 3. Limitation in Mobile 4
  4. 4. Limitation in Mobile 5 149 mm2398 mm2119 mm2 PC Desktop CPU PC Desktop GPU
  5. 5. Limitation in Mobile 6 — Peak GPU Performance S6 S7 S8 S9S5 20182017201620152014 2006
  6. 6. Optimization 7 — New Technologies
  7. 7. Optimizing Games 8
  8. 8. Governor in UI Rendering 9 Touch Booster Late respond à Perf drop
  9. 9. Governor in Gaming 10 Late respond à Perf drop Over react à Heat up
  10. 10. Governor in Gaming 11 Late respond à Perf drop Over react à Heat up
  11. 11. Heat Management 12 — Thermal Throttling in Gaming 60 fps @ start 40 fps @ end
  12. 12. Heat Management 13 — Managing Target Performance helps sustainability of gaming experience 50 fps steady
  13. 13. GameSDK 14 — onHighTempWarning(int warningLevel) WarningLevel 0 WarningLevel 1 WarningLevel 2 Throttling
  14. 14. GameSDK 15 — getTempLevel(), getCPU/GPUJTLevel(), getSkinTempLevel() 0 1 2 3 4 5 6 7
  15. 15. GameSDK 16 — getLevelWithScene(String scene, int cpuLevel, int gpuLevel) CPU Freq GPU Freq Level 2 Level 1
  16. 16. GameSDK 17 New interface to exchange power and thermal hint between game app and the device to manage gaming performance based on clear context is coming soon This will allow game developer to tune their games by more predictable and manageable manner Game App te
  17. 17. What Samsung is doing… 18 — Helping Developers with adoption of New Technologies
  18. 18. What Samsung is doing… 19 — Helping Developers with adoption of New Technologies GPUWatch + GameSDK
  19. 19. What Samsung is doing… 20 — Helping Developers with adoption of New Technologies Adaptive Performance
  20. 20. 21 Adaptive Performance in Megacity
  21. 21. GenerativeArt—MadewithUnity Adaptive Performance Get device performance status and thermal trends Proactively adjust performance and quality settings on the fly
  22. 22. Smoother Gameplay
  23. 23. 25 8M Triangles 6M Entities 2K Cars
  24. 24. 30FPS - stable over time 26
  25. 25. 27 30 15 200 Time [m] Framerate
  26. 26. Adaptive Performance 28 — Start with Low CPU/GPU levels (Menu->Level) – Increase levels for CPU or GPU bottleneck respectively – Keeps energy consumption low — Not hitting target frame rate – Decrease the LOD bias – Decreases GFX load (triangles, memory, draw calls) — Decrease target framerate when close to throttling
  27. 27. 29 30 15 200 10 Time [m]
  28. 28. GenerativeArt—MadewithUnity Adaptive Performance: How it works 1-Add the package
  29. 29. GenerativeArt—MadewithUnity Adaptive Performance: How it works 2-Register to OnThermalEvent, Set initial target level
  30. 30. GenerativeArt—MadewithUnity Adaptive Performance: How it works 3-Manage your quality settings when Thermal status changes
  31. 31. GenerativeArt—MadewithUnity Adaptive Performance: How it works 4-You can subscribe to Performance bottleneck events
  32. 32. GenerativeArt—MadewithUnity Adaptive Performance: How it works 4-You can subscribe to performance bottleneck events
  33. 33. GenerativeArt—MadewithUnity Adaptive Performance Preview available in the coming weeks
  34. 34. GenerativeArt—MadewithUnity Roadmap ● Preview ○ 2019.1+ ● Verified ○ 2019.3 ● Future ○ 2019.3+

×