Title 44pt Title Case Inside VR on Mobile · 2016-12-07 · Live demos of the techniques shown in...
Transcript of Title 44pt Title Case Inside VR on Mobile · 2016-12-07 · Live demos of the techniques shown in...
Title 44pt Title Case
Affiliations 24pt sentence case
20pt sentence case
Inside VR on Mobile
Sam Martin
GDC 2016
Graphics Architect
© ARM2016 2
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
VR Today
Emerging technology
Main mobile VR ecosystems
Google Cardboard
Samsung GearVR
In this talk:
Latency
Multiple views
Performance tuning
"Gartner Hype Cycle" by Jeremykemp at English Wikipedia. Licensed under CC BY-SA 3.0 via
Commons
© ARM 2016 3
Text 54pt Sentence Case Latency
© ARM2016 4
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Latency
“Motion to photons”
Target to be imperceptible: <20 ms
Achieved by GearVR and all tethered systems
GPUs are throughput processors
Usually ok to increase latency if it improves throughput…
Android can/may triple buffer
Graphics pipeline spread over multiple frames Display
GPU
© ARM2016 5
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Frame Pipelining
Geometry phases Pixel phases
Geometry phases Pixel phases
Geometry phases Pixel phases
Frame 0 Frame 1 Frame 2 Frame 3
Increases latency, but also increases throughput
Vertex work typically bandwidth bound – low ALU / load-store ratio
Overlapping with pixel work increases utilization
© ARM2016 6
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Recap of VR Pipeline
Rendering to eye buffer
Warped to display buffer
Lens magnification distortion
Chromatic aberration
Some redundant panel area
Eye buffer one of several sources
UI
Video
Eye buffer – 2048x1024
Display buffer – 2560x1440
© ARM2016 7
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Front Buffer Rendering
GearVR-specific extension
Remove swap buffers, write to display frontbuffer
Write to it “just in time”
Low-persistence OLED display panels
Panel only partial illuminated as scanned out
Low persistence minimises blurring/smearing
60Hz+ refresh rate
Display
GPU
© ARM2016 8
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
© ARM2016 9
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
© ARM2016 10
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
© ARM2016 11
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
© ARM2016 12
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
© ARM2016 13
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
© ARM2016 14
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
GPU write
Display read
© ARM2016 15
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
GPU write
Display read
© ARM2016 16
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Asynchronous Time Warp
High and regular priority contexts
Application - regular priority
Time warp - pre-emptive high priority
Decouples application and time warp rendering
Can’t account for changes in occlusion
Animation
Camera motion
Near-eye objects
© ARM 2016 17
Text 54pt Sentence Case Multiple Views
© ARM2016 18
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Multiple Views
Options
Submit everything twice
Geometry shaders
Multiview extensions: OVR_multiview, OVR_multiview2
Multiview
Coming soon…
Vertex shader: uint gl_ViewID_OVR
gl_Position-only unless OVR_multiview2
Mali supports both
Inset rendering: num_views can be > 2!
Disallows:
Transform feedback
Tessellation
Geometry shader
Timer queries
© ARM2016 19
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Mali Multiview Implementation
Roughly
1 x CPU submission cost
1-1.5 x Vertex cost
1 x Fragment cost
Saves CPU time on all implementations
Common vertex processing done once on Mali
Using view-dependent parameters will undo this
Will reduce power / save energy
May not affect performance unless vertex processing is a bottleneck
© ARM2016 20
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
http://malideveloper.arm.com/resources/sdks/mali-vr-sdk/
Sample code, documentation
Introduces the concepts of stereoscopic vision
Fundamentals, calibration, correcting lens effects
Multiview example
4x, 8x MSAA example
Mali VR SDK
© ARM 2016 21
Text 54pt Sentence Case Performance Tuning
© ARM2016 22
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Clock Locking
For stability
Also saves power… but not as much as reducing work!
Consider clocking as low as possible
Beware of over-loading the CPUs
Use multiple threads
Keep work off SCHED_FIFO if it’s not critical path
© ARM2016 23
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Bandwidth / Quality
Bandwidth is... …a consumer of power on high end systems …something an application can minimise
Geometry
Usual advice - cull / reduce density where acceptable
Vertex data - compact layout, interleave elements except position
Varyings/interpolants - also cost bandwidth reducing precision can help
Images ASTC - available on all OpenGL ES 3.0 devices shipping in volume
AFBC - automatic
4x MSAA - close to “free” on Mali, use it!
The trademarks featured in this presentation are registered and/or unregistered trademarks of ARM Limited (or its
subsidiaries) in the EU and/or elsewhere. All rights reserved. All other marks featured may be trademarks of their
respective owners.
Copyright © 2016 ARM Limited
Thank you!
[email protected] @palgorithm
Up next…
Implementing Stereo Reflections in VR with Unity
Roberto Lopez Mendez, ARM
© ARM 2016 25
Text 54pt Sentence Case
ARM Booth #1624 on Expo Floor: Live demos of the techniques shown in this session
In-depth Q&A with ARM engineers
More tech talks at the ARM Lecture Theatre
http://malideveloper.arm.com/gdc2016: Revisit this talk in PDF and video format post GDC
Download the tools and resources
To Find Out More….
© ARM2016 26
Title 40pt Title Case
Bullets 24pt sentence case
Sub-bullets 20pt sentence case
Vulkan on Mobile with Unreal Engine 4 Case Study Weds. 9:30am, West Hall 3022
Making Light Work of Dynamic Large Worlds Weds. 2pm, West Hall 2000
Achieving High Quality Mobile VR Games Thurs. 10am, West Hall 3022
Optimize Your Mobile Games With Practical Case Studies Thurs. 11:30am, West Hall 2404
An End-to-End Approach to Physically Based Rendering Fri. 10am, West Hall 2020
More Talks From ARM at GDC 2016 Available post-show at the Mali Developer Center: malideveloper.arm.com/