© Copyright Khronos Group 2015 - Page 1
Next Generation OpenGL Neil Trevett | Khronos President
NVIDIA VP Mobile Ecosystem | @neilt3d
© Copyright Khronos Group 2015 - Page 2
Khronos Connects Software to Silicon
Open Consortium creating
ROYALTY-FREE, OPEN STANDARD
APIs for hardware acceleration
Defining the roadmap for
low-level silicon interfaces
needed on every platform
Graphics, compute, rich media,
vision, sensor and camera
processing
Rigorous specifications AND
conformance tests for cross-
vendor portability
Acceleration APIs
BY the Industry
FOR the Industry
Well over a BILLION people use Khronos APIs
Every Day… http://accelerateyourworld.org/
© Copyright Khronos Group 2015 - Page 3
Khronos Standards
Visual Computing - 3D Graphics - Heterogeneous Parallel Computing
3D Asset Handling - 3D authoring asset interchange
- 3D asset transmission format with compression
Acceleration in HTML5 - 3D in browser – no Plug-in
- Heterogeneous computing for JavaScript
Over 100 companies defining royalty-free
APIs to connect software to silicon
Sensor Processing - Vision Acceleration - Camera Control - Sensor Fusion
© Copyright Khronos Group 2015 - Page 4
Access to 3D on Over 2 BILLION Devices
300M Desktops / year
Windows, Mac, Linux
1.9B Mobiles / year
1B Browsers / year
Source: Gartner (December 2013)
© Copyright Khronos Group 2015 - Page 5
OpenGL 3D API Family Tree
OpenGL ES 1.0
OpenGL ES 1.1 OpenGL ES 2.0 OpenGL ES 3.0
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
OpenGL 1.5 OpenGL 2.0
OpenGL 4.3
OpenGL 2.1
OpenGL 3.0
OpenGL 3.1
OpenGL 3.2
OpenGL 3.3
OpenGL 4.0
OpenGL 4.1
OpenGL 4.2
2002
OpenGL 1.3
OpenGL ES 2.0
Content OpenGL ES 1.1
Content
OpenGL ES 3.0
Content
ES3 is backward compatible
so new features can be
added incrementally Fixed function
3D Pipeline
Programmable vertex
and fragment shaders
WebGL 1.0
OpenGL 4.4 is a
superset of DX11
WebGL 2.0
OpenGL 4.4
2014
OpenGL ES 3.1
OpenGL 4.5
2015
© Copyright Khronos Group 2015 - Page 6
OpenGL ES and WebGL Roadmap
2003
1.0
2004
1.1
2007
2.0
2012
3.0
2014
3.1
Driver
Update
Silicon
Update
Silicon
Update
Driver
Update
Compute Shaders
32-bit integers and floats
NPOT, 3D/depth textures
Texture arrays
Multiple Render Targets
Programmable
Shaders Fixed function
Pipeline
2011
WebGL 2.0 - Open Review
http://www.khronos.org/registry/webgl/specs/latest/2.0/
WebGL 2.0 Under Development
WebGL 1.0
Spec at GDC March 2014
Standard in Android L
© Copyright Khronos Group 2015 - Page 7
OpenGL ES 3.1 Goals • Bring developer requested features from desktop OpenGL 4 to mobile
- Advanced features, modern programming styles
- Higher performance with lower overhead
• Headline features - Compute Shaders and Draw-Indirect
- Compute shaders can create geometry or other rendering data
- … and also the draw commands needed to render them
- Offload work from CPU to GPU – critical for mobile perf and power
• Run on OpenGL ES 3.0 hardware – expose hidden capabilities of shipping devices
- Enable very rapid adoption across the industry
• Better looking, faster performing apps!
© Copyright Khronos Group 2015 - Page 8
OpenGL ES 3.1 Adoption Momentum • Widespread industry participation to release specification in March 2014
- Tool and Game Engine Developers, GPU Designers, SoC Vendors
- Platform Owners, End Equipment Makers, Middleware ISVs
• Khronos launched the OpenGL ES 3.1 Adopters program in June 2014
- Broad set of conformance tests to ensure reliable cross-vendor operation
• Google announced that OpenGL ES 3.1 is standard in Android L
- At Google IO June 2014
• First wave of GPU vendors conformant in July 2014
- ARM, Imagination Technologies, Intel, NVIDIA, Qualcomm, Vivante
- http://www.khronos.org/conformance/adopters/conformant-products#opengles
© Copyright Khronos Group 2015 - Page 9
Google Android Extension Pack (AEP) • Set of extensions for OpenGL ES 3.1
- Accessible through a single query
- Functionality to support AAA games
• Functionality from desktop OpenGL
- Tessellation - Improves the detail of geometry rendered
- Geometry shaders - Add details and shadows
- ASTC Texture Compression - High quality texture compression
• Enables premium graphics effects
- Deferred rendering
- Physically-based shading
- High Dynamic Range tone mapping
- Global Illumination and reflection
- Smoke and particle effects
Epic’s Rivalry demo using full Unreal Engine 4
Running in real-time on NVIDIA Tegra K1 with OpenGL ES 3.1 + AEP
https://www.youtube.com/watch?v=jRr-G95GdaM
© Copyright Khronos Group 2015 - Page 10
Next Generation OpenGL Initiative
After twenty two years – the architecture of
GPUs and platforms has radically changed
Platform Diversity and
need for cross-platform
API standards increasing
• Ground up re-design of API for high-efficiency access to
graphics and compute on modern GPUs and platforms
• Design from first principles – even if means breaking
compatibility with traditional OpenGL
• An open-standard, cross-platform 3D+compute API
for the modern era
© Copyright Khronos Group 2015 - Page 11
Ground-up Explicit API Redesign
Traditional OpenGL Next Generation OpenGL
Originally architected for graphics workstations with direct renderers and split memory
Matches architecture of modern platforms including mobile platforms with unified memory, tiled rendering
Driver does lots of work: state validation, dependency tracking, error checking. Limits and randomizes performance
Explicit API – the application has direct, predictable control over the operation of the GPU
Threading model doesn’t enable generation of graphics commands in parallel to command execution
Multi-core friendly with multiple command queues that can be created in parallel
Syntax evolved over twenty years – complex API choices can obscure optimal performance path
Removing legacy requirements simplifies API design, reduces specification size and enables clear usage guidance
Shader language compiler built into driver. Only GLSL supported. Have to ship shader source
Standard Intermediate Language as compiler target simplifies driver and enables front-end language flexibility and reliability
Despite conformance testing developers must often handle implementation variability between vendors
Simpler API, common language front-ends, more rigorous testing increase cross vendor functional/performance portability
© Copyright Khronos Group 2015 - Page 12
Cross Platform Challenge
One family
of GPUs
One GPU on
one OS
One OS All Modern Platforms and GPUs Participation of key players
Proven IP Framework
Battle-tested cooperative model
The drive to not let the 3D industry fragment
© Copyright Khronos Group 2015 - Page 13
Portability
Cross-
vendor
Portability
Streamlined API is
easier to implement
and test
Standard intermediate
language improves shader
program portability and
reduces driver complexity
Enhanced
conformance
testing
methodology
WebGL 1.0.2 doubles conformance tests over 1.0.1
~21200 vs. ~8900
1.0.3 suite will contain ~20% more tests
Most contributed by open source community
© Copyright Khronos Group 2015 - Page 14
Status • Organized as a joint project of ARB and OpenGL ES working groups
- Likely to become standalone working group soon
- Working at very high intensity since June - Making rapid progress
- Very significant proposals and IP contributions received from members
• Participants come from all segments of the graphics industry
- Including an unprecedented level of participation from game engine ISVs
© Copyright Khronos Group 2015 - Page 15
Get Involved! • Khronos members are building the future of graphics processing
- Together with compute, vision and sensor processing
• Any company is welcome to join Khronos to have a voice in these developments!
- Well-defined IP framework protects your IP and conformant implementations
• www.khronos.org