DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER



Similar documents
Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Introduction to Computer Graphics

Computer Graphics Hardware An Overview

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

OpenGL Performance Tuning

Radeon HD 2900 and Geometry Generation. Michael Doggett

GPU Architecture. Michael Doggett ATI

Recent Advances and Future Trends in Graphics Hardware. Michael Doggett Architect November 23, 2005

NVPRO-PIPELINE A RESEARCH RENDERING PIPELINE MARKUS TAVENRATH MATAVENRATH@NVIDIA.COM SENIOR DEVELOPER TECHNOLOGY ENGINEER, NVIDIA

Performance Optimization and Debug Tools for mobile games with PlayCanvas

How To Teach Computer Graphics

Optimizing AAA Games for Mobile Platforms

Low power GPUs a view from the industry. Edvard Sørgård

Lecture Notes, CEng 477

GUI GRAPHICS AND USER INTERFACES. Welcome to GUI! Mechanics. Mihail Gaianu 26/02/2014 1

Image Synthesis. Transparency. computer graphics & visualization

GPU Profiling with AMD CodeXL

Optimizing Unity Games for Mobile Platforms. Angelo Theodorou Software Engineer Unite 2013, 28 th -30 th August

CSE 564: Visualization. GPU Programming (First Steps) GPU Generations. Klaus Mueller. Computer Science Department Stony Brook University

The Future Of Animation Is Games

The Evolution of Computer Graphics. SVP, Content & Technology, NVIDIA

Optimization for DirectX9 Graphics. Ashu Rege

Dynamic Resolution Rendering

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

GPU(Graphics Processing Unit) with a Focus on Nvidia GeForce 6 Series. By: Binesh Tuladhar Clay Smith

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

Writing Applications for the GPU Using the RapidMind Development Platform

Advanced Visual Effects with Direct3D

Interactive Information Visualization using Graphics Hardware Študentská vedecká konferencia 2006

Real-Time Realistic Rendering. Michael Doggett Docent Department of Computer Science Lund university

Developer Tools. Tim Purcell NVIDIA

OctaVis: A Simple and Efficient Multi-View Rendering System

3D Stereoscopic Game Development. How to Make Your Game Look

Silverlight for Windows Embedded Graphics and Rendering Pipeline 1

Big Data: Rethinking Text Visualization

Adding Animation With Cinema 4D XL

Graphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011

Introduction to Computer Graphics

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Comp 410/510. Computer Graphics Spring Introduction to Graphics Systems

Blender addons ESRI Shapefile import/export and georeferenced raster import

Beyond 2D Monitor NVIDIA 3D Stereo

Table of Contents. P a g e 2

NVIDIA GeForce GTX 580 GPU Datasheet

GPGPU Computing. Yong Cao

Advanced Graphics and Animations for ios Apps

1. INTRODUCTION Graphics 2

How To Understand The Power Of Unity 3D (Pro) And The Power Behind It (Pro/Pro)

Modern Graphics Engine Design. Sim Dietrich NVIDIA Corporation

Vulkan on NVIDIA GPUs. Piers Daniell, Driver Software Engineer, OpenGL and Vulkan

Midgard GPU Architecture. October 2014

Visualization methods for patent data

Eliminating Redundant Fragment Shader Executions on a Mobile GPU via Hardware Memoization

Experiences with 2-D and 3-D Mathematical Plots on the Java Platform

Outline. srgb DX9, DX10, XBox 360. Tone Mapping. Motion Blur

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio

Radeon GPU Architecture and the Radeon 4800 series. Michael Doggett Graphics Architecture Group June 27, 2008

Haptics Don t Lose Touch with Virtual Reality. Petr Kmoch Computer Graphics Group MFF UK

Computer Graphics on Mobile Devices VL SS ECTS

GPUs Under the Hood. Prof. Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology

L20: GPU Architecture and Models

Programming 3D Applications with HTML5 and WebGL

Computer Graphics. Computer graphics deals with all aspects of creating images with a computer

NVIDIA IndeX Enabling Interactive and Scalable Visualization for Large Data Marc Nienhaus, NVIDIA IndeX Engineering Manager and Chief Architect

Web Based 3D Visualization for COMSOL Multiphysics

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Tutorial 13: Object Animation

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

GPU Point List Generation through Histogram Pyramids

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

Visualizing Data: Scalable Interactivity

INTRODUCTION TO RENDERING TECHNIQUES

Overview Motivation and applications Challenges. Dynamic Volume Computation and Visualization on the GPU. GPU feature requests Conclusions

Ulf Hermann. October 8, 2014 / Qt Developer Days The Qt Company. Using The QML Profiler. Ulf Hermann. Why? What? How To. Examples.

What is GPUOpen? Currently, we have divided console & PC development Black box libraries go against the philosophy of game development Game

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

Getting Started with CodeXL

A Short Introduction to Computer Graphics

Deferred Shading & Screen Space Effects

Game Development in Android Disgruntled Rats LLC. Sean Godinez Brian Morgan Michael Boldischar

Chapter 6 - The Scene Graph

MassArt Studio Foundation: Visual Language Digital Media Cookbook, Fall 2013

Introduction to GPGPU. Tiziano Diamanti

GPU Christmas Tree Rendering. Evan Hart

ELECTRONIC DOCUMENT IMAGING

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Bernice E. Rogowitz and Holly E. Rushmeier IBM TJ Watson Research Center, P.O. Box 704, Yorktown Heights, NY USA

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen Powergen 3

Hardware design for ray tracing

Interactive Rendering In The Post-GPU Era. Matt Pharr Graphics Hardware 2006

CS130 - Intro to computer graphics. Dr. Victor B. Zordan vbz@cs.ucr.edu Objectives

Periodontology. Digital Art Guidelines JOURNAL OF. Monochrome Combination Halftones (grayscale or color images with text and/or line art)

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Off-line Model Simplification for Interactive Rigid Body Dynamics Simulations Satyandra K. Gupta University of Maryland, College Park

Getting Started With DraftSight A Guide For AEC Users

How To Use An Amd Ramfire R7 With A 4Gb Memory Card With A 2Gb Memory Chip With A 3D Graphics Card With An 8Gb Card With 2Gb Graphics Card (With 2D) And A 2D Video Card With

Performance Testing in Virtualized Environments. Emily Apsey Product Engineer

Using Photorealistic RenderMan for High-Quality Direct Volume Rendering

GPU Usage. Requirements

Plug-in Software Developer Kit (SDK)

Transcription:

DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER RAMA HOETZLEIN, DEVELOPER TECHNOLOGY, NVIDIA

Data Visualizations assist humans with data analysis by representing information visually.. These mechanisms rely on human perception to help understand data. Human Factors in Visualization Research, Melanie Tory & Torsten Moller IEEE Transactions on Visualization and Computer Graphics, Vol 10, No 1, Jan 2004.

GRAPHICS PIPELINE

GRAPHICS PIPELINE Shader State Uniform Buffers Vertex Buffers Index Buffers Tesselation State Rasterizer State Depth/Blend States Pixel Shader State Framebuffer State Graphics State is complex.

T-FLEX CAD, 2012. Image from wikimedia commons. CAD/Workstation Applications solve complex, real world problems

CPU Bound: Traversal of CPU scene graph, or drawing setup, outweighs GPU rendering. Many CAD/Professional Workstation applications are CPU Bound. These are ideal candidates for next-gen APIs.

PROFILING PRACTICE APP Driver

PROFILING PRACTICE Modify Profile APP Driver

PROFILING PRACTICE APP Driver replay StateViewer capture visualize Driver

PROFILING PRACTICE CPU Timing State Profiling (Sequence) Driver Timing GPU Timing APP API Driver replay StateViewer visualize capture Driver see the sequence

GOALS API Tracing Identify named buffers at the time of API calls. Value Tracing Identify which state arbitrary buffers belong to. Identify values inside named buffers. Identify values transferred by memcpy/map Value-Delta Tracing Identifies changes in values in the same buffer. Identifies when switching buffers with same value. We want tools that identify all of the above.

EXAMPLE A 0 2 B 0 3 5 9 VBO State 0 0 0 3 5 9 2 Simple State Tracking Value Tracking Value- Delta Tracking A B A B B B A A(0) B(0) A(0) B(3) B(5) B(9) A(2) Created Same State (0) Changed Same Same Changed Created Buf Buf (B) Buf (B) Buf

VISUALIZATION DESIGN Colored rectangles map state values. Colored flags map state value changes. Value of this buffer stays the same for the first 4 draws. Then, value flip-flops between 2 values. Colors are random.. It s about seeing patterns. Create/write app is allocating a new buffer, or rewriting it. Switch app is switching to another buffer. Reuse app is reusing buffer from last draw, no switch.

ALGORITHM PASS #1 Replay all API calls to determine state bins. Example: DXCreateBuffer How will it be used? Unknown until later. IASetVertexBuffer Now, we know it is a VBO. PASS #2 Replay all API calls again, and record both input and output values. Compress all values using a 128-bit hash. Assign colors and track deltas based on the hash. Every API call specifies a unique state bin, named object, and value.

ALGORITHM Map buffer memcpy some data Map buffer memcpy other data Assign hash 128-bit hash Assign color Compare to previous state Different, give red flag (due to Map) time

WHAT STATES TO TRACK? 0 Shader 1 Render Target 2 Viewport 3 Rasterizer State 4 Depth State 5 Blend State 6 Sampler State 7 Input 8 Texture 9 Vertex Buffer (IA Slot 0) 10 Vertex Buffer (IA Slot 1) 11 Vertex Buffer (IA Slot 2) 12 Vertex Buffer (IA Slot 3) 13 Vertex Buffer (IA Slot 4) 14 VS Const Buffer 0 15 VS Const Buffer 1 16 VS Const Buffer 2 19 PS Const Buffer 0 20 PS Const Buffer 1 21 PS Const Buffer 2 24 Index Buffer

STATEVIEWER Contributed to apitrace, open source. A free tool for deep state tracking /w value deltas. Simple trace and view workflow. Application App Replay Visualize run replay track state visualize data apitrace.trace d3dretrace glretrace.raw stateviewer * Now availabe on github! *

STATEVIEWER: SIMPLE EXAMPLE Example: Draw instanced spheres with some GUI controls. StateViewer output

STATEVIEWER: SIMPLE EXAMPLE Observe: Frames separate by white bars. Each column is one draw call. First draw uses different shader, VBO, and VS constant. This draws instanced spheres. Eight other calls use same shader, and VBO. These draw the GUI bars. PS Const1 flip-flops between 2 states. This is the grey and green bars in the GUI of the app.

Mathematical Games The fantastic combinations of John Conway s new solitaire game life. John Horton Conway, 1970. Image from wikimedia commons.

COMMON PATTERNS Revit The Flip-Flop Bars oscillate between values. Indicates potentially unnecessary switch between two states. Example: Draw faces, then edges, then faces, then edges.

COMMON PATTERNS Flatliner Set of draw calls which use the same shader, VBO and number of primitives. Draw may be unnecessarily repeated. Example: Drawing multiple copies of an object in the different locations.

COMMON PATTERNS The Repeater A set of states that is similar to an earlier group. Strongly suggests candidates for grouping. Example: Draw legs, arms, back and seat of a chair. Then draw whole chair again!

ALL ABOUT THE (DATA) PATTERNS Too many red flags. Too many orange flags. Green flags!

REAL-WORLD APPLICATIONS

REAL-WORLD APPLICATIONS Shader is switched frequently. Candidate for shader-based sorting. Good use of const buffers. (Multiple buffers, mostly green flags) Drawing many small object. Candidate for geometry binning.

REAL-WORLD APPLICATIONS

REAL-WORLD APPLICATIONS Shader re-assigned on each draw. Vertex buffer rewritten on every other draw. Constant buffers rewritten, often with repeatedly used value. (Flip-flop) Repetitive pattern suggests duplicated geometry. (Repeater)

STATEVIEWER: TOOL COMPARISON GPU Timing: Gives valuable information about what the graphics API and GPU are doing. Good for GPU-bound apps. Use NSight. e.g. Does GPU spend more time in vertex or pixel shader? CPU Function Profiling: Gives valuable information about which are the slowest functions. Good for Algorithm-bound apps. e.g. Which specific part of a CPU algorithm is slowest? StateViewer: Gives systematic information about design patterns in the application. Good for Data-bound apps. Tells us why the app is slow, without access to code! e.g. How could the data be better organized for submission to graphics pipeline?

SUMMARY StateViewer has identified unknown issues in several large CAD/Workstation applications. Provides an overall picture of the application s systematic behavior. Gives feedback with direct indicators on areas of improvement.

Thank You! DATA VISUALIZATION OF THE GRAPHICS PIPELINE