Dave Shreiner, ARM March 2009

Similar documents
Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Programming Guide. Aaftab Munshi Dan Ginsburg Dave Shreiner. TT r^addison-wesley

Introduction to OpenGL ES 3.0

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

What was removed? (1) OpenGL ES vs. OpenGL

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

OPENGL RENDERING PIPELINE

Lecture 2. Shaders, GLSL and GPGPU

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Module 13C: Using The 3D Graphics APIs OpenGL ES

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

Copyright Khronos Group Page 1

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Lecture 5 Vertex and Fragment Shaders-1. CITS3003 Graphics & Animation

Shaders. Slide credit to Prof. Zwicker

last time put back pipeline figure today will be very codey OpenGL API library of routines to control graphics calls to compile and load shaders

CS770/870 Fall 2015 Advanced GLSL

Copyright Khronos Group, Page 1

Ciril Bohak. - INTRODUCTION TO WEBGL

SIGGRAPH Briefing August 2014

Mobile AR Hardware Futures

Optimizing Games for ATI s IMAGEON Aaftab Munshi. 3D Architect ATI Research

Free Downloads OpenGL ES 3.0 Programming Guide

Introduction to Shaders.

Bringing it all together: The challenge in delivering a complete graphics system architecture. Chris Porthouse

Programming shaders & GPUs Christian Miller CS Fall 2011

Copyright Khronos Group 2012 Page 1. Teaching GL. Dave Shreiner Director, Graphics and GPU Computing, ARM 1 December 2012

Bifrost - The GPU architecture for next five billion

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

POWERVR MBX & SGX OpenVG Support and Resources

Sign up for crits! Announcments

Introduction. What s New in This Edition

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL

Overview. Technology Details. D/AVE NX Preliminary Product Brief

The Graphics Pipeline

Vulkan 1.1 March Copyright Khronos Group Page 1

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

Why modern versions of OpenGL should be used Some useful API commands and extensions

Mention driver developers in the room. Because of time this will be fairly high level, feel free to come talk to us afterwards

Embedded Media Processing Ecosystem

Lecture 13: OpenGL Shading Language (GLSL)

GPGPU on Mobile Devices

Mobile Application Programing: Android. OpenGL Operation

More frames per second. Alex Kan and Jean-François Roy GPU Software

Shader Programming. Daniel Wesslén, Stefan Seipel, Examples

Graphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university

Broken Age's Approach to Scalability. Oliver Franzke Lead Programmer, Double Fine Productions

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1

WebGL and GLSL Basics. CS559 Fall 2015 Lecture 10 October 6, 2015

Copyright Khronos Group, Page 1. OpenCL. GDC, March 2010

Programming Graphics Hardware

CS4620/5620: Lecture 14 Pipeline

Copyright Khronos Group Page 1. Vulkan Overview. June 2015

WebGL (Web Graphics Library) is the new standard for 3D graphics on the Web, designed for rendering 2D graphics and interactive 3D graphics.

OpenGL Essentials Training

MXwendler Fragment Shader Development Reference Version 1.0

GLSL Introduction. Fu-Chung Huang. Thanks for materials from many other people

CPSC 436D Video Game Programming

CS130 : Computer Graphics. Tamar Shinar Computer Science & Engineering UC Riverside

Mobile Performance Tools and GPU Performance Tuning. Lars M. Bishop, NVIDIA Handheld DevTech Jason Allen, NVIDIA Handheld DevTools

Working with Metal Overview

Programmable GPUs. Real Time Graphics 11/13/2013. Nalu 2004 (NVIDIA Corporation) GeForce 6. Virtua Fighter 1995 (SEGA Corporation) NV1

The Rasterization Pipeline

ARM. Mali GPU. OpenGL ES Application Optimization Guide. Version: 3.0. Copyright 2011, 2013 ARM. All rights reserved. ARM DUI 0555C (ID102813)

Achieving High-performance Graphics on Mobile With the Vulkan API

Windowing System on a 3D Pipeline. February 2005

CS4621/5621 Fall Computer Graphics Practicum Intro to OpenGL/GLSL

Graphics Hardware, Graphics APIs, and Computation on GPUs. Mark Segal

GPU Memory Model. Adapted from:

Introduction to the OpenGL Shading Language

Copyright Khronos Group, Page 1

ARM. Mali GPU. OpenGL ES Application Optimization Guide. Version: 2.0. Copyright 2011, 2013 ARM. All rights reserved. ARM DUI 0555B (ID051413)

WebGL and GLSL Basics. CS559 Fall 2016 Lecture 14 October

Information Coding / Computer Graphics, ISY, LiTH GLSL. OpenGL Shading Language. Language with syntax similar to C

EECS 487: Interactive Computer Graphics

Understanding M3G 2.0 and its Effect on Producing Exceptional 3D Java-Based Graphics. Sean Ellis Consultant Graphics Engineer ARM, Maidenhead

GLSL Introduction. Fu-Chung Huang. Thanks for materials from many other people

Mobile graphics API Overview

Rasterization Overview

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

Lecture 9(B): GPUs & GPGPU

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

The Transition from RenderMan to the OpenGL Shading Language (GLSL)

Shader Programs. Lecture 30 Subsections 2.8.2, Robb T. Koether. Hampden-Sydney College. Wed, Nov 16, 2011

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Introduction to Shaders for Visualization. The Basic Computer Graphics Pipeline

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

CS427 Multicore Architecture and Parallel Computing

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

CS179: GPU Programming

Mobile Application Programing: Android. OpenGL Operation

PowerVR Series5. Architecture Guide for Developers

Rendering Objects. Need to transform all geometry then

Transcription:

4 th Annual Dave Shreiner, ARM March 2009 Copyright Khronos Group, 2009 - Page 1

Motivation - What s OpenGL ES, and what can it do for me? Overview - Lingo decoder - Overview of the OpenGL ES Pipeline - What s this Shader thing, and what s one look like? Where can you learn more - Specifications, books, man pages and more! The two-for-one deal - OpenGL ES and OpenCL goes together like peas and carrots Copyright Khronos Group, 2009 - Page 2

The leading 3D rendering API for mobile devices - Based on desktop OpenGL but optimized for mobile / handheld devices - Removes redundancy & rarely used features - adds mobile-friendly data types - The power of OpenGL distilled into a much smaller package A smashing success! - Widely used in mobile phone handsets from every major handset manufacturer - Personal Navigation, Personal Media Player, Automotive, Set-Top Box, Mobile Internet Device - Brew, Windows Mobile, Symbian, Android, iphone OS, Limo, Embedded Linux OpenGL ES 1.1 has become the most widely deployed 3D API - Used in diverse applications, devices and markets Copyright Khronos Group, 2009 - Page 3

OpenGL is too big for systems with limited resources - Floating point arithmetic - Features for CAD, medical imaging, et cetera - Legacy features that are no longer useful / recommended What to do? - Remove redundant, unused, or expensive functionality - Add features needed for embedded systems Result: OpenGL ES - A compact API that can do almost everything that full OpenGL can - while leveraging OpenGL tools and experience Copyright Khronos Group, 2009 - Page 4

Mobile Games - US $2.4B in 2006, growing to - US $7.2B in 2010 (Informa) Composition-based User Interfaces - Mac OS X, Windows Vista - Coming soon in Symbian Other Uses - Implementing Flash / OpenVG - Application UIs - Navigation applications - Etc Copyright Khronos Group, 2009 - Page 5

State Variables 3D Vertices and Attributes Geometry Processor Rasterization Fragment Processor Frame Buffer Update Models Screen Triangles Fragments Colored Fragments Image OpenGL ES Versions - OpenGL ES 1.x: fixed-function processors, programmed by register setting - OpenGL ES 2.x: programmable processors, programmed in Shader Languages Copyright Khronos Group, 2009 - Page 6

Key Features - Based on OpenGL 1.5 - Vertex Arrays / Buffer Objects - Transform & Lighting - Multitexturing (min 2 units) - Fixed-point & Floating-point profiles Features Removed - Begin / End (immediate-mode interface) - Color Index Mode Copyright Khronos Group, 2009 - Page 7

Fixed Function 3D Acceleration Key Features Fixed-point and Floating-point Data Formats Vertex Arrays and Buffer Objects Fixed-Function Transformation and Lighting Point, Line, Triangle, Triangle Strip, Triangle Fan Primitives Minimum 2 layer Multi-Texturing Vertex Skinning Functionality Texture Filtering Texture Compression Alpha Blending Z-Buffer / Stencil Buffer / Color Buffer Copyright Khronos Group, 2009 - Page 8

Key Features - Adds vertex and fragment shader programming Removes fixed function pipeline Super-compact, efficient API High level language (GLSL ES) On-line or off-line compilation Advanced Feature Set - Eight attribs / varyings / textures - Cube Maps - Framebuffer Objects Copyright Khronos Group, 2009 - Page 9

Programmable 3D Acceleration Key Features Programmable Transform and Lighting through Vertex Shader Programmable Pixel Rasterization through Fragment Shader Support for 3 levels of precision in the Shader Programs No Fixed Function Vertex or Fragment Shading - Breaks backwards compatibility! Fixed function components - Alpha Blending - Depth / Stencil Test - Texture Filtering Texture Compression - Including royalty free ETC Frame Buffer Objects - Exchange data within the pipeline without copies Copyright Khronos Group, 2009 - Page 10

A (usually small) program written in a shading language - OpenGL ES 2.0 has its own shading language the OpenGL ES Shading Language Example Fragment Shader varying vec2 tc; // texture coords varying vec3 n; // lighting normal uniform vec3 lightpos; uniform sampler2d tex[2]; void main() { vec4 color = texture2d( tex[0], tc ); vec4 clouds = texture2d( tex[1], tc ); float dp = dot( n, lightpos ); vec4 brightness = max( 0.0, dp ); } gl_fragcolor = brightness * (color + clouds); Copyright Khronos Group, 2009 - Page 11

Copyright Khronos Group, 2009 - Page 12

The Khronos Web Site - Specifications, examples, and OpenGL ES 2.0 manual pages - OpenGL ES 1.1 pages coming soon http://www.khronos.org/opengles/sdk/docs/man Copyright Khronos Group, 2009 - Page 13

OpenCL with OpenGL (ES) work together Both standards under one IP framework - Enables very close collaborative design Efficient, inter-api communication - While still allowing both APIs to handle the types of workloads for which they were designed OpenCL can efficiently share resources with OpenGL (ES) - Textures, Buffer Objects and Renderbuffers - Data is shared, not copied Applications can select compute device(s) to run OpenGL and OpenCL - Efficient queuing of OpenCL and OpenGL commands into the hardware - Flexible scheduling and synchronization Examples - Vertex and image data generated with OpenCL and then rendered with OpenGL - Images rendered with OpenGL and post-processed with OpenCL kernels - etc. etc. Copyright Khronos Group, 2009 - Page 14

OpenGL ES versions - OpenGL ES 1.1 the fixed-function implementation - OpenGL ES 2.0 shader-based graphics All trademarked implementations rigorously tested - Working group agreed conformance tests OpenGL ES 2.0 final specification March 2007 OpenGL ES 2.0 provisional specification August 2005 OpenGL ES 2.0 Conformance Tests May 2008 OpenGL ES 2.0 accelerated products begin to ship High-end devices will ship with drivers for both OpenGL ES 1.1 and 2.0 OpenGL ES 1.1 with hardware acceleration is the Sweet Spot for Mobile 3D through 2008 OpenGL ES 1.1 will continue to be used in lower-cost devices 2007 2008 2009 Copyright Khronos Group, 2009 - Page 15