I'm seeing 0 GPU activity (every single counter I have in the G-76 template is at 0) during periods of up to 100ms. This capture was done with the lightweight interceptor (if that's relevant) on a Samsung S10e. In this particular occasion the CPU activity is quite low but there are other cases where only the GPU activity is 0.
Do you have any idea on why this might be happening?
It's hard to be sure from this extract, but the usual cause for this is some high priority process getting scheduled by the OS onto the cores so gator cannot run to collect samples. It's unusual for this to last for 100ms though. Out of curiosity do you actually see a visible frame drop in the application? (The fact that the FPS chart doesn't dip implies not).Cheers, Pete
Hi Pete! Thanks for the reply. Yes, the application's FPS jitters at points I wouldn't expect it to (which led me to finding these "dead spots" on the GPU). This is from a point in the game where the scene is "quite stable" and at points our FPS counter jitters quite a bit (in the same way Streamline shows).
I've found some scattered shader compilation events in a different capture (where I had CPU stack data available). Although these are in the range of 7-14ms I'm not sure if it could explain periods of up to 100ms of idle time in the GPU.
Having said this, I was initially quite puzzled and surprised the GPU could entirely "shutdown" but I also found an answer from you in regards to something similar in the forums (https://community.arm.com/developer/tools-software/graphics/f/discussions/6159/arm-mali-400-performance-analysis-using-the-ds-5-streamline/23542#23542). Somehow I would expect to always be some activity (even if small).
Btw, the FPS chart always seem to dip after. This is what I'd expect though, since we're getting the FPS values from the software side, so my assumption is that this would have a knock-on effect on the FPS after. Maybe I'm misreading. Below are a couple of images illustrating what I mean. Thanks Pete.
JPJ said: Although these are in the range of 7-14ms I'm not sure if it could explain periods of up to 100ms of idle time in the GPU.
100ms sounds on the high side, but if you have multiple compiles triggering in a single frame that could explain it. That should show up as CPU load in the render thread. Do you see one CPU thread maxed out during the impacted period?
JPJ said:This is what I'd expect though, since we're getting the FPS values from the software side, so my assumption is that this would have a knock-on effect on the FPS after.
Yes, you assume correctly =)
Peter Harris said:100ms sounds on the high side, but if you have multiple compiles triggering in a single frame that could explain it. That should show up as CPU load in the render thread. Do you see one CPU thread maxed out during the impacted period?
I'm afraid not Pete. Here's an example: