OpenGL BOF Siggraph 2011

Similar documents
GDC 2014 Barthold Lichtenbelt OpenGL ARB chair

SIGGRAPH Briefing August 2014

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

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

Copyright Khronos Group Page 1

OpenGL 3 Overview. Barthold Lichtenbelt, NVIDIA OpenGL ARB Chair. Copyright Khronos Group, Page 1

CS195V Week 6. Image Samplers and Atomic Operations

Khronos and the Mobile Ecosystem

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

OpenGL Status - November 2013 G-Truc Creation

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

Lecture 13: OpenGL Shading Language (GLSL)

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Mobile AR Hardware Futures

Mali & OpenGL ES 3.0. Dave Shreiner Jon Kirkham ARM. Game Developers Conference 27 March 2013

Introduction to OpenGL ES 3.0

BCA611 Video Oyunları için 3B Grafik

WebGL. Announcements. WebGL for Graphics Developers. WebGL for Web Developers. Homework 5 due Monday, 04/16. Final on Tuesday, 05/01

Dave Shreiner, ARM March 2009

Standards for WebVR. Neil Trevett. Khronos President Vice President Mobile Content,

OpenCL Press Conference

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

BOF Siggraph 2012 Barthold Lichtenbelt OpenGL ARB chair

Working with Metal Overview

Copyright Khronos Group 2012 Page 1. OpenCL 1.2. August 2012

Programming with OpenGL Part 3: Shaders. Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Compute Shaders. Christian Hafner. Institute of Computer Graphics and Algorithms Vienna University of Technology

WebGL. WebGL. Bring 3D to the Masses. WebGL. The web has text, images, and video. We want to support. Put it in on a webpage

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

Shading Language Update

Copyright Khronos Group, Page 1. Khronos Overview. Taiwan, February 2012

Free Downloads OpenGL ES 3.0 Programming Guide

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc.

Profiling and Debugging Games on Mobile Platforms

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

WebGL Meetup GDC Copyright Khronos Group, Page 1

Starting out with OpenGL ES 3.0. Jon Kirkham, Senior Software Engineer, ARM

A Trip Down The (2011) Rasterization Pipeline

Open Standards for Today s Gaming Industry

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

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

Open API Standards for Mobile Graphics, Compute and Vision Processing GTC, March 2014

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

OpenCL Overview. Shanghai March Neil Trevett Vice President Mobile Content, NVIDIA President, The Khronos Group

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

GPGPU Applications. for Hydrological and Atmospheric Simulations. and Visualizations on the Web. Ibrahim Demir

Programming shaders & GPUs Christian Miller CS Fall 2011

Coding OpenGL ES 3.0 for Better Graphics Quality

The Application Stage. The Game Loop, Resource Management and Renderer Design

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

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York

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

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

Vulkan Launch Webinar 18 th February Copyright Khronos Group Page 1

Copyright Khronos Group, Page 1

AR Standards Update Austin, March 2012

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

Graphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University

Rendering Objects. Need to transform all geometry then

WebGL A quick introduction. J. Madeira V. 0.2 September 2017

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

Cg 2.0. Mark Kilgard

DEVELOPER DAY. Vulkan Subgroup Explained Daniel Koch NVIDIA MONTRÉAL APRIL Copyright Khronos Group Page 1

EECS 487: Interactive Computer Graphics

GLSL Overview: Creating a Program

WebGL, WebCL and Beyond!

CS475/CS675 - Computer Graphics. OpenGL Drawing

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

GLSL 1: Basics. J.Tumblin-Modified SLIDES from:

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

Async Workgroup Update. Barthold Lichtenbelt

PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.

Shaders. Slide credit to Prof. Zwicker

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

Bifrost - The GPU architecture for next five billion

Hardware Accelerated Graphics for High Performance JavaFX Mobile Applications

NVIDIA Parallel Nsight. Jeff Kiel

OpenGL on Android. Lecture 7. Android and Low-level Optimizations Summer School. 27 July 2015

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

GPU Quality and Application Portability

Metal Feature Set Tables

What s New with GPGPU?

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

GeForce3 OpenGL Performance. John Spitzer

GPGPU on Mobile Devices

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

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Mobile graphics API Overview

Get the most out of the new OpenGL ES 3.1 API. Hans-Kristian Arntzen Software Engineer

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

The Ultimate Developers Toolkit. Jonathan Zarge Dan Ginsburg

Graphics Processing Unit Architecture (GPU Arch)

Rationale for Non-Programmable Additions to OpenGL 2.0

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

CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST

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

Water Simulation on WebGL and Three.js

Rendering Grass with Instancing in DirectX* 10

Vulkan Multipass mobile deferred done right

Transcription:

OpenGL BOF Siggraph 2011

OpenGL BOF Agenda OpenGL 4 update Barthold Lichtenbelt, NVIDIA OpenGL Shading Language Hints/Kinks Bill Licea-Kane, AMD Ecosystem update Jon Leech, Khronos Viewperf 12, a new beginning Ian Williams, NVIDIA Brink preferred rendering with OpenGL Mikkel Gjoel, Splashdamage Trivia throughout Copyright Khronos Group, 2010 - Page 2

T-shirt and trivia prizes sponsors T-shirts and trivia prizes were made possibly through donations from Individuals - John Kessenich - Rob Barris - Vicki and Dave Shreiner - Mike Weiblen - Brian Paul - Ken Russell Companies - Intel, AMD, NVIDIA, Imagination Technologies, ARM, Out of Control HUGE THANKS! Copyright Khronos Group, 2010 - Page 3

OpenGL 4 update Barthold Lichtenbelt OpenGL ARB chair Copyright Khronos Group, 2011 - Page 4

OpenGL Ecosystem 3D Everywhere OpenGL ES 2.0 on desktop as subset of OpenGL 4.2 for mobile content flexibility including native support for WebGL Leading-edge functionality developed first on desktop WebGL driving newgeneration security features into OpenGL family Mobile functionality subset that is deployed on billions of devices Pervasive OpenGL ES 2.0 availability enables Browser vendors to build 3D directly into HTML5

Visual Computing Ecosystem High performance compute and graphics interop buffer and events Compute and mobile APIs interoperate through EGL JavaScript bindings to OpenCL Parallel computation in HTML5 WebCL

OpenGL for Each Hardware Generation Tessellation and Compute 4.X Shape realism Geometry Shaders 3.X Vertex and Fragment Shaders 2.X Fixed Function 1.X Surface realism

Accelerating OpenGL Innovation Bringing state-of-theart functionality to cross-platform graphics 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 DirectX 9.0c DirectX 10.0 DirectX 10.1 DirectX 11

Press Reactions Many Copyright Khronos Group, 2010 - Page 9

Press Reactions "With OpenGL 4.2, the Khronos Group has yet again steamed ahead of Microsoft and its slow-and-steady DirectX framework." http://www.extremetech.com/computing/92266-opengl-4-2-releaseddrives-directx-further-into-the-ground Copyright Khronos Group, 2010 - Page 10

OpenGL 4.2 new functionality (1/2) ARB_shader_atomic_counters - GLSL built-in functions to query and increment/decrement atomic counters - Counters stored in buffer objects ARB_shader_image_load_store - allow shaders to load from, store to, and perform atomic read-modify-write operations to a single level of a texture ARB_texture_storage - Immutable textures ARB_transform_feedback_instanced - Draw multiple instances of the result of a transform feedback - Without query and sync needed for DrawArraysInstanced() ARB_shading_language_420pack - Collection of new GLSL features Copyright Khronos Group, 2010 - Page 11

OpenGL 4.2 new functionality (2/2) ARB_texture_compression_BPTC - ARB extension since January 2010, promoted to core now - Same formats as BC6H/BC7 in DirectX 11 ARB_base_instance - Specify offset within buffer object for instanced drawing - Adds three new API calls ARB_internalformat_query - Find out supported number of samples per internal format Copyright Khronos Group, 2010 - Page 12

OpenGL 4.2 performance improvements ARB_compressed_texture_pixel_storage - Modify an arbitrary subset of compressed texture - Blizzard requested feature ARB_shading_language_packing - allows GLSL shaders to read and write 16-bit floating-point encodings - Pack small data types into one larger one - Implementable on pre GL 4 hardware Uniform sampler initialization, Uniform block binding initialization - Use layout to set texture image unit, and UBO index - No need to call GetUniformLocation() or GetUniformBlockLocation() - Part of ARB_shading_language_420pack ARB_map_buffer_alignment - Pointer returned is aligned for SSE/AVX CPU instructions ARB_conservative_depth - Shader constructs that help enable depth testing before fragment processing Copyright Khronos Group, 2010 - Page 13

ARB_texture_storage Texture structure is immutable on creation - Format - Dimensions - Presence of mipmap levels Contents are mutable Always complete (!) void TexStorage{1D,2D,3D}(enum target, sizei levels, enum internalformat, sizei width, sizei height, sizei depth) Copyright Khronos Group, 2010 - Page 14

Image_load_Store and Atomic Counters Single rendering pass Order Independent Transparency - Fragment shader writes to layer in 2D image Array using ARB_image_load_store - Layer to write to is tracked with a 2D image updated with atomic adds - Result: Unordered list of fragments per pixel Sort and compositing pass - Full screen quad - Copy all fragments into an array - Bubble sort array - Combine front-to-back Can be 1.5 2.0x faster - Over k-buffer - Over bucket sort depth peeling http://blog.icare3d.org/2010/06/fast-and-accurate-single-pass-buffer.html Copyright Khronos Group, 2010 - Page 15

Transform Feedback Instanced example Need: Draw same geometry N time - Don t waste tessellation GPU cycles Solution: Tessellate geometry only when LOD changes - Using tessellation added in OpenGL 4.0 Capture output with transform feedback - xfb objects capture primitive counts Render N times with DrawTransformFeedbackInstanced() - New in OpenGL 4.2 Image courtesy of http://bimuzer.com/ Copyright Khronos Group, 2010 - Page 16

Compressed Pixel Texture Storage Application memory GPU memory Compressed texture Compressed texture That needs updating? Application updates a subregion Copyright Khronos Group, 2010 - Page 17

Compressed Pixel Texture Storage Application memory GPU memory App has to update entire texture with glcompressedteximage2d App copies sub-region to another Memory location and use glcompressedtexsubimage2d Most efficient! With compressed_texture_pixel_storage data can get copied directly to GPU memory Copyright Khronos Group, 2010 - Page 18

ARB_shading_language_420pack Initializer lists - adds initializer lists as a method of initializing arrays and structures in GLSL.length() and scalar swizzle - adds support for the.length() method on all vector and matrix types - adds the ability to perform vector swizzle operations on scalar values qualifiers - const can now declare function variables with non-constant initializers - qualifiers can be in any order binding layout qualifiers - Use layout to set texture image unit and UBO index Others - Any character in a comment - \ as a continuation character Copyright Khronos Group, 2010 - Page 19

Shading Language Packing Pack and convert - vec2 representing two FP16 values into a uint - vec2 and vec4 vectors to 8 and 16 bit int into a uint - And vice-versa uint packunorm2x16(vec2 v); uint packsnorm2x16(vec2 v); uint packunorm4x8(vec4 v); uint packsnorm4x8(vec4 v); vec2 unpackunorm2x16(uint v); vec2 unpacksnorm2x16(uint v); vec4 unpackunorm4x8(uint v); vec4 unpacksnorm4x8(uint v); uint packhalf2x16(vec2 v); vec2 unpackhalf2x16(uint v); Benefits - Can be implemented on pre GL4 hardware - Saves attributes to pass data among shaders - Saves transform-feedback bandwidth - Therefore performance increase due to less mem BW and storage used Copyright Khronos Group, 2010 - Page 20