Open Standards for Today's Gaming Industry
Total Page:16
File Type:pdf, Size:1020Kb
Open Standards for Today’s Gaming Industry Erik Noreke VP of Business Development, Khronos Group © Copyright Khronos Group 2013 - Page 1 The Topics for this Afternoon • Why do we need open standards for gaming and animation? - What makes successful standards? • Graphics Acceleration Standards - Khronos acceleration API standards for low power and high performance gaming and animation • Bringing accelerated graphics into the Browser - WebGL – revolutionary access to the GPU in standard browsers • 3D Content Standards - How to make content re-usable without stifling innovation © Copyright Khronos Group 2013 - Page 2 Why Do We Need Standards? • Standards are interoperability interfaces so that compelling user experiences can be created inexpensively to build mass markets - Don’t slow growth with functionality fragmentation that adds no value • E.g. Wireless and IO standards - GSM/EDGE, UMTS/HSPA, LTE, IEEE 802.11, Bluetooth, USB … Standards drive mobile market growth by expanding device capabilities © Copyright Khronos Group 2013 - Page 3 Standards in the Real World Right time to Standardize? Vendor differences adding no value - Darwinian industry is still fragmentation is slowing growth – clear experimenting with what works goals emerge for a standard and what doesn’t REFINE BY COMMITTEE DESIGN BY COMMITTEE Industry agrees on what to standardize Experimentation and design by – cooperative refinement from multiple committee can be viewpoints creates a robust solution slow and unfocused A good standard enables A bad standard stifles innovation implementation innovation and causes commoditization Every successful open standard has a de facto proprietary competitor and is open to competitive evolution Ecosystems seem to work best when both are healthy and evolving © Copyright Khronos Group 2013 - Page 4 Busting Some Standardization Myths • “Standards are slow to develop” - Time to productive ecosystems is the key … … rather than minimizing time to a proprietary specification - OpenCL 1.0 took just 6 months – intensive cooperation • “If I particpate in standards I ‘lose’ my IP” - Good IP Framework fully protects Members IP and the specification - Members agree not to assert IP claims against other Members or Adopters - License grant is VERY narrow – but protects the specification in practice • “Standards are boring” - A good standard is the industry coming together to solve real issues © Copyright Khronos Group 2013 - Page 5 Khronos Connects Software to Silicon ROYALTY-FREE, OPEN STANDARD APIs for advanced hardware acceleration Low level silicon to software interfaces needed on every platform Graphics, video, audio, compute, vision, sensor and camera processing Defines the forward looking roadmap for the silicon community Shipping on billions of devices across multiple operating systems Rigorous conformance tests for cross-vendor consistency Khronos is OPEN for any company to join and participate Acceleration APIs BY the Industry FOR the Industry © Copyright Khronos Group 2013 - Page 6 Courtesy of PC Gaming Alliance www.pcgamingalliance.org © Copyright Khronos Group 2013 - Page 7 OpenCL – Heterogeneous Computing • Native framework for programming diverse parallel computing resources OpenCL KernelOpenCL CodeKernel OpenCL - CPU, GPU, DSP – as well as hardware blocks(!) CodeKernel OpenCL CodeKernel • Powerful, low-level flexibility Code - Foundational access to compute resources for GPU higher-level engines, frameworks and languages DSP CPU CPU • Embedded profile HW - No need for a separate “ES” spec - Reduces precision requirements One code tree can be executed on CPUs, GPUs, DSPs and hardware. Dynamically interrogate system load A cross-platform, cross-vendor standard for and load balance work across harnessing all the compute resources in an SOC available processors © Copyright Khronos Group 2013 - Page 8 OpenCL Overview • C Platform Layer API - Query, select and initialize compute devices • Kernel Language Specification - Subset of ISO C99 with language extensions - Well-defined numerical accuracy - IEEE 754 rounding with specified max error - Rich set of built-in functions: cross, dot, sin, cos, pow, log … • C Runtime API - Runtime or build-time compilation of kernels - Execute compute kernels across multiple devices • Memory management is explicit - Application must move data from host global local and back - Implementations can optimize data movement in unified memory systems © Copyright Khronos Group 2013 - Page 9 OpenCL Roadmap OpenCL HLM (High Level Model) High-level programming model, unifying host and device execution environments through language syntax for increased usability and broader optimization opportunities OpenCL 2.0 Provisional released! OpenCL 2.0 Significant enhancements to memory and execution models to expose emerging hardware capabilities and provide increased flexibility, functionality and performance to developers OpenCL SPIR 1.2 Provisional released! OpenCL SPIR (Standard Parallel Intermediate Representation) LLVM-based, low-level Intermediate Representation for IP Protection and as target back-end for alternative high-level languages © Copyright Khronos Group 2013 - Page 10 Mobile OpenCL Shipping • Android ICD extension released in latest extension specification - OpenCL implementations can be discovered and loaded as a shared object • Multiple implementations shipping in Android NDK - ARM, Imagination, Vivante, Qualcomm, Samsung … © Copyright Khronos Group 2013 - Page 11 OpenGL 3D API Family Tree ES3 is backward compatible Fixed function Programmable vertex so new features can be 3D Pipeline and fragment shaders added incrementally OpenGL ES 1.1 OpenGL ES 2.0 OpenGL ES 3.0 Content Content Content Mobile 3D WebGL 1.0 WebGL-Next OpenGL ES 1.1 OpenGL ES 2.0 OpenGL ES 3.0 ES-Next OpenGL ES 1.0 OpenGL 1.3 OpenGL 1.5 OpenGL 2.0 OpenGL 2.1 OpenGL 3.1 OpenGL 3.3 OpenGL 4.2 OpenGL 4.3 OpenGL 4.4 GL-Next OpenGL 3.0 OpenGL 3.2 OpenGL 4.0 OpenGL 4.1 OpenGL 4.4 is a Desktop 3D superset of DX11 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 © Copyright Khronos Group 2013 - Page 12 OpenGL ES 3.0 Highlights • Better looking, faster performing games and apps – at lower power - Incorporates proven features from OpenGL 3.3 / 4.x - 32-bit integers and floats in shader programs - NPOT, 3D textures, depth textures, texture arrays - Multiple Render Targets for deferred rendering, Occlusion Queries - Instanced Rendering, Transform Feedback … • Make life better for the programmer - Tighter requirements for supported features to reduce implementation variability • Backward compatible with OpenGL ES 2.0 - OpenGL ES 2.0 apps continue to run unmodified • Standardized Texture Compression - #1 developer request! © Copyright Khronos Group 2013 - Page 13 Accelerating OpenGL Innovation Bringing state-of-the- art functionality to cross-platform OpenGL 4.4 graphics OpenGL 4.3 OpenGL 4.2 OpenGL 4.1 OpenGL 3.3/4.0 OpenGL 3.2 OpenGL 3.1 OpenGL 2.0 OpenGL 2.1 OpenGL 3.0 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 DirectX 9.0c DirectX 10.0 DirectX 10.1 DirectX 11 DirectX 11.1 © Copyright Khronos Group 2013 - Page 14 OpenGL 4.3 Compute Shaders • Execute algorithmically general-purpose GLSL shaders - Can operate on uniforms, images and textures • Process graphics data in the context of the graphics pipeline - Easier than interoperating with a compute API IF processing ‘close to the pixel’ • Standard part of all OpenGL 4.3 implementations - Matches DX11 DirectCompute functionality Physics AI Simulation Ray Tracing Imaging Global Illumination © Copyright Khronos Group 2013 - Page 15 OpenGL Conformance Test Suite released! Conformance submissions are required for GL 4.4 implementations encouraged for earlier driver versions Shared codebase with OpenGL ES 3.0 CTS additional desktop-specific tests Core profile functionality Enhancements underway to add more coverage © Copyright Khronos Group 2013 - Page 16 OpenCL and OpenGL Compute Shaders • OpenGL compute shaders and OpenCL support distinctly different use cases - OpenCL provides a significantly more powerful and complete compute solution 1. Fine grain compute operations 1. Full ANSI C programming of inside OpenGL heterogeneous CPUs and GPUs 2. GLSL Shading Language 2. Utilize multiple processors 3. Execute on single GPU only 3. Precisely defined IEEE accuracy Enhanced 3D Imaging Pure compute Graphics apps Video apps touching “Shaders++” Physics no pixels AI Compute Shaders © Copyright Khronos Group 2013 - Page 17 Active Gamers by Platform Courtesy of PC Gaming Alliance www.pcgamingalliance.org © Copyright Khronos Group 2013 - Page 18 Visual Sensor Revolution • Single sensor RGB cameras are just the start of the mobile visual revolution - IR sensors – LEAP Motion, eye-trackers • Multi-sensors: Stereo pairs -> Plenoptic array -> Depth cameras - Stereo pair can enable object scaling and enhanced depth extraction - Plenoptic Field processing needs FFTs and ray-casting • Hybrid visual sensing solutions - Different sensors mixed for different distances and lighting conditions • GPUs today – more dedicated ISPs tomorrow? Dual Camera Plenoptic Array Capri Structured Light 3D Camera LG Electronics Pelican imaging PrimeSense © Copyright Khronos Group 2013 - Page 19 OpenVX • Vision Hardware Acceleration Layer - Enables hardware vendors to implement accelerated imaging and vision algorithms - For use by high-level libraries or apps • Focus on enabling real-time vision Application - On mobile and embedded systems • Diversity of efficient implementations OpenCV open Other higher-level