Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

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

Siggraph Agenda. Usability & Productivity. FX Composer 2.5. Usability & Productivity 9/12/2008 9:16 AM

Dave Shreiner, ARM March 2009

Squeezing Performance out of your Game with ATI Developer Performance Tools and Optimization Techniques

NVIDIA Parallel Nsight. Jeff Kiel

User Guide. GLExpert NVIDIA Performance Toolkit

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

printf Debugging Examples

General Purpose Computation (CAD/CAM/CAE) on the GPU (a.k.a. Topics in Manufacturing)

GLExpert NVIDIA Performance Toolkit

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

Graphics Hardware. Instructor Stephen J. Guy

Working with Metal Overview

Rendering Objects. Need to transform all geometry then

PERFORMANCE OPTIMIZATIONS FOR AUTOMOTIVE SOFTWARE

Performance OpenGL Programming (for whatever reason)

Copyright Khronos Group Page 1

Graphics Processing Unit Architecture (GPU Arch)

Could you make the XNA functions yourself?

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

Programmable Graphics Hardware

Ciril Bohak. - INTRODUCTION TO WEBGL

Optimisation. CS7GV3 Real-time Rendering

Enabling the Next Generation of Computational Graphics with NVIDIA Nsight Visual Studio Edition. Jeff Kiel Director, Graphics Developer Tools

Spring 2011 Prof. Hyesoon Kim

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

Hardware-driven visibility culling

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

Windowing System on a 3D Pipeline. February 2005

E.Order of Operations

GPU Memory Model. Adapted from:

Pipeline Operations. CS 4620 Lecture 14

Spring 2009 Prof. Hyesoon Kim

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

Bringing AAA graphics to mobile platforms. Niklas Smedberg Senior Engine Programmer, Epic Games

NVIDIA Developer Tools for Graphics and PhysX

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

Lecture 13: OpenGL Shading Language (GLSL)

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

OpenGL Programmable Shaders

Next-Generation Graphics on Larrabee. Tim Foley Intel Corp

Lecture 2. Shaders, GLSL and GPGPU

Graphics Performance Optimisation. John Spitzer Director of European Developer Technology

Programming Graphics Hardware

Mali Developer Resources. Kevin Ho ARM Taiwan FAE

OpenGL Status - November 2013 G-Truc Creation

EECS 487: Interactive Computer Graphics

1.2.3 The Graphics Hardware Pipeline

Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary

OpenGL Essentials Training

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

Rasterization Overview

Vulkan Multipass mobile deferred done right

2.11 Particle Systems

GeForce3 OpenGL Performance. John Spitzer

Evolution of GPUs Chris Seitz

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

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

Mali-400 MP: A Scalable GPU for Mobile Devices Tom Olson

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

Raise your VR game with NVIDIA GeForce Tools

PowerVR Series5. Architecture Guide for Developers

Profiling and Debugging Games on Mobile Platforms

CS770/870 Spring 2017 Open GL Shader Language GLSL

CS770/870 Spring 2017 Open GL Shader Language GLSL

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

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

GPU Architecture and Function. Michael Foster and Ian Frasch

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

Introduction to Shaders.

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

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

NVIDIA Authoring Tools for

Shaders. Slide credit to Prof. Zwicker

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

Coding OpenGL ES 3.0 for Better Graphics Quality

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center

Vulkan: Architecture positive How Vulkan maps to PowerVR GPUs Kevin sun Lead Developer Support Engineer, APAC PowerVR Graphics.

ArcGIS Runtime: Maximizing Performance of Your Apps. Will Jarvis and Ralf Gottschalk

GPU Memory Model Overview

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

Spring 2009 Prof. Hyesoon Kim

PowerVR Performance Recommendations. The Golden Rules

Chapter 1 Introduction

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Getting fancy with texture mapping (Part 2) CS559 Spring Apr 2017

Computer Graphics (CS 543) Lecture 1 (Part 1): Introduction to Computer Graphics

CSE4030 Introduction to Computer Graphics

Mikkel Gjøl Graphics

The Rendering Pipeline (1)

MMGD0206 Computer Graphics. Chapter 1 Development of Computer Graphics : History

CUDA Development Using NVIDIA Nsight, Eclipse Edition. David Goodwin

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0

Deferred Splatting. Gaël GUENNEBAUD Loïc BARTHE Mathias PAULIN IRIT UPS CNRS TOULOUSE FRANCE.

The Graphics Pipeline

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

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

Architectures. Michael Doggett Department of Computer Science Lund University 2009 Tomas Akenine-Möller and Michael Doggett 1

Mattan Erez. The University of Texas at Austin

Baback Elmieh, Software Lead James Ritts, Profiler Lead Qualcomm Incorporated Advanced Content Group

Transcription:

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 find it extremely hard to deliver a robust and bug-free 3D application It is almost impossible to optimize a 3D application to fully utilize the graphic system performance Copyright Khronos Group, 2009 - Page 2

Introduces new deprecation model - OpenGL 3.0 marks features as deprecated - OpenGL 3.1 removes most of these features Requires adjusting and writing code to match new OpenGL standards - Be aware of standard changes - Locate deprecated functions and behaviors - Find the best alternative supported by future standards Copyright Khronos Group, 2009 - Page 3

Application is sending API calls Something happens here! Copyright Khronos Group, 2009 - Page 4

Application is sending API calls Copyright Khronos Group, 2009 - Page 5

OpenGL Debugger, Profiler and Memory Analyzer gdebugger Locates: - Graphic system performance bottlenecks - Graphic memory leaks - Redundant OpenGL function calls - Software fallbacks - OpenGL errors - Detected errors - Deprecated functions - And more Copyright Khronos Group, 2009 - Page 6

Improves application quality Optimizes application performance Reduces debugging and profiling time Conforms to future OpenGL versions Helps deploying on multiple platforms Shortens time to market Copyright Khronos Group, 2009 - Page 7

Windows (also for OpenGL ES) Mac OS X Linux Copyright Khronos Group, 2009 - Page 8

Copyright Khronos Group, 2009 - Page 9

GUI layouts Toolbars and commands Views Viewers Copyright Khronos Group, 2009 - Page 10

gdebugger can automatically break on: OpenGL errors gdebugger detected errors: a unique and more comprehensive errors detection mechanism Graphic memory leaks Redundant functions NVIDIA GLExpert driver reports Software fallbacks Deprecated function calls Copyright Khronos Group, 2009 - Page 11

Breaks the application run on GLExpert reports Views the call stack and source code that led to the GLExpert report Sets the GLExpert report areas and message details from within gdebugger Copyright Khronos Group, 2009 - Page 12

View the call stack and source code that led to the error / OpenGL function call Copyright Khronos Group, 2009 - Page 13

Displays the number of times each OpenGL function was called Display redundant state changes Break on redundant state change Copyright Khronos Group, 2009 - Page 14

Displays information about graphic memory leaks and graphic memory allocated objects Use the Object Creation Calls to see the scenario that led to each object's creation Copyright Khronos Group, 2009 - Page 15

Displays all texture types, FBOs, pbuffers, Depth, Stencil, etc. Copyright Khronos Group, 2009 - Page 16

Displays shader's source code Displays programs active uniform values Edit shader's source code, re-compile, link and validate "on the fly" Copyright Khronos Group, 2009 - Page 17

Copyright Khronos Group, 2009 - Page 18

Find and remove: Redundant state changes Repeatedly turning on and off the same OpenGL mechanisms Redundant OpenGL API calls Immediate mode rendering etc. Do not invest time in removing calls that do not seem to have significant impact on render performance! Copyright Khronos Group, 2009 - Page 19

1. Remove redundant calls and state changes 2. Identify a performance bottleneck 3. Optimize the pipeline stage that causes the bottleneck Repeat 2 and 3 until reaching the desired performance level or until the performance cannot be improved anymore If you cannot improve performance anymore, you can add workload to pipeline stages that are not fully utilized (to improve visual effects / visual fidelity) Copyright Khronos Group, 2009 - Page 20

The pipeline runs as fast as its slowest stage! 35 fps 10 fps 10 fps App Driver Geometric Operations Textures data fetch Textures data fetch Raster Operations Raster Operations Frame Buffer Copyright Khronos Group, 2009 - Page 21

Copyright Khronos Group, 2009 - Page 22

gdebugger ATI NVIDIA S3 Graphics Mac OpenGL OS Frames / sec % Hardware Busy % GPU Idle Video memory GPU Core Utilization CPU utilization # OGL function calls % TCL Busy (Vertex Processor) % Driver Waiting Occlusion GPU Memory Utilization CPU user mode utilization # Texture objects % VTX Fetch Busy % Vertex Shader Busy Occlusion pass GPU Video Engine CPU privilege mode utilization # Loaded texels # Pixel Passed Z % Pixel Shader Busy Time stamp texturecount Available physical memory * All counters are per render context and available on all graphic hardware's # Pixel Processed # Pixel Blended % ROP Busy % Shader Waits for Texture Time stamp disjoint Primitives to Raster databuffercount hardwarewaittime Virtual memory usage Virtual memory pages / sec # Post-cull Point Prims % Shader Waits for ROP Primitives to Render texturewaittime Drivers virtual memory usage # Post-cull Line Prims Video Memory Usage VS invocation swapbytespersample And more # Post-cull Tri Prims AGP / PCI-E Memory Usage SO written finishglwaittime # Pre-cull Vertices # Vertex Count SO need written finishglwaittime # Pre-cull Vertices # Frame Batch SO overflow And more # Pre-cull Point Prims # Frame Vertex VertexIA # Pre-cull Line Prims # Frame Primitive PrimitiveIA And more And more And more Copyright Khronos Group, 2009 - Page 23

Displays performance counters graphs of Windows, Mac OS X and Linux OS NVIDIA s GPUs and drivers through NVPerfKit gdebugger OpenGL Server Copyright Khronos Group, 2009 - Page 24

Turn off the graphic pipeline stages one after the other If the performance improves when turning off a certain stage, you have found a graphic pipeline bottleneck Copyright Khronos Group, 2009 - Page 25

Enter profiling mode Eliminate draw commands Eliminate raster operations Eliminate fixed pipeline lights Eliminate texture data fetch operations Eliminate geometry shader operations Eliminate fragment shader operations Copyright Khronos Group, 2009 - Page 26

Launches any OpenGL or OpenGL ES application for debug or profile session. Instrumentation or recompilation are not needed! Adds breakpoints for any OpenGL, OpenGL ES or extensions entry point Views a list of active and deleted OpenGL render contexts Display debugged process events such as: thread created, dll loaded and unloaded, breakpoint hit, etc. Forces OpenGL to render directly into the front buffer and controls the rendering speed Forces the OpenGL Polygon Raster mode to see the rendered geometry and test your applications culling gdebugger ES is being used as an out of the box OpenGL ES implementation for the embedded systems on a Windows PC machine Displays implementation-specific OpenGL run-time information such as pixel formats and available extensions Saves textures as image files to disk Views OpenGL state variables values in a watch view and comparison viewer Supports applications that render using multiple threads and multiple render contexts Saves performance counters data into a file (.csv). This enables performing performance and regression tests using different hardware and driver configurations Output an OpenGL calls log into a formatted HTML file, containing texture imaged, vertex and fragment shaders source code Supports GL_GREMEDY_string_marker extension that allows adding string markers into the reported and recorded calls log, making the calls log much clearer Support OpenGL 3.0 standard and many additional extensions (OpenGL 3.1 will be supported soon) And more Copyright Khronos Group, 2009 - Page 27

Avi Shapira www.gremedy.com avi { a t } gremedy [.] com Copyright Khronos Group, 2009 - Page 28