It should be obvious that due to the number of complex processes involved, there are a lot of different ways in which the GPU can become bottlenecked. Now that we have a thorough understanding of the Rendering Pipeline and how bottlenecks may occur, let's explore how to detect these problems.
The Profiler can be used to quickly narrow down which of the two devices used in the Rendering Pipeline we are bottlenecked within--whether it is the CPU or GPU. We must examine the problem using both the CPU Usage
and GPU Usage Areas
of the Profiler
window, as this can tell us which device is working the hardest.
The following screenshot shows Profiler
data for a CPU-bound application. The test involved creating thousands of simple cube objects, with no batching or Shadowing techniques taking place. This resulted in an extremely large Draw Call count (around 32,000) for the CPU to generate commands for, but giving the GPU relatively little work to...