Forums - Snapshots not working on Nexus 6

4 posts / 0 new
Last post
Snapshots not working on Nexus 6
ntuckett
Join Date: 17 Jan 17
Posts: 2
Posted: Wed, 2017-01-18 06:40

I've been trying to capture snapshots with this configuration with very little success: profiler 1.5.4 with Nexus 6 on Android 6.0.1, build MOB31K, not root.

What I see is that there are no GPU related stats in the realtime view for any processes, and also for the processes listed in the snapshot view. When I try to capture a snapshot for one of my processes, it responds with "can't snapshot this process".

However just once on one of my processes, I did get GPU stats and one capture that looked pretty sensible - however it didn't include all the contexts and missed the rendering info I was looking for.

Does anyone have any advice on how I might more reliably get snapshots?

  • Up0
  • Down0
Carlos Dominguez Moderator
Join Date: 27 Jul 15
Location: San Diego
Posts: 110
Posted: Thu, 2017-01-19 10:21

Snapdragon Profiler needs to bootstrap to your application on init.  For this to happen you need to start your application after you connect to your device. If that still doesn't enable per process GPU related metrics on real-time or the ability to take a snapshot you might need to make sure you have internet permission on your manifest. Since you have been able to take a snapshot once I would think the permission in your manifest is correct and all you need to make sure is to start your app after connection.

  • Up0
  • Down0
ntuckett
Join Date: 17 Jan 17
Posts: 2
Posted: Fri, 2017-01-20 04:15

Many thanks! Following your suggestion, I can now repeatedly trigger snapshots.

However what happens is that it just sits there, retrieving the snapshot (orange bar in the data explorer). At this stage, my app is doing its GL rendering via C++ code.

If I interact with my app in a way that causes some Java-level GL rendering calls - there's a brief stall on the app, but the snapshot still doesn't appear.

If I then interact to stop the Javal GL calls and just return to the C++, the snapshot data then gets downloaded. It either contains no contexts and a black image (and throws errors when trying to retrieve buffers such as color buffers, etc) or it hangs with 'Working' over the top of the progress bar in the bottom left (and a spinning activity cursor for the app).

Does the snapshot mechanism work with GL calls from C++?

  • Up0
  • Down0
Carlos Dominguez Moderator
Join Date: 27 Jul 15
Location: San Diego
Posts: 110
Posted: Mon, 2017-01-30 16:13

Snapdragon Profiler captures snapshots on a frame by frame basis. This is determined by 'frame delimiter' calls which the default is set to eglSwapBuffers. It seems as if in your use case this doesn't apply and it only swaps buffers until you interact with your app and that's probably why snapshot doesn't retrieve data until you interact with the app. Can you please provide more context on how GL is used on your app? Another option is to play around with the other potential frame delimters that can be used to trigger a snapshot, this include glFlush/glFinish, etc. If you have a sample app that you can PM me I would be glad to try it internally and diagnose the issue. 

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.