There are two kinds of times in Trace OpenGL calls in DDMS, the Wall Times and the Thread Time, so what do they mean? And what is the difference between the two?
I could only see that most Thread Time is equal to the Wall Time, while some of the Thread Time is less than the Wall Time.
The names make it fairly clear. When talking about performance timing, "wall clock time" refers to the actual time that passed. It refers to the time you would see on a wall clock (with very high resolution, of course). So in this case, Wall Time refers to the total amount of time that passed between the point the call was made, and the point the call returned.
Thread Time is the amount of time that passed while the rendering thread was scheduled. This time will always be at most as much as Wall Time. It will be identical if no other threads were scheduled, and less if other threads were scheduled while the call was processed.
Even though you didn't ask about this, I'll still mention something very important you need to be aware of when looking at these times: They measure the amount of time spent in the driver to handle the API call, which mostly includes just changing internal state and generating commands for the GPU. Due to the asynchronous nature of OpenGL, these times have nothing to do with how long the GPU takes to execute the generated commands. For example, if you look at the time shown for a glDrawElements()
call, it has absolutely nothing to do with how long the GPU takes to do the rendering. Therefore, the times are mostly useless, IMHO, unless what you're interested in is measuring the CPU overhead for the calls.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With