BOF Siggraph 2012 Barthold Lichtenbelt OpenGL ARB chair

Size: px
Start display at page:

Download "BOF Siggraph 2012 Barthold Lichtenbelt OpenGL ARB chair"

Transcription

1 BOF Siggraph 2012 Barthold Lichtenbelt OpenGL ARB chair

2 OpenGL BOF Agenda Latest news and features in OpenGL - Barthold Lichtenbelt, NVIDIA Cool things you never dreamed you could do with OpenGL? - Bill Licea-Kane, AMD Left 4 Dead 2 Linux: From 6 to 300 FPS in OpenGL - Rich Geldreich, Valve 20 years of OpenGL - Kurt Akeley, co-founder of SGI and the OpenGL API Followed by Party! Trivia throughout Copyright Khronos Group, Page 2

3 Sponsors Copyright Khronos Group, Page 3

4 Sponsors Rob Barris Tadamasa Teranishi Tomohiro Matsumoto Jesse Barker Lingjun Chen Glenn Fredericks Masahito Hirose John Kessenich Arzhange Safdarzadeh Tom Olson Lawrence McDonough Mark Kilgard Takeshi Haga Cass Everitt Takeshi Hirai Ian Romanick Laurent Billy Benj Lipchak Sergey Kosarevsky Christophe Riccio Dominic Agoro-Ombaka Vicki and Dave Shreiner Kentaro Suzuki a.k.a. hole Kentaro Oku "kioku/system K The English Tiddlywinks Association Several anonymous sponsors Copyright Khronos Group, Page 4

5 OpenGL is 20 years today! Copyright Khronos Group, Page 5

6 OpenGL 20 th Birthday - Then and Now Ideas in Motion - SGI Rage -id Software 1992 Reality Engine 8 Geometry Engines 4 Raster Manager boards 2012 Mobile NVIDIA Tegra 3 Nexus 7 Android Tablet 2012 PC NVIDIA GeForce GTX 680 Kepler GK104 Triangles / sec (millions) (x103) 1800 (x1800) Pixel Fragments / sec (millions) (x4.3) 14,400 (x60) GigaFLOPS (x25) 3090 (x4830) 1.5KW <5W Copyright Khronos Group, Page 6

7 OpenGL Latest Updates Games - Steam s Left 4 Dead 2 on Linux uses OpenGL (7/2012) Doom3 source code released (11/2011) Books - OpenGL Insights released (8/2012) - OpenGL 4.0 Shading Language Cookbook released (1/2012) - Graphics Shaders: Theory and Practice, second edition released (11/2011) - Learning Modern 3D Graphics Programming (2012) - Copyright Khronos Group, Page 7

8 OpenGL Ecosystem News Tools updated to support OpenGL GLView (2/2012) - GLEW (7/2012) and GL3W - GLIntercept (11/2011) - (8/2011) New projects - GLCapsViewer - (8/2011) - Regal for OpenGL - (2012) - Proland - (5/2012) New Tutorials - Copyright Khronos Group, Page 8

9 Announcing 4.3 Copyright Khronos Group, Page 9

10 Accelerating OpenGL Innovation Bringing state-of-theart functionality to cross-platform graphics OpenGL 4.3 OpenGL 4.2 OpenGL 4.1 OpenGL 3.3/4.0 OpenGL 3.2 OpenGL 2.0 OpenGL 2.1 OpenGL 3.0 OpenGL DirectX 9.0c DirectX 10.0 DirectX 10.1 DirectX 11 DirectX 11.1 Copyright Khronos Group, Page 10

11 What is new in OpenGL 4.3? texture functionality - ARB_texture_view - ARB_internalformat_query2 - ARB_copy_image - ARB_texture_buffer_range - ARB_stencil_texturing - ARB_texture_storage_multisample buffer functionality - ARB_shader_storage_buffer_object - ARB_invalidate_subdata - ARB_clear_buffer_object - ARB_vertex_attrib_binding - ARB_robust_buffer_access_behavior 4.3 Copyright Khronos Group, Page 11

12 What is new in OpenGL 4.3? pipeline functionality - ARB_compute_shader - ARB_multi_draw_indirect - KHR_debug - ARB_program_interface_query - ARB_ES3_compatibility extensions - KHR_texture_compression_astc_ldr - ARB_robustness_isolation GLSL 4.3 functionality - ARB_shader_image_size - ARB_explicit_uniform_location - ARB_texture_query_levels - ARB_arrays_of_arrays - ARB_fragment_layer_viewport 4.3 Copyright Khronos Group, Page 12

13 OpenGL 4.3 Pipelines From Application From Application Element Array Buffer b Vertex Puller Dispatch Indirect Buffer b Dispatch Draw Indirect Buffer b Vertex Shader Image Load / Store t/b Compute Shader Vertex Buffer Object b Tessellation Control Shader Atomic Counter b Tessellation Primitive Gen. Shader Storage b Tessellation Eval. Shader Geometry Shader Texture Fetch t/b Transform Feedback Buffer b Transform Feedback Uniform Block b Legend Rasterization From Application Fixed Function Stage Programmable Stage Fragment Shader Pixel Assembly Pixel Unpack Buffer b b Buffer Binding Per-Fragment Operations Pixel Operations Texture Image t t Texture Binding Arrows indicate data flow Framebuffer Pixel Pack Pixel Pack Buffer b Copyright Khronos Group, Page 13

14 Compute Shaders Execute algorithmically general purpose GLSL shaders - Operate on buffers, 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 Complementary to OpenCL - Not a full heterogonous (CPU/GPU) programming framework using full ANSI C Standard part of all OpenGL 4.3 implementations - Matches DirectX 11 functionality Image processing AI Simulation Ray Tracing Wave Simulation Global Illumination Copyright Khronos Group, Page 14

15 Compute Shaders for Physics Processing Credit: Dr. Mike Bailey, Oregon State University also Notes and sample code on OpenGL Compute Shader - Copyright Khronos Group, Page 15

16 Compute programming model Dispatch gl_workgroupsize = (4,2,0) gl_workgroupid = (1,1,0) gl_localinvocationid = (2,1,0) gl_globalinvocationid = (6,3,0) Work Group (0, 1) Work Group (1, 1) Work Group (2, 1) Work Group (1,1) Invocation (0,1) Invocation (1,1) Invocation (2,1) Invocation (3,1) Work Group (0, 0) Work Group (1, 0) Work Group (2, 0) Invocation (0,0) Invocation (1,0) Invocation (2,0) Invocation (3,0) in uvec3 gl_numworkgroups; // Number of workgroups dispatched const uvec3 gl_workgroupsize; // Size of each work group for current shader in uvec3 gl_workgroupid; // Index of current work group being executed in uvec3 gl_localinvocationid; // index of current invocation in a work group in uvec3 gl_globalinvocationid; // Unique ID across all work groups and invocations Copyright Khronos Group, Page 16

17 Compute memory hierarchy Shader Storage Buffer Object (SSBO) Uniform Buffer Object (UBO) Texture Buffer Object (TexBO) Texture Dispatch Thread (0,1) Work Group Work Group Work Group Work Group (0, 1) Work Group Work Group Work Group Work Group Shared Variables Image Use void barrier() to synchronize invocations in a work group Use memory barriers to order reads/writes accessible to other invocations void memorybarrier(); void memorybarrieratomiccounter(); void memorybarrierbuffer(); void memorybarrierimage(); void memorybarriershared(); // Only for compute shaders void groupmemorybarrier(); // Only for compute shaders Invocation Local Variables Copyright Khronos Group, Page 17

18 Texture Views View texture data store multiple ways - Re-interpret the format/type - Clamp mip-map level range - Clamp array slice range No new object types introduced Conceptual split of a texture object - Data store holding texels - View state describing which part of data store to use - View state describing how to interpret elements in data store - An embedded sampler object - Texture parameters Multiple textures share same data store - Data store ref counted Copyright Khronos Group, Page 18

19 Texture Views Sampler Object Sampler Parameters (mutable) use sampler object if bound Texture Object Sampler Parameters (mutable) Texture Parameters Texture View Parameters (immutable) created with TexStorage*() Texture Lookup Hardware Texture levels selected by view mipmap chain To rest of pipeline Texel Data (mutable, ref counted) Copyright Khronos Group, Page 19

20 Creation of New Texture View Sampler Object Sampler Parameters (mutable) Texture Object Sampler Parameters (mutable) Texture Parameters New Texture Object Texture Parameters (reset to default) Sampler Parameters (reset to default) Sampler Object Sampler Parameters (mutable) use sampler object if bound Texture View Parameters (immutable) Texture View Parameters (immutable) use sampler object if bound created with TexStorage*() created with TextureView() Texture Lookup Hardware Texture levels selected by view mipmap chain Texture levels selected by view Texture Lookup Hardware To rest of pipeline Texel Data (mutable, ref counted) New texture state set with TextureView() enum internalformat // base internal format enum target // texture target uint minlevel // first level of mipmap uint numlevels // number of mipmap levels uint minlayer // 1 st layer of array texture uint numlayers // number of layers in array Copyright Khronos Group, Page 20

21 KHR_debug Builds on ARB_debug_output Callback with debug information - Or write to log Messages grouped by {source, type, ID, severity} - Source: GL API, GLSL shader, application, third-party, debugger - Type: Error, performance, undefined behavior, portability - ID: Unique identifier for each message - Severity: High, medium, low Label objects - Human readable text Annotate commands stream - Markers: Identify some event in your code - Groups: Encapsulate command stream and control debug verbosity Copyright Khronos Group, Page 21

22 MultiDraw*Indirect() MultiDraw{Arrays/Elements}Indirect - Combines MultiDraw with DrawIndirect MultiDraw - MultiDraw functions can help reduce validation overhead especially for many low complexity draw calls, while keeping each sub-object addressable DrawIndirect - Store draw command inputs in host or GPU buffers Host Provides efficient system for GPU to generate its own work - Use XFB or SSBO/compute to write the draw command buffers - For example for culling (setting count to zero), LOD picking (changing count/firstindex)... Compute Shader MultiDraw Indirect Buffer Graphics Shader CAD example: individual model features (bevels ) struct DEICommand { uint count; uint instancecount; uint firstindex; int basevertex; uint baseinstance; }; Copyright Khronos Group, Page 22

23 Shader Storage Buffer Objects (SSBO) Read/write and atomic operations on variables stored in a buffer object - Think writeable UBOs New binding point SHADER_STORAGE_BUFFER - Queriable limits on number of storage blocks per shader type - MAX_<SHADER>_STORAGE_BLOCKS Support large buffers - Minimum size is 16 MB New std430 memory layout - Pack scalar arrays more efficiently Can use C-style code in a shader to read/write - Example on next slide Especially useful for compute shaders - No built-in outputs - Data transfer has to be through buffers or images Copyright Khronos Group, Page 23

24 Shader Storage Buffer Objects (SSBO) glgenbuffers(1, & posssbo); glbindbuffer(gl_shader_storage_buffer, posssbo); glbufferdata(gl_shader_storage_buffer,... ); gluseprogram(myshaderprogram); glbindbufferbase(gl_shader_storage_buffer, 4, posssbo); struct MyVertex { vec2 tex[2]; // tightly packed array in 430 vec3 pos; int materialidx; } layout(std430, binding = 4) buffer { MyVertex Vertices[ ]; // unsized array allowed at end of buffer };... // compute data to store in Vertices[] Vertices[i]. materialidx = idx; // directly write to buffer content Copyright Khronos Group, Page 24

25 New KHR and ARB extensions KHR_texture_compression_astc_ldr - Adaptive Scalable Texture Compression (ASTC) component, low bit rate < 1 bit/pixel 8 bit/pixel ARB_robustness_isolation - If application causes GPU reset, no other application will be affected All 4.3 functionality also available as ARB extensions Original 24bpp ASTC Compression 8bpp 3.56bpp 2bpp Copyright Khronos Group, Page 25

26 OpenGL 4.3 reference pages Huge thanks to Graham Sellers!!! Copyright Khronos Group, Page 26

27 Specification re-ordering Shader and buffer centric - Fixed function interfaces described as alternates Introduces concepts and objects at high level - Before being used later in document Error summaries for commands Removed duplication of language Consistent uses of phrases and terminology Aligned section numbering between Core and Compatibility profiles Copyright Khronos Group, Page 27

28 Conclusion OpenGL 4.3 adds major new functionality - Compute shaders - Advanced buffer management - Advanced texture management - Advanced GPU work creation OpenGL usage on the rise sharply - WebGL - Mobile platforms - Linux OpenGL is 20 years today! - Awesome achievement Copyright Khronos Group, Page 28

29 Rest of the evening Get Drink Kurt Akeley Presentation Toast Party - LIVE DEMO: Viewperf 12 - Play with the O2! Get your drink and COME BACK to toast to OpenGL Copyright Khronos Group, Page 29

30 OpenGL 4.3 details Copyright Khronos Group, Page 30

31 OpenGL 4.3 new texture functionality ARB_texture_view - Provide different ways to interpret texture data without duplicating the texture - Match DX11 functionality ARB_internalformat_query2 - find out actual supported limits for most texture parameters ARB_copy_image - Direct copy of pixels between textures and render buffers ARB_texture_buffer_range - create texture buffer object corresponding to a subrange of a buffer s data store ARB_stencil_texturing - Read stencil bits of a packed depth-stencil texture ARB_texture_storage_multisample - Immutable storage objects for multisampled textures Copyright Khronos Group, Page 31

32 OpenGL 4.3 new buffer functionality ARB_shader_storage_buffer_object - Enables all shader stages to read and write to very large buffers - structs, arrays, scalars, etc ARB_invalidate_subdata - Invalidate all or some of the contents of textures and buffers ARB_clear_buffer_object - Clear a buffer object with a constant value ARB_vertex_attrib_binding - Separate vertex attribute state from the data stores of each array ARB_robust_buffer_access_behavior - shader read/write to an object only allowed to data owned by the application - Applies to out of bounds accesses Copyright Khronos Group, Page 32

33 OpenGL 4.3 new pipeline functionality ARB_compute_shader - Introduces new shader stage - Enables advanced processing algorithms that harness the parallelism of GPUs ARB_multi_draw_indirect - Draw many GPU generated objects with one call KHR_debug - Enhanced debug context support ARB_program_interface_query - Generic API to enumerate active variables and interface blocks for each stage - Enumerate active variables in interfaces between separable program objects ARB_ES3_compatibility - features not previously present in OpenGL - Brings EAC and ETC2 texture compression formats Copyright Khronos Group, Page 33

34 GLSL 4.3 new functionality ARB_shader_image_size - Query size of an image in a shader ARB_explicit_uniform_location - Set location of a default-block uniform in the shader ARB_texture_query_levels - Query number of mipmap levels accessible through a sampler uniform ARB_arrays_of_arrays - Allows multi-dimensional arrays in GLSL. float f[4][3]; ARB_fragment_layer_viewport - gl_layer and gl_viewportindex now available to fragment shader Copyright Khronos Group, Page 34

35 Texture object state Sampler Parameters TEXTURE_BORDER_COLOR TEXTURE_COMPARE_{FUNC,MODE} TEXTURE_LOD_BIAS TEXTURE_{MAX,MIN}_LOD TEXTURE_{MAG,MIN}_FILTER TEXTURE_WRAP_{S,T,R} Texture View Parameters Texture Object Sampler Parameters (mutable) Texture Parameters Texture View Parameters (immutable) <target> TEXTURE_INTERNAL_FORMAT TEXTURE_VIEW_{MIN,NUM}_LEVEL TEXTURE_VIEW_{MIN,NUM}_LAYER TEXTURE_IMMUTABLE_LEVELS TEXTURE_SHARED_SIZE TEXTURE_{RED,GREEN,BLUE,ALPHA,DEPTH,STENCIL}_SIZE TEXTURE_{RED,GREEN,BLUE,ALPHA,DEPTH}_TYPE IMAGE_FORMAT_COMPATIBILITY_TYPE Texture Parameters TEXTURE_WIDTH TEXTURE_HEIGHT TEXTURE_DEPTH TEXTURE_SAMPLES TEXTURE_FIXED_SAMPLE_LOCATIONS TEXTURE_COMPRESSED TEXTURE_COMPRESSED_IMAGE_SIZE TEXTURE_IMMUTABLE_FORMAT TEXTURE_SWIZZLE_{R,G,B,A} TEXTURE_MAX_LEVEL TEXTURE_BASE_LEVEL DEPTH_STENCIL_TEXTURE_MODE State is immutable, unless listed in italics Copyright Khronos Group, Page 35

OpenGL BOF Siggraph 2011

OpenGL BOF Siggraph 2011 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

More information

GDC 2014 Barthold Lichtenbelt OpenGL ARB chair

GDC 2014 Barthold Lichtenbelt OpenGL ARB chair GDC 2014 Barthold Lichtenbelt OpenGL ARB chair Agenda OpenGL 4.4, news and updates - Barthold Lichtenbelt, NVIDIA Low Overhead Rendering with OpenGL - Cass Everitt, NVIDIA Copyright Khronos Group, 2010

More information

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

Get the most out of the new OpenGL ES 3.1 API. Hans-Kristian Arntzen Software Engineer Get the most out of the new OpenGL ES 3.1 API Hans-Kristian Arntzen Software Engineer 1 Content Compute shaders introduction Shader storage buffer objects Shader image load/store Shared memory Atomics

More information

Introduction to OpenGL ES 3.0

Introduction to OpenGL ES 3.0 Introduction to OpenGL ES 3.0 Eisaku Ohbuchi Digital Media Professionals Inc. 2012 Digital Media Professionals Inc. All rights reserved. 12/Sep/2012 Page 1 Agenda DMP overview (quick!) OpenGL ES 3.0 update

More information

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

Compute Shaders. Christian Hafner. Institute of Computer Graphics and Algorithms Vienna University of Technology Compute Shaders Christian Hafner Institute of Computer Graphics and Algorithms Vienna University of Technology Overview Introduction Thread Hierarchy Memory Resources Shared Memory & Synchronization Christian

More information

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

Why modern versions of OpenGL should be used Some useful API commands and extensions Michał Radziszewski Why modern versions of OpenGL should be used Some useful API commands and extensions Timer Query EXT Direct State Access (DSA) Geometry Programs Position in pipeline Rendering wireframe

More information

Working with Metal Overview

Working with Metal Overview Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

A Review of OpenGL Compute Shaders

A Review of OpenGL Compute Shaders 1 A Review of OpenGL Compute Shaders This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License Mike Bailey mjb@cs.oregonstate.edu OpenglComputeShaders.pptx

More information

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

Grafica Computazionale: Lezione 30. Grafica Computazionale. Hiding complexity... ;) Introduction to OpenGL. lezione30 Introduction to OpenGL Grafica Computazionale: Lezione 30 Grafica Computazionale lezione30 Introduction to OpenGL Informatica e Automazione, "Roma Tre" May 20, 2010 OpenGL Shading Language Introduction to OpenGL OpenGL (Open

More information

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer Real-Time Rendering (Echtzeitgraphik) Michael Wimmer wimmer@cg.tuwien.ac.at Walking down the graphics pipeline Application Geometry Rasterizer What for? Understanding the rendering pipeline is the key

More information

OpenGL Compute Shaders

OpenGL Compute Shaders 1 OpenGL Compute Shaders Mike Bailey mjb@cs.oregonstate.edu compute.shader.pptx OpenGL Compute Shader the Basic Idea 2 A Shader Program, with only a Compute Shader in it Application Invokes the Compute

More information

OpenGL Status - November 2013 G-Truc Creation

OpenGL Status - November 2013 G-Truc Creation OpenGL Status - November 2013 G-Truc Creation Vendor NVIDIA AMD Intel Windows Apple Release date 02/10/2013 08/11/2013 30/08/2013 22/10/2013 Drivers version 331.10 beta 13.11 beta 9.2 10.18.10.3325 MacOS

More information

Shaders. Slide credit to Prof. Zwicker

Shaders. Slide credit to Prof. Zwicker Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?

More information

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

OpenGL 3 Overview. Barthold Lichtenbelt, NVIDIA OpenGL ARB Chair. Copyright Khronos Group, Page 1 OpenGL 3 Overview Barthold Lichtenbelt, NVIDIA OpenGL ARB Chair Copyright Khronos Group, 2009 - Page 1 Agenda OpenGL 3.1 announcement and OpenGL 3 overview - Barthold Lichtenbelt, NVIDIA OpenGL 2 vs OpenGL

More information

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

Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1 Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Ecosystem @neilt3d Copyright Khronos Group 2015 - Page 1 Copyright Khronos Group 2015 - Page 2 Khronos Connects Software to Silicon

More information

Programmable Graphics Hardware

Programmable Graphics Hardware Programmable Graphics Hardware Outline 2/ 49 A brief Introduction into Programmable Graphics Hardware Hardware Graphics Pipeline Shading Languages Tools GPGPU Resources Hardware Graphics Pipeline 3/ 49

More information

TEGRA K1 による GPU コンピューティング

TEGRA K1 による GPU コンピューティング TEGRA K1 による GPU コンピューティング COMPUTE WITH TEGRA K1 馬路徹 シニア ソリューション アーキテクト NVIDIA AGENDA Introducing Tegra K1 Tegra K1 Compute Software Capabilities OpenGL GLSL OpenCL CUDA/Unified Memory Google Renderscript

More information

Dave Shreiner, ARM March 2009

Dave Shreiner, ARM March 2009 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

More information

Copyright Khronos Group Page 1

Copyright Khronos Group Page 1 Gaming Market Briefing Overview of APIs GDC March 2016 Neil Trevett Khronos President NVIDIA Vice President Developer Ecosystem ntrevett@nvidia.com @neilt3d Copyright Khronos Group 2016 - Page 1 Copyright

More information

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

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský Real - Time Rendering Graphics pipeline Michal Červeňanský Juraj Starinský Overview History of Graphics HW Rendering pipeline Shaders Debugging 2 History of Graphics HW First generation Second generation

More information

Graphics Processing Unit Architecture (GPU Arch)

Graphics Processing Unit Architecture (GPU Arch) Graphics Processing Unit Architecture (GPU Arch) With a focus on NVIDIA GeForce 6800 GPU 1 What is a GPU From Wikipedia : A specialized processor efficient at manipulating and displaying computer graphics

More information

SIGGRAPH Briefing August 2014

SIGGRAPH Briefing August 2014 Copyright Khronos Group 2014 - Page 1 SIGGRAPH Briefing August 2014 Neil Trevett VP Mobile Ecosystem, NVIDIA President, Khronos Copyright Khronos Group 2014 - Page 2 Significant Khronos API Ecosystem Advances

More information

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

Copyright Khronos Group 2012 Page 1. Teaching GL. Dave Shreiner Director, Graphics and GPU Computing, ARM 1 December 2012 Copyright Khronos Group 2012 Page 1 Teaching GL Dave Shreiner Director, Graphics and GPU Computing, ARM 1 December 2012 Copyright Khronos Group 2012 Page 2 Agenda Overview of OpenGL family of APIs Comparison

More information

GPU Memory Model Overview

GPU Memory Model Overview GPU Memory Model Overview John Owens University of California, Davis Department of Electrical and Computer Engineering Institute for Data Analysis and Visualization SciDAC Institute for Ultrascale Visualization

More information

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

Mali Developer Resources. Kevin Ho ARM Taiwan FAE Mali Developer Resources Kevin Ho ARM Taiwan FAE ARM Mali Developer Tools Software Development SDKs for OpenGL ES & OpenCL OpenGL ES Emulators Shader Development Studio Shader Library Asset Creation Texture

More information

Getting the Most Out of OpenGL ES. Daniele Di Donato, Tom Olson, and Dave Shreiner ARM

Getting the Most Out of OpenGL ES. Daniele Di Donato, Tom Olson, and Dave Shreiner ARM Getting the Most Out of OpenGL ES Daniele Di Donato, Tom Olson, and Dave Shreiner ARM 1 What This Talk is About What s new in OpenGL ES Introducing OpenGL ES 3.1! Fun with compute shaders and DrawIndirect

More information

CS427 Multicore Architecture and Parallel Computing

CS427 Multicore Architecture and Parallel Computing CS427 Multicore Architecture and Parallel Computing Lecture 6 GPU Architecture Li Jiang 2014/10/9 1 GPU Scaling A quiet revolution and potential build-up Calculation: 936 GFLOPS vs. 102 GFLOPS Memory Bandwidth:

More information

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved Avi Shapira Graphic Remedy Copyright Khronos Group, 2009 - Page 1 2004 2009 Graphic Remedy. All Rights Reserved Debugging and profiling 3D applications are both hard and time consuming tasks Companies

More information

NVIDIA Parallel Nsight. Jeff Kiel

NVIDIA Parallel Nsight. Jeff Kiel NVIDIA Parallel Nsight Jeff Kiel Agenda: NVIDIA Parallel Nsight Programmable GPU Development Presenting Parallel Nsight Demo Questions/Feedback Programmable GPU Development More programmability = more

More information

CS195V Week 6. Image Samplers and Atomic Operations

CS195V Week 6. Image Samplers and Atomic Operations CS195V Week 6 Image Samplers and Atomic Operations Administrata Warp is due today! NBody should go out soon Due in three weeks instead of two Slightly larger in scope First week and a half we be spent

More information

Free Downloads OpenGL ES 3.0 Programming Guide

Free Downloads OpenGL ES 3.0 Programming Guide Free Downloads OpenGL ES 3.0 Programming Guide OpenGLÂ Â ESâ is the industryâ s leading software interface and graphics library for rendering sophisticated 3D graphics on handheld and embedded devices.

More information

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair OpenGL ES in the Mobile Graphics Ecosystem Tom Olson OpenGL ES working group chair Director, Graphics Research, ARM Ltd 1 Outline Why Mobile Graphics? OpenGL ES Overview Getting Started with OpenGL ES

More information

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

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak OpenGL SUPERBIBLE Fifth Edition Comprehensive Tutorial and Reference Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San

More information

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

Graphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university Graphics Architectures and OpenCL Michael Doggett Department of Computer Science Lund university Overview Parallelism Radeon 5870 Tiled Graphics Architectures Important when Memory and Bandwidth limited

More information

OpenGL Essentials Training

OpenGL Essentials Training OpenGL Essentials Training 3-day session Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending and

More information

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

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský Real - Time Rendering Pipeline optimization Michal Červeňanský Juraj Starinský Motivation Resolution 1600x1200, at 60 fps Hw power not enough Acceleration is still necessary 3.3.2010 2 Overview Application

More information

Achieving High-performance Graphics on Mobile With the Vulkan API

Achieving High-performance Graphics on Mobile With the Vulkan API Achieving High-performance Graphics on Mobile With the Vulkan API Marius Bjørge Graphics Research Engineer GDC 2016 Agenda Overview Command Buffers Synchronization Memory Shaders and Pipelines Descriptor

More information

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

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1 Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem Copyright Khronos Group 2015 - Page 1 Khronos Connects Software to Silicon Open Consortium creating ROYALTY-FREE,

More information

PERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE

PERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE April 4-7, 2016 Silicon Valley PERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE Pradeep Chandrahasshenoy, Automotive Solutions Architect, NVIDIA Stefan Schoenefeld, ProViz DevTech, NVIDIA 4 th April 2016

More information

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

CS GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1. Markus Hadwiger, KAUST CS 380 - GPU and GPGPU Programming Lecture 7: Shading and Compute APIs 1 Markus Hadwiger, KAUST Reading Assignment #4 (until Feb. 23) Read (required): Programming Massively Parallel Processors book, Chapter

More information

Vulkan Launch Webinar 18 th February Copyright Khronos Group Page 1

Vulkan Launch Webinar 18 th February Copyright Khronos Group Page 1 Vulkan Launch Webinar 18 th February 2016 Copyright Khronos Group 2016 - Page 1 Copyright Khronos Group 2016 - Page 2 The Vulkan Launch Webinar Is About to Start! Kathleen Mattson - Webinar MC, Khronos

More information

EECS 487: Interactive Computer Graphics

EECS 487: Interactive Computer Graphics EECS 487: Interactive Computer Graphics Lecture 21: Overview of Low-level Graphics API Metal, Direct3D 12, Vulkan Console Games Why do games look and perform so much better on consoles than on PCs with

More information

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

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012 CS450/550 Pipeline Architecture Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012 0 Objectives Learn the basic components of a graphics system Introduce the OpenGL pipeline

More information

Rendering Objects. Need to transform all geometry then

Rendering Objects. Need to transform all geometry then Intro to OpenGL Rendering Objects Object has internal geometry (Model) Object relative to other objects (World) Object relative to camera (View) Object relative to screen (Projection) Need to transform

More information

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

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 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 calls to load vertex data to vertex buffers calls to load

More information

GPU Memory Model. Adapted from:

GPU Memory Model. Adapted from: GPU Memory Model Adapted from: Aaron Lefohn University of California, Davis With updates from slides by Suresh Venkatasubramanian, University of Pennsylvania Updates performed by Gary J. Katz, University

More information

Parallel Programming for Graphics

Parallel Programming for Graphics Beyond Programmable Shading Course ACM SIGGRAPH 2010 Parallel Programming for Graphics Aaron Lefohn Advanced Rendering Technology (ART) Intel What s In This Talk? Overview of parallel programming models

More information

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

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York API Background Prof. George Wolberg Dept. of Computer Science City College of New York Objectives Graphics API history OpenGL API OpenGL function format Immediate Mode vs Retained Mode Examples The Programmer

More information

GeForce4. John Montrym Henry Moreton

GeForce4. John Montrym Henry Moreton GeForce4 John Montrym Henry Moreton 1 Architectural Drivers Programmability Parallelism Memory bandwidth 2 Recent History: GeForce 1&2 First integrated geometry engine & 4 pixels/clk Fixed-function transform,

More information

Lecture 6: Texture. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Lecture 6: Texture. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011) Lecture 6: Texture Kayvon Fatahalian CMU 15-869: Graphics and Imaging Architectures (Fall 2011) Today: texturing! Texture filtering - Texture access is not just a 2D array lookup ;-) Memory-system implications

More information

Lecture 2. Shaders, GLSL and GPGPU

Lecture 2. Shaders, GLSL and GPGPU Lecture 2 Shaders, GLSL and GPGPU Is it interesting to do GPU computing with graphics APIs today? Lecture overview Why care about shaders for computing? Shaders for graphics GLSL Computing with shaders

More information

Unleash the Benefits of OpenGL ES 3.1 and the Android Extension Pack. Nathan Li SGL & Staff Engineer, ARM

Unleash the Benefits of OpenGL ES 3.1 and the Android Extension Pack. Nathan Li SGL & Staff Engineer, ARM Unleash the Benefits of OpenGL ES 3.1 and the Android Extension Pack Nathan Li SGL & Staff Engineer, ARM 1 Topics OpenGL ES 3.1 Compute shader techniques and best practices Android Extension Pack Applications

More information

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

Standards for WebVR. Neil Trevett. Khronos President Vice President Mobile Content, Standards for WebVR Neil Trevett Khronos President Vice President Mobile Content, NVIDIA ntrevett@nvidia.com, @neilt3d October 2016 Copyright Khronos Group 2016 - Page 1 Khronos Open Standards Software

More information

Profiling and Debugging Games on Mobile Platforms

Profiling and Debugging Games on Mobile Platforms Profiling and Debugging Games on Mobile Platforms Lorenzo Dal Col Senior Software Engineer, Graphics Tools Gamelab 2013, Barcelona 26 th June 2013 Agenda Introduction to Performance Analysis with ARM DS-5

More information

Graphics and Imaging Architectures

Graphics and Imaging Architectures Graphics and Imaging Architectures Kayvon Fatahalian http://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/ About Kayvon New faculty, just arrived from Stanford Dissertation: Evolving real-time graphics

More information

Programming with OpenGL Shaders I. Adapted From: 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 Programming with OpenGL Shaders I Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico 0 Objectives Shader Basics Simple Shaders Vertex shader Fragment shaders 1 Vertex

More information

OpenGL Compute Shaders

OpenGL Compute Shaders 1 OpenGL Compute Shaders Mike Bailey mjb@cs.oregonstate.edu compute.shader.pptx OpenGL Compute Shader the Basic Idea 2 A Shader Program, with only a Compute Shader in it Application Invokes the Compute

More information

CS770/870 Fall 2015 Advanced GLSL

CS770/870 Fall 2015 Advanced GLSL Expanded Graphics Pipeline CS770/870 Fall 2015 Advanced GLSL Geometry definition Shaders can actually be inserted in more places in pipeline Vertex and fragment shaders are most important Vertex shader

More information

Programmable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes

Programmable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes Last Time? Programmable GPUS Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes frame buffer depth buffer stencil buffer Stencil Buffer Homework 4 Reading for Create some geometry "Rendering

More information

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

OpenGL ES 2.0 : Start Developing Now. Dan Ginsburg Advanced Micro Devices, Inc. OpenGL ES 2.0 : Start Developing Now Dan Ginsburg Advanced Micro Devices, Inc. Agenda OpenGL ES 2.0 Brief Overview Tools OpenGL ES 2.0 Emulator RenderMonkey w/ OES 2.0 Support OpenGL ES 2.0 3D Engine Case

More information

GPGPU on Mobile Devices

GPGPU on Mobile Devices GPGPU on Mobile Devices Introduction Addressing GPGPU for very mobile devices Tablets Smartphones Introduction Why dedicated GPUs in mobile devices? Gaming Physics simulation for realistic effects 3D-GUI

More information

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

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST CS 380 - GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1 Markus Hadwiger, KAUST Reading Assignment #2 (until Feb. 17) Read (required): GLSL book, chapter 4 (The OpenGL Programmable

More information

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

Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem. Copyright Khronos Group Page 1 Press Briefing SIGGRAPH 2015 Neil Trevett Khronos President NVIDIA Vice President Mobile Ecosystem Copyright Khronos Group 2015 - Page 1 Khronos Connects Software to Silicon Open Consortium creating ROYALTY-FREE,

More information

GPU Architecture. Michael Doggett Department of Computer Science Lund university

GPU Architecture. Michael Doggett Department of Computer Science Lund university GPU Architecture Michael Doggett Department of Computer Science Lund university GPUs from my time at ATI R200 Xbox360 GPU R630 R610 R770 Let s start at the beginning... Graphics Hardware before GPUs 1970s

More information

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

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI Tutorial on GPU Programming #2 Joong-Youn Lee Supercomputing Center, KISTI Contents Graphics Pipeline Vertex Programming Fragment Programming Introduction to Cg Language Graphics Pipeline The process to

More information

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

Programming with OpenGL Part 3: Shaders. Ed Angel Professor of Emeritus of Computer Science University of New Mexico Programming with OpenGL Part 3: Shaders Ed Angel Professor of Emeritus of Computer Science University of New Mexico 1 Objectives Simple Shaders - Vertex shader - Fragment shaders Programming shaders with

More information

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

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics Why GPU? Chapter 1 Graphics Hardware Graphics Processing Unit (GPU) is a Subsidiary hardware With massively multi-threaded many-core Dedicated to 2D and 3D graphics Special purpose low functionality, high

More information

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload)

Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Lecture 2: Parallelizing Graphics Pipeline Execution (+ Basics of Characterizing a Rendering Workload) Visual Computing Systems Today Finishing up from last time Brief discussion of graphics workload metrics

More information

A Trip Down The (2011) Rasterization Pipeline

A Trip Down The (2011) Rasterization Pipeline A Trip Down The (2011) Rasterization Pipeline Aaron Lefohn - Intel / University of Washington Mike Houston AMD / Stanford 1 This talk Overview of the real-time rendering pipeline available in ~2011 corresponding

More information

OpenGL with Qt 5. Qt Developer Days, Berlin Presented by Sean Harmer. Produced by Klarälvdalens Datakonsult AB

OpenGL with Qt 5. Qt Developer Days, Berlin Presented by Sean Harmer. Produced by Klarälvdalens Datakonsult AB Qt Developer Days, Berlin 2012 Presented by Sean Harmer Produced by Klarälvdalens Datakonsult AB Material based on Qt 5.0, created on November 9, 2012 QtQuick 2 and OpenGL The Future Module: 2/18 QtQuick

More information

Bifrost - The GPU architecture for next five billion

Bifrost - The GPU architecture for next five billion Bifrost - The GPU architecture for next five billion Hessed Choi Senior FAE / ARM ARM Tech Forum June 28 th, 2016 Vulkan 2 ARM 2016 What is Vulkan? A 3D graphics API for the next twenty years Logical successor

More information

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

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1 X. GPU Programming 320491: Advanced Graphics - Chapter X 1 X.1 GPU Architecture 320491: Advanced Graphics - Chapter X 2 GPU Graphics Processing Unit Parallelized SIMD Architecture 112 processing cores

More information

Vulkan (including Vulkan Fast Paths)

Vulkan (including Vulkan Fast Paths) Vulkan (including Vulkan Fast Paths) Łukasz Migas Software Development Engineer WS Graphics Let s talk about OpenGL (a bit) History 1.0-1992 1.3-2001 multitexturing 1.5-2003 vertex buffer object 2.0-2004

More information

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller Entertainment Graphics: Virtual Realism for the Masses CSE 591: GPU Programming Introduction Computer games need to have: realistic appearance of characters and objects believable and creative shading,

More information

Motivation MGB Agenda. Compression. Scalability. Scalability. Motivation. Tessellation Basics. DX11 Tessellation Pipeline

Motivation MGB Agenda. Compression. Scalability. Scalability. Motivation. Tessellation Basics. DX11 Tessellation Pipeline MGB 005 Agenda Motivation Tessellation Basics DX Tessellation Pipeline Instanced Tessellation Instanced Tessellation in DX0 Displacement Mapping Content Creation Compression Motivation Save memory and

More information

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

CS4621/5621 Fall Computer Graphics Practicum Intro to OpenGL/GLSL CS4621/5621 Fall 2015 Computer Graphics Practicum Intro to OpenGL/GLSL Professor: Kavita Bala Instructor: Nicolas Savva with slides from Balazs Kovacs, Eston Schweickart, Daniel Schroeder, Jiang Huang

More information

Particle Systems with Compute & Geometry Shader. Institute of Computer Graphics and Algorithms Vienna University of Technology

Particle Systems with Compute & Geometry Shader. Institute of Computer Graphics and Algorithms Vienna University of Technology Particle Systems with Compute & Geometry Shader Institute of Computer Graphics and Algorithms Vienna University of Technology Motivation https://www.youtube.com/watch?v=spwbwtu9xyk 24.11.2016 RTR 2016

More information

Ciril Bohak. - INTRODUCTION TO WEBGL

Ciril Bohak. - INTRODUCTION TO WEBGL 2016 Ciril Bohak ciril.bohak@fri.uni-lj.si - INTRODUCTION TO WEBGL What is WebGL? WebGL (Web Graphics Library) is an implementation of OpenGL interface for cmmunication with graphical hardware, intended

More information

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

Graphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University Graphics Programming Computer Graphics, VT 2016 Lecture 2, Chapter 2 Fredrik Nysjö Centre for Image analysis Uppsala University Graphics programming Typically deals with How to define a 3D scene with a

More information

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University CSE 591/392: GPU Programming Introduction Klaus Mueller Computer Science Department Stony Brook University First: A Big Word of Thanks! to the millions of computer game enthusiasts worldwide Who demand

More information

Graphics Hardware. Instructor Stephen J. Guy

Graphics Hardware. Instructor Stephen J. Guy Instructor Stephen J. Guy Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability! Programming Examples Overview What is a GPU Evolution of GPU GPU Design Modern Features Programmability!

More information

Lecture 13: OpenGL Shading Language (GLSL)

Lecture 13: OpenGL Shading Language (GLSL) Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 18, 2018 1/56 Motivation } Last week, we discussed the many of the new tricks in Graphics require low-level access to the Graphics

More information

OpenGL Shading Language Hints/Kinks

OpenGL Shading Language Hints/Kinks OpenGL Shading Language Hints/Kinks Bill Licea-Kane AMD Copyright Khronos Group, 2011 - Page 1 OpenGL Shading Language Hints/Kinks Made in the Shade A brief WABAC Machine moment Our world is no longer

More information

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

The Application Stage. The Game Loop, Resource Management and Renderer Design 1 The Application Stage The Game Loop, Resource Management and Renderer Design Application Stage Responsibilities 2 Set up the rendering pipeline Resource Management 3D meshes Textures etc. Prepare data

More information

Vulkan on Mobile. Daniele Di Donato, ARM GDC 2016

Vulkan on Mobile. Daniele Di Donato, ARM GDC 2016 Vulkan on Mobile Daniele Di Donato, ARM GDC 2016 Outline Vulkan main features Mapping Vulkan Key features to ARM CPUs Mapping Vulkan Key features to ARM Mali GPUs 4 Vulkan Good match for mobile and tiling

More information

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker CMSC427 Advanced shading getting global illumination by local methods Credit: slides Prof. Zwicker Topics Shadows Environment maps Reflection mapping Irradiance environment maps Ambient occlusion Reflection

More information

CS770/870 Spring 2017 Open GL Shader Language GLSL

CS770/870 Spring 2017 Open GL Shader Language GLSL Preview CS770/870 Spring 2017 Open GL Shader Language GLSL Review traditional graphics pipeline CPU/GPU mixed pipeline issues Shaders GLSL graphics pipeline Based on material from Angel and Shreiner, Interactive

More information

CS770/870 Spring 2017 Open GL Shader Language GLSL

CS770/870 Spring 2017 Open GL Shader Language GLSL CS770/870 Spring 2017 Open GL Shader Language GLSL Based on material from Angel and Shreiner, Interactive Computer Graphics, 6 th Edition, Addison-Wesley, 2011 Bailey and Cunningham, Graphics Shaders 2

More information

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

Lecture 5 Vertex and Fragment Shaders-1. CITS3003 Graphics & Animation Lecture 5 Vertex and Fragment Shaders-1 CITS3003 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Objectives The rendering pipeline and the shaders Data

More information

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

OpenGL on Android. Lecture 7. Android and Low-level Optimizations Summer School. 27 July 2015 OpenGL on Android Lecture 7 Android and Low-level Optimizations Summer School 27 July 2015 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this

More information

Information Coding / Computer Graphics, ISY, LiTH. Compute shaders!! The future of GPU computing or a late rip-off of Direct Compute?

Information Coding / Computer Graphics, ISY, LiTH. Compute shaders!! The future of GPU computing or a late rip-off of Direct Compute? Compute shaders The future of GPU computing or a late rip-off of Direct Compute? Compute shaders Previously a Microsoft concept, Direct Compute Now also in OpenGL, new kind of shader since the recent OpenGL

More information

GLSL Overview: Creating a Program

GLSL Overview: Creating a Program 1. Create the OpenGL application GLSL Overview: Creating a Program Primarily concerned with drawing Preferred approach uses buffer objects All drawing done in terms of vertex arrays Programming style differs

More information

Octree-Based Sparse Voxelization for Real-Time Global Illumination. Cyril Crassin NVIDIA Research

Octree-Based Sparse Voxelization for Real-Time Global Illumination. Cyril Crassin NVIDIA Research Octree-Based Sparse Voxelization for Real-Time Global Illumination Cyril Crassin NVIDIA Research Voxel representations Crane et al. (NVIDIA) 2007 Allard et al. 2010 Christensen and Batali (Pixar) 2004

More information

December Copyright Khronos Group, Page 1

December Copyright Khronos Group, Page 1 December 2008 Copyright Khronos Group, 2008 - Page 1 Announced at SIGGRAPH August 2008 - Supported by AMD, Apple, Intel, NVIDIA, S3, Blizzard, TransGaming, and others State-of-the-art support for latest

More information

Programming Graphics Hardware

Programming Graphics Hardware Tutorial 5 Programming Graphics Hardware Randy Fernando, Mark Harris, Matthias Wloka, Cyril Zeller Overview of the Tutorial: Morning 8:30 9:30 10:15 10:45 Introduction to the Hardware Graphics Pipeline

More information

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

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside CS230 : Computer Graphics Lecture 4 Tamar Shinar Computer Science & Engineering UC Riverside Shadows Shadows for each pixel do compute viewing ray if ( ray hits an object with t in [0, inf] ) then compute

More information

frame buffer depth buffer stencil buffer

frame buffer depth buffer stencil buffer Final Project Proposals Programmable GPUS You should all have received an email with feedback Just about everyone was told: Test cases weren t detailed enough Project was possibly too big Motivation could

More information

Parallel Programming on Larrabee. Tim Foley Intel Corp

Parallel Programming on Larrabee. Tim Foley Intel Corp Parallel Programming on Larrabee Tim Foley Intel Corp Motivation This morning we talked about abstractions A mental model for GPU architectures Parallel programming models Particular tools and APIs This

More information

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June

Optimizing and Profiling Unity Games for Mobile Platforms. Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June Optimizing and Profiling Unity Games for Mobile Platforms Angelo Theodorou Senior Software Engineer, MPG Gamelab 2014, 25 th -27 th June 1 Agenda Introduction ARM and the presenter Preliminary knowledge

More information

Lecture 4: Geometry Processing. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011)

Lecture 4: Geometry Processing. Kayvon Fatahalian CMU : Graphics and Imaging Architectures (Fall 2011) Lecture 4: Processing Kayvon Fatahalian CMU 15-869: Graphics and Imaging Architectures (Fall 2011) Today Key per-primitive operations (clipping, culling) Various slides credit John Owens, Kurt Akeley,

More information