I use GPU PerfStudio to know a bottleneck of my OpenGL program. Especially, I often use the frame profiler in GPU Perfstudio. When I push the 'profile' button, statistics data are shown in a table. The data can be classificated into two parts: the average values and values of each draw call. The latter is fine, but the former is incorrect because calculating the average values do not consider GPUTime of each draw call. As a result, the average values are useless. Let's see the following example.
The first glDrawElements call dominates the entire GPU time (72%) and GPUBusy and ShaderBusy values are 99-100%. Therefore, average values of GPUBusy and ShaderBusy should be higher than 72% if the "weighted" average calculation logic is properly implemented. In fact, the correct GPUBusy value(%) is 99.62328 = (100*2.218 + 100*0.741 + 100*0.092 + 11.727*0.006 + 8.211*0.005 + 17.151*0.002)/3.064
However, the average values of GPUBusy and ShaderBusy in the above table are 56 and 44%, respectively, because it seems that the first glDrawElements call only contribute 16.6% (1/6) of the average values.
If I can copy the whole sheet to the clipboard, I can manually calculate the exact values. However, selecting multiple rows is not supported in the profiler, so I cannot copy the whole sheet to Excel. As a result, I cannot obtain exact average H/W utilization values from the profiler.
I really hope that this bug is fixed soon.