Game Development Reference
In-Depth Information
21
GPU Debugging and Profiling with
NVIDIA Parallel Nsight
Kumar Iyer and Jeffrey Kiel
21.1 Introduction
Over the last few years, the programmability of GPU hardware has exploded in
capability and popularity. Games routinely have hundreds of shaders per rendered
frame. In addition, a new generation of games expands the use of the GPU even
further by using DirectCompute, CUDA C/C++, and other GPGPU technologies
to simulate physics, particles, image space effects, animation, and more.
NVIDIA Parallel Nsight is a development tool integrated into Microsoft Visual
Studio that can help you debug and profile the rendering and GPGPU code in
your game. Any application using Direct3D 10 or 11, running on a Tesla class
chip or beyond, can utilize the powerful Parallel Nsight features inside the Visual
Studio 2008 and 2010 IDEs. The graphics API inspection capability, simple frame
profiling, and some of the tracing capabilities are available when running on graphics
hardware from other vendors, including AMD and Intel.
In this chapter, we'll show you how to use Parallel Nsight to
capture a Direct3D frame live and scrub through draw calls in real time to
see how the rendered frame gets built;
debug the source of your Direct3D HLSL shaders, including pixel, vertex,
compute, hull, and domain shaders using the standard Microsoft Visual Studio
source debugging tools and workflows;
find out if you are CPU or GPU bound;
find the most expensive draw calls in your frame, both on the CPU and GPU;
profile expensive draw calls, using metrics for each draw call like CPU time,
GPU time, hardware unit bottleneck, utilization, shaded pixel, pixel count,
and primitive count;
trace activities across both your CPU and GPU.
287
Search WWH ::




Custom Search