Skip to content

GL Android game trace slow in gapic and can't dump resources #2418

@paulthomson

Description

@paulthomson

GAPID commit: 0d58a5a
Device: Pixel 3

I capture an OpenGL trace from a game on Android. This is not a mid-execution capture. It has about 80 frames: many of these are just a loading screen; the rest are a 3D menu screen.

I have shared the capture offline in a shared drive folder called "GapidTraces". It contains 20181203_1416.

I open the trace in gapid/gapic and the Android device is selected as the replay device:

  • The commands show in the GUI, but the thumbnails take forever to load; I eventually saw some appear, but I have never seen them all load, even after e.g. 10 mins.
  • Clicking on commands is very slow during this time. If I click enough, the GUI becomes unresponsive for several seconds.
  • The memory view does not seem to show; it shows a spinning circle, then nothing, then back to the spinning circle.
  • I can click on shaders, but the source doesn't seem to show. It seems to work for early frames.

Could I disable the thumbnails from being loaded? I don't really need them.

I close gapid/gapic, unplug the Android device, relaunch gapid/gapic, and open the trace. My desktop is selected as the replay device:

  • The thumbnails still don't seem to load.
  • Clicking on commands still makes the GUI unresponsive for seconds.
  • The memory view still does not seem to show; it shows a spinning circle and then returns to "Select a command...".
  • I can see the shader sources for earlier frames; for later frames, I can't get the shaders sources to load, just the list of shader handles.

I can't get the thumbnails to load on my desktop either. This machine has a lot of RAM, in case that is relevant.

I do gapit screenshot capture.gfxtrace. My desktop is chosen as the replay device. I see this warning:

14:57:38.906 I: <gapis> Replay device does not have a memory layout matching device used to trace

And eventually I see a lot of these errors:

14:56:46.680 I: <gapir> 14:56:46.138 E gapir: [gapir/cc/context.cpp:162] [252183]renderer: GL_INVALID_OPERATION error generated. <program> has not been linked, or is not a program object.
14:56:46.680 I: <gapir> 14:56:46.138 E gapir: [gapir/cc/context.cpp:162] [252183]renderer: GL_INVALID_OPERATION error generated. <program> object is not successfully linked, or is not a program object.

The screenshot is black. I am not sure why these errors occur but I guess the different memory layout is problematic?

I plug in the Android device and try gapit screenshot capture.gfxtrace again. The Android device is chosen as the replay device. The screenshot is produced. No warnings or errors.

I try gapit dump_resources capture.gfxtrace. I always seem to get this warning:

15:10:36.680 I: <gapis> Replay device does not have a memory layout matching device used to trace

even if I specify -gapir-device, although I might be getting the device name wrong. It fails to dump any shaders. The errors are the same as above when on desktop. I.e. <program> has not been linked, or is not a program object.

It looks like dump_resources is always choosing the desktop device. I can't dump_resources.

In fact, dump_resources only dumps shaders at this point; I am not sure that going to the device should even be necessary (maybe it doesn't go to the device?).

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions