I have a vulkan application and I can trace the application. However I am particulary interested in the rendering stages (e.g. time spent binning etc.). I can see on several screenshots and documents (mentioned multiple times in the Release Notes for example) that this option exist(ed) however I don't have an option for that. I can trace many GPU and CPU metrics but "Rendering Stages" or "GPU Stages" is not among them.
Searching the forum showed a few threads about people having the same problem, however none of them contains an answer.
Can somebody share some insights? Do I have to do something in the application to make it work?
Running Snapdragon Profiler 2022.5 on an Snapdragon 888 (Adreno 660).
Please ensure you are using the Launch button in Snapdragon Profiler to start your app. Vulkan apps in particular require this to enable GPU profiling functionality.
I am starting it using the launch button. Is there something I can do to find out why it is not working?
Profling a Vulkan app requires a Vulkan profiling layer to be loaded. You should see messages in logcat showing this, similar to below:
I found some hints using logcat
It seems Snapdragon Profiler tries to inject the layers but fails due to permissions? Any idea how to fix that? :S
Some more info: This is an unrooted OnePlus 9 Pro with Android 13
Ok. After enabling "GPU Debug layers" and "Disable Permission Monitoring" in the developer options it seems that layers get loaded.
My application is now reporting:
03-16 10:17:39.893 26059 29841 I kotzilla: available validation layers:
03-16 10:17:39.893 26059 29841 I kotzilla: VK_LAYER_PROFILER_Trace
03-16 10:17:39.893 26059 29841 I kotzilla: VK_LAYER_PROFILER_Capture
03-16 10:17:39.893 26059 29841 I kotzilla: VK_LAYER_ADRENO_debug
When I create the vulkan instance I see the following:
03-16 10:17:39.893 26059 29841 I kotzilla: Trying to create instance
03-16 10:17:39.896 26059 29841 I vulkan : Loaded layer VK_LAYER_PROFILER_Trace
03-16 10:17:39.913 26059 29841 I kotzilla: Instance created with api version 1.2.0
I can also see some performance hints when enabling that option in the Launch screen.
So it seems everything is working?
However in the system trace view I still don't see anything new. I would expect "Rendering stages" or something like that somewhere?
Sidenote: When trying to do a frame capture it still doesn't work. The app is not appearing in the Data Sources pane.
logcat reports the following right after instance creation:
03-16 10:28:26.681 28304 6294 I vulkan : Loaded layer VK_LAYER_PROFILER_Capture
03-16 10:28:26.683 28304 6294 I vulkan : Loaded layer VK_LAYER_PROFILER_Capture
So something is still broken it seems :S
Does your app have internet permission? That is also required for GPU profiling.
Also, just for clarification, in Trace mode, the Rendering stages option would be under Process -> Vulkan in the data sources list.
AHA! That was last missing piece. Thank you so much. My app does indeed not need any internet so it wasn't specified to use internet access. Now I can finally see Vulkan API Trace and Rendering Stages.
I am wondering: None of this was really obvious :D Maybe it is worthwhile to add some more checks/hints into Snapdragon Profiler. Or did I miss some documentation about this? The documentation I find about Snapdragon Profiler is from "01 Nov 16".
Great, I'm glad to hear it's working for you now.
There is documentation available from the Help menu in Snapdragon Profiler, and it does specify the internet requirement in a few places, including the troubleshooting section. The system configuration issues you had related to the Vulkan layers have not been previously reported, so we don't have any documentation related to that. That's something we'll look into further.
ok I was expecting to find the documentation using googling and I was checking https://developer.qualcomm.com/software/snapdragon-profiler/tools.
Never checked the help menu :D