User Guide. GLExpert NVIDIA Performance Toolkit

Similar documents
GLExpert NVIDIA Performance Toolkit

SDK White Paper. Vertex Lighting Achieving fast lighting results

Android PerfHUD ES quick start guide

SDK White Paper. Matrix Palette Skinning An Example

User Guide. Vertex Texture Fetch Water

NVIDIA nforce 790i SLI Chipsets

Technical Report. Anisotropic Lighting using HLSL

GPU LIBRARY ADVISOR. DA _v8.0 September Application Note

Application Note. NVIDIA Business Platform System Builder Certification Guide. September 2005 DA _v01

Technical Brief. NVIDIA and Microsoft Windows Vista Getting the Most Out Of Microsoft Windows Vista

Technical Brief. LinkBoost Technology Faster Clocks Out-of-the-Box. May 2006 TB _v01

NSIGHT ECLIPSE PLUGINS INSTALLATION GUIDE

NVWMI VERSION 2.24 STANDALONE PACKAGE

Enthusiast System Architecture Certification Feature Requirements

SDK White Paper. Occlusion Query Checking for Hidden Pixels

GRID SOFTWARE FOR RED HAT ENTERPRISE LINUX WITH KVM VERSION /370.28

Cg Toolkit. Cg 1.2 Release Notes

Tuning CUDA Applications for Fermi. Version 1.2

Cg Toolkit. Cg 1.3 Release Notes. December 2004

Technical Report. GLSL Pseudo-Instancing

Order Independent Transparency with Dual Depth Peeling. Louis Bavoil, Kevin Myers

SDK White Paper. HLSL Blood Shader Gravity Maps

Technical Brief. NVIDIA Quadro FX Rotated Grid Full-Scene Antialiasing (RG FSAA)

Cg Toolkit. Cg 1.4 rc 1 Release Notes

NVWMI VERSION 2.18 STANDALONE PACKAGE

GRID SOFTWARE FOR MICROSOFT WINDOWS SERVER VERSION /370.12

Multi-View Soft Shadows. Louis Bavoil

Cg Toolkit. Cg 2.0 January 2008 Release Notes

User Guide. DU _v01f January 2004

CUDA TOOLKIT 3.2 READINESS FOR CUDA APPLICATIONS

Cg Toolkit. Cg 2.1 beta August 2008 Release Notes

User Guide. TexturePerformancePBO Demo

User Guide. GPGPU Disease

White Paper. Soft Shadows. February 2007 WP _v01

Technical Brief. AGP 8X Evolving the Graphics Interface

Cg Toolkit. Cg 2.1 October 2008 Release Notes

Cg Toolkit. Cg 2.2 April 2009 Release Notes

Horizon-Based Ambient Occlusion using Compute Shaders. Louis Bavoil

Cg Toolkit. Cg 2.0 May 2008 Release Notes

Technical Report. SLI Best Practices

White Paper. Denoising. February 2007 WP _v01

QUADRO SYNC II FIRMWARE VERSION 2.02

Soft Particles. Tristan Lorach

CUDA-GDB: The NVIDIA CUDA Debugger

Constant-Memory Order-Independent Transparency Techniques

SDK White Paper. Soft Shadows

NVIDIA CAPTURE SDK 7.1 (WINDOWS)

Copyright Khronos Group, Page Graphic Remedy. All Rights Reserved

NVIDIA CAPTURE SDK 6.1 (WINDOWS)

RMA PROCESS. vr384 October RMA Process

NSIGHT ECLIPSE EDITION

NVBLAS LIBRARY. DU _v6.0 February User Guide

White Paper. Texture Arrays Terrain Rendering. February 2007 WP _v01

Getting Started. NVIDIA CUDA Development Tools 2.2 Installation and Verification on Mac OS X. May 2009 DU _v01

NSIGHT ECLIPSE EDITION

SDK White Paper. Video Filtering on the GPU. Eric Young NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050

NVIDIA SLI Mosaic Mode

Tegra 250 Development Kit Android Setup Experience

NVIDIA DEBUG MANAGER FOR ANDROID NDK - VERSION 8.0.1

Technical Report. SLI Best Practices

NVIDIA CAPTURE SDK 6.0 (WINDOWS)

NSIGHT ECLIPSE EDITION

Sparkling Effect. February 2007 WP _v01

High Quality DXT Compression using OpenCL for CUDA. Ignacio Castaño

GRID VIRTUAL GPU FOR HUAWEI UVP Version ,

PASCAL COMPATIBILITY GUIDE FOR CUDA APPLICATIONS

Getting Started. NVIDIA CUDA Development Tools 2.3 Installation and Verification on Mac OS X

MAXWELL COMPATIBILITY GUIDE FOR CUDA APPLICATIONS

GRID SOFTWARE FOR HUAWEI UVP VERSION /370.12

VIRTUAL GPU CLIENT LICENSING

NVIDIA CUDA C GETTING STARTED GUIDE FOR MAC OS X

GRID VIRTUAL GPU FOR HUAWEI UVP Version /

KEPLER COMPATIBILITY GUIDE FOR CUDA APPLICATIONS

Cg Toolkit. Cg 2.2 February 2010 Release Notes

Deinterleaved Texturing for Cache-Efficient Interleaved Sampling. Louis Bavoil

Technical Report. Mesh Instancing

NVJPEG. DA _v0.1.4 August nvjpeg Libary Guide

Getting Started. NVIDIA CUDA C Installation and Verification on Mac OS X

NVIDIA CUDA DEBUGGER CUDA-GDB. User Manual

GRID VGPU FOR VMWARE VSPHERE Version /

Cg Toolkit. Cg 1.2 User s Manual Addendum

NVJPEG. DA _v0.2.0 October nvjpeg Libary Guide

GRID LICENSING. DU _v4.6 January User Guide

GRID VGPU FOR VMWARE VSPHERE Version /

White Paper. Solid Wireframe. February 2007 WP _v01

NVIDIA CUDA GETTING STARTED GUIDE FOR MAC OS X

GRID SOFTWARE FOR HUAWEI UVP VERSION /370.28

VIRTUAL GPU MANAGEMENT PACK FOR VMWARE VREALIZE OPERATIONS

NVIDIA Release 197 Tesla Driver for Windows

VIRTUAL GPU LICENSE SERVER VERSION

GRID VGPU FOR VMWARE VSPHERE Version /

GRID VGPU FOR VMWARE VSPHERE Version /

CUDA-MEMCHECK. DU _v03 February 17, User Manual

TUNING CUDA APPLICATIONS FOR MAXWELL

Technical Brief. FirstPacket Technology Improved System Performance. May 2006 TB _v01

XID ERRORS. vr384 October XID Errors

MOSAIC CONTROL DISPLAYS

CUDA Particles. Simon Green

GETTING STARTED WITH CUDA SDK SAMPLES

User Guide. NVIDIA Quadro FX 4700 X2 BY PNY Technologies Part No. VCQFX4700X2-PCIE-PB

Transcription:

User Guide GLExpert NVIDIA Performance Toolkit

Table of Contents Introduction... 2 System Requirements...2 GLExpert Getting Started... 3 GLExpert Configuration Parameters...3 Categories of Interest...3 Level of Information Detail...3 Output Location...3 GLExpert Message Format...4 Appendix A GLExpert Configuration for Windows XP... 5 Configuring Categories of Interest...5 Configuring Level of Information Detail...5 Configuring Output Location...6 Appendix B GLExpert Configuration for Linux... 7 Configuring Categories of Interest...7 Configuring Level of Information Detail...7 Configuring Output Location...7 Appendix C GLExpert Base Message Reference... 8 NVAPI_OGLEXPERT_REPORT_ERROR... 8 Category ID: 0x00000001... 8 NVAPI_OGLEXPERT_REPORT_SWFALLBACK... 9 Category ID : 0x00000002... 9 NVAPI_OGLEXPERT_REPORT_PROGRAM...10 Category ID : 0x00000004...10 NVAPI_OGLEXPERT_REPORT_VBO...11 Category ID : 0x00000008...11 NVAPI_OGLEXPERT_REPORT_FBO...12 Category ID : 0x00000010...12 Contact...12

Introduction GLExpert is a part of the instrumented driver provided with NVPerfKit 2. It provides OpenGL application developers with real-time debugging information from the OpenGL runtime to help track down API usage errors and performance issues. Developers are able to choose specific categories of interest, as well as the level of information detail they wish to receive. See the included appendices for instructions on configuring GLExpert for your platform. System Requirements NVIDIA instrumented display driver, version 84.15 or later on Windows XP, or version 1.0.9161 or later on Linux. NVPerfKit, including the Developer Control Panel (NVDevCPL) on Windows XP. 2

GLExpert Getting Started GLExpert Configuration Parameters There are three configuration parameters that developers will configure: the report categories of interest, the level of information detail, and finally, the output location. Categories of Interest The developer first determines which areas of OpenGL functionality they are interested in investigating; these are referred to as report categories. Available options include OpenGL Runtime Errors and messages concerning VBO or FBO usage and performance. The developer may select as many of these as they want, as long as at least one category is selected. If no categories are selected, GLExpert output is effectively disabled. Level of Information Detail This setting allows the developer to determine the level of information detail they wish to receive. At the lowest active setting, GLExpert will report only serious issues such as OpenGL Runtime Errors (if the proper category has been enabled) or usage that may affect rendering correctness. As the detail level is increased, additional warnings may be reported, generally concerning performance or unusual, possibly non-performant, usage patterns. Finally, at the maximum detail level, detailed usage information and some resource tracking statistics will be included in the output message stream. Output Location GLExpert output can be sent to either the console (via standard out) or to a debugger (via OutputDebugString). The output to both locations is identical. 3

GLExpert Message Format When GLExpert sends a message to the selected output location, it prefixes the message with a single OGLE: to allow for simple parsing, followed by a pair of IDs (described below). The message itself makes up the remainder of the output. A GLExpert message is composed of two parts: a base message and a contextspecific message. There is no separator in the stream between these two parts, as the two together make up a complete message. The base portion of the message gives general information on the nature of the message (correctness, performance, information). For example: The current FBO state (e.g. attachments, texture targets) is UNSUPPORTED. The context-specific portion of the message details specifics about the situation in which this message is being reported (the object name, the error code, the particular observed usage pattern). For example: Reason: COLOR_ATTACHMENT0 attempting to bind to an unsupported texture target. Each message is also prefixed by two IDs: one specifies which category the message belongs to (category ID) and the other is unique to that base message (message ID). The category ID is consistent across all messages from a single category, but the message ID is unique only for messages issued with a common base message (as described above); the context-specific message will vary depending on the runtime state generating the message, but will use the same message ID. Combining all of the formatting produces a GLExpert message: OGLE: Category: 0x00000010 MessageID: 0x00840000 The current FBO state (e.g. attachments, texture targets) is UNSUPPORTED. Reason: COLOR_ATTACHMENT0 attempting to bind to an unsupported texture target. 4

Appendix A GLExpert Configuration for Windows XP On Windows XP, GLExpert is configured using the new GLExpert pane in the NVDevCPL provided with NVPerfKit 2 (pictured below). Note: GLExpert, when configured with the NVDevCPL, is system-wide and impacts all OpenGL applications. However, any OpenGL applications that are running when the settings are applied will need to be restarted for the changes to take effect. Configuring Categories of Interest The developer simply checks the boxes next to each of the categories they are interested in investigating. The developer may select as many of these as they want, as long as at least one is selected. If no categories are selected, GLExpert output is effectively disabled. Configuring Level of Information Detail A simple slider is used to configure this option. As the slider is moved toward Max, the amount and nature of the information changes. A brief description appears 5

beneath the slider as it is moved. As the slider progresses to the right, the settings are additive, so all messages from lower settings are included in higher settings. Note: With the slider set to Off, GLExpert output is effectively disabled. All other slider positions are referred to as active settings. Configuring Output Location The drop-down menu provided is used to select the desired output location. 6

Appendix B GLExpert Configuration for Linux Configuring Categories of Interest This option is controlled by setting the environment variable GL_EXPERT_REPORT_MASK. This variable is set to a colon-separated list of categories the developer is interested in. For example, to enable all categories in a bash shell (made verbose for readability): export GL_EXPERT_REPORT_MASK=\ OGLE_ERROR:OGLE_SWFALLBACK:OGLE_PROGRAM:OGLE_VBO:OGLE_FBO Or, more succinctly: export GL_EXPERT_REPORT_MASK=ALL If no categories are specified, GLExpert output is effectively disabled. Configuring Level of Information Detail This option is controlled by setting the environment variable GL_EXPERT_DETAIL_LEVEL to values between 0 (disabled) and 30 (maximum). For example, in a bash shell: export GL_EXPERT_DETAIL_LEVEL=30 A level of 10 is considered to be the lowest active setting and is the level at which only serious errors are reported. It follows that a value of 20 corresponds to the level which adds performance issues, such as software fallbacks and minor usage errors. A value of 30 is the maximum setting and will enable all GLExpert messages. Also note that as the value increases, the settings are additive, so all messages from lower settings are included in higher settings. Note: With the variable set to 0, GLExpert output is effectively disabled. All other values are referred to as active settings. Configuring Output Location This option is controlled by setting the environment variable GL_EXPERT_OUTPUT_MASK. For example, to enable all output locations in a bash shell (made verbose for readability): export GL_EXPERT_OUTPUT_MASK=\ LOG_TO_CONSOLE:LOG_TO_DEBUGGER 7

Appendix C GLExpert Base Message Reference This reference includes all of the currently supported base messages, along with their category ID, message ID, and base message text. NVAPI_OGLEXPERT_REPORT_ERROR Category ID: 0x00000001 The ERROR category controls the reporting of OpenGL errors as they occur. Message ID : 0x00800000 Message Name : ERROR_GENERAL An OpenGL error has occurred Message ID : 0x00800001 Message Name : ERROR_INVALID_ENUM A provided enum value is out of range Message ID : 0x00800002 Message Name : ERROR_INVALID_VALUE A provided numeric argument is out of range Message ID : 0x00800003 Message Name : ERROR_INVALID_OPERATION A provided numeric argument is out of range Message ID : 0x00800004 Message Name : ERROR_STACK_OVERFLOW The current operation would cause a stack overflow Message ID : 0x00800005 Message Name : ERROR_STACK_UNDERFLOW The current operation would cause a stack underflow 8

Message ID : 0x00800006 Message Name : ERROR_OUT_OF_MEMORY Not enough memory left to execute the current operation Message ID : 0x00800007 Message Name : ERROR_TABLE_TOO_LARGE The table specified is too large NVAPI_OGLEXPERT_REPORT_SWFALLBACK Category ID : 0x00000002 The SWFALLBACK category controls the reporting of situations where the driver has fallen back to software for at least part of the graphics pipeline. This has obvious performance impacts, and should always be avoided. Message ID : 0x00810000 Message Name : SWFALLBACK_GENERAL Software rendering has been enabled Message ID : 0x00810001 Message Name : SWFALLBACK_FORCED Software rendering has been enabled by default Message ID : 0x00810002 Message Name : SWFALLBACK_RENDER_MODE Falling back to software because RenderMode!= GL_RENDER Message ID : 0x00810003 Message Name : SWFALLBACK_UNSUPPORTED_VERTEX Falling back to software because a transform-related option is not supported with the current hardware configuration Message ID : 0x00810004 Message Name : SWFALLBACK_UNSUPPORTED_PROGRAM Falling back to software because a program-related option is not supported with the current hardware configuration 9

Message ID : 0x00810005 Message Name : SWFALLBACK_UNSUPPORTED_DEPTH_STENCIL Falling back to software because the specified depth or stencil operation is not supported with the current buffer and hardware configuration Message ID : 0x00810006 Message Name : SWFALLBACK_UNSUPPORTED_TEX Falling back to software because a texture object is using an unsupported format Message ID : 0x00810007 Message Name : SWFALLBACK_UNSUPPORTED_ROP Falling back to software because the specified raster operation is not supported with the current buffer and hardware configuration Message ID : 0x00810008 Message Name : SWFALLBACK_NONACCELERATED_RESOURCES One or more render buffers are not accelerated likely as a result of other fallbacks Message ID : 0x00810009 Message Name : SWFALLBACK_UNSUPPORTED_EMULATION_REQUIRED Falling back to software because emulation is required for rendering NVAPI_OGLEXPERT_REPORT_PROGRAM Category ID : 0x00000004 The PROGRAM category deals with information pertaining to shaders and programs, high-level or assembly, including compiling and linking, usage, and performance. Message ID : 0x00820000 Message Name : PROGRAM_COMPILE_FAILED The provided shader has failed to compile Message ID : 0x00820001 Message Name : PROGRAM_LINK_FAILED The provided program has failed to link 10

NVAPI_OGLEXPERT_REPORT_VBO Category ID : 0x00000008 The VBO category controls the reporting of VBO-related events and behaviors. This includes situations such as when the observed usage pattern could result in sub-optimal performace or appears contradictory to user-provided usage hints, when buffer objects are moved from one memory space to another (i.e. promotion or demotion), when (and which) buffer objects are used by the GPU, or when buffers are updated with new data. Message ID : 0x00830000 Message Name : VBO_WARNING_USAGE The current VBO usage pattern may not be what was intended Message ID : 0x00830001 Message Name : VBO_WARNING_PERFORMANCE The current VBO usage pattern may result in unexpected performance losses Message ID : 0x00830002 Message Name : VBO_WARNING_MOVEMENT A buffer object has been moved (copied) to another memory space Message ID : 0x00830003 Message Name : VBO_INFO_MAPPING Message Level : 30 A buffer object has been mapped Message ID : 0x00830004 Message Name : VBO_INFO_UPDATE Message Level : 30 A buffer object has been updated and the changes are being propagated Message ID : 0x00830005 Message Name : VBO_INFO_CONFIG Message Level : 30 A buffer object has been configured for use (e.g. memory space selected) 11

NVAPI_OGLEXPERT_REPORT_FBO Category ID : 0x00000010 The FBO category controls the reporting on FBO-related events and behaviors. This includes any errors or warnings that can occur during binding, completeness checks, or usage. Message ID : 0x00840000 Message Name : FBO_UNSUPPORTED The current FBO state (e.g. attachments, texture targets) is UNSUPPORTED Message ID : 0x00840001 Message Name : FBO_UNSUPPORTED_OUT_OF_MEMORY The current FBO operation has run out of memory and cannot complete Contact Please let us know if you encounter any problems or think of additional features that would improve NVPerfKit. You can reach us at the following email address: NVPerfKit@nvidia.com 12

Notice ALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, MATERIALS ) ARE BEING PROVIDED AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation. Trademarks NVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated. Copyright 2006 NVIDIA Corporation. All rights reserved NVIDIA Corporation 2701 San Tomas Expressway Santa Clara, CA 95050 www.nvidia.com