Unreal Insights and stat gpu not showing any GPU data

Hi, trying to get into profiling on my mobile device (Elephone P9000) using stat commands and Unreal Insights, I cannot get GPU informations.

Same on my Notebook (Old NVidia Quadro 3000M).

Simply using stat gpu does not return any data, just the header and no infos. Using r.GPUStatsEnabled 1 makes no difference.
Collecting trace data with Unreal Insights results as well in CPU only data. Nothing about GPU at all. Tried to enable all 8 trace options on startup, nothing here (except now having asset loading statistics, which proves, that the options are read correctly)

Is there any minimum graphics driver requirement for GPU profiling to work? What else can be possible causes for this?

1 Like

The following did solve my issues on the Notebook:
Adding this to ConsoleVariables.ini in the engine folder:

r.NVIDIATimestampWorkaround=0
r.gpustatsenabled=1

Both, stat gpu and Unreal Insights now provide information.

Unfortunately, no luck on the mobile phone after building a new package.

1 Like

I found that UDK document with the following:

Mobile devices do not support timestamp queries, which are used on other platforms to measure GPU times directly…
The result is that the only measurement we can use is the total frame time.

Old document, but I get the impression, that this might still be valid today. The above article is the only one I could find stating this.
It would be great, if anyone please could confirm for sure, whether it is possible or impossible.
I don’t like giving up things, but In the latter case, I could stop chasing rainbows here.

I found this thread from 2018 - also 4 years old.

So I now assume the answer still is: no stat gpu and no GPU counters on Insights possible on Android due to limitations in the mobile graphics chips used in the devices and I’ll stop my search and concentrate on external methods.

This also means, that on mobile there’s no way to get more details on the root cause of being GPU bound, except for setting r.screenpercentage to see, if it is pixel related (in my case, this definitely changed frame rate dramatically) and using showflag commands to switch off features to check for changes.

There are external tools available which seem to be the only way to go with.

I checked renderdoc, but could not find a way of how to use it with the mobile device.

There’s also the Android GPU Inspector - but no option here, because it needs at least Android 11.

Also Vendors have their tools, like Huawei System Profiler or ARM Mobile Studio.

At least there is some data, also see Android inspect GPU rendering.

Edit: giving the ARM Mobile Studio StreamLine a try. It first seemed to work fine as documented on their site, Device and debuggable packages listed. Unfortunately, once starting the capture, I ended up in a black screen on phone.
The device was dead - no power off possible, nothing. Looked like the phone was dead. Fortunately, it did reboot after some minutes by itself and is working again. Not sure, if I will try this again…

1 Like