Git Product home page Git Product logo

google / agi Goto Github PK

View Code? Open in Web Editor NEW
847.0 37.0 131.0 92.64 MB

Android GPU Inspector

Home Page: https://gpuinspector.dev

License: Apache License 2.0

Python 3.27% Go 53.62% C++ 12.97% C 0.41% GLSL 0.10% Objective-C++ 0.04% HTML 1.14% Java 22.90% Shell 0.36% Batchfile 0.11% Smarty 0.03% Starlark 4.59% NASL 0.43% JavaScript 0.02%
vulkan gpu graphics profiler debugger trace replay android linux windows

agi's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

agi's Issues

support android emulator?

hello, we use a arm64 linux machine to run android emulator, and use gpu host mode to render, Does this library support android emulator?

Opening traces via Finder launches multiple AGI instances and it can get stuck

On MacOS, when opening files from within Finder, while an AGI instance is already running, each time a trace file is double-clicked/opened, instead of opening that file within the already running instance, a new AGI instance is launched. This often/always results in a stuck situation, where the AGI icon keeps bouncing in the Dock, but no progress is made. When getting into this stuck mode, attempting to double-click any other file, no longer launches a new AGI instance, which makes it impossible to open any more files. When it gets stuck, you can no longer launch AGI, even by double-clicking the App.

Only 6 cores show up in Samsumg S10

Environment information:

  • AGI version: 1.1.0:dev-20210318-0a20e55844baeb58bb29fe8dd58a004a656efcd5
  • Host OS: [e.g. Linux] Windows
    If tracing on Android:
  • Device model: samsung SM-9730
  • Android Version: Android 11

Bug description
Samsung S10 with Snapdragon 855 has 8 CPU cores in total, but agi only shows 6 of them.

Reproduction steps
Steps to reproduce the behavior:

Stacktrace
Please paste a stacktrace here if it's available.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional debugging information

  • Please attach the generated gapis.log and gapic.log files you will find in the temp folder (e.g. /tmp/ on linux).
  • If using Android: Please attach a full logcat dump (adb logcat -d > logcat-full.txt) that contains logs since AGI was started.

cannot select device

hi, i cannot select device when "Capture a new trace".
image

i'm sure my android device is connected.

this is my device-info:

"configuration": { "OS": { "kind": "OSX", "name": "OSX", "majorVersion": 10, "minorVersion": 15, "pointVersion": 5 }, "hardware": { "name": "MacBookPro15,4", "CPU": { "name": "Intel(R) Core(TM) i7-8557U CPU @ 1.70GHz", "vendor": "GenuineIntel", "architecture": "X86_64", "cores": 8 }, "GPU": {} }, "ABIs": [ { "name": "x86_64", "OS": "OSX", "architecture": "X86_64", "memoryLayout": { "endian": "LittleEndian", "pointer": { "size": 8, "alignment": 8 }, "integer": { "size": 4, "alignment": 4 }, "size": { "size": 8, "alignment": 8 }, "char": { "size": 1, "alignment": 1 }, "i64": { "size": 8, "alignment": 8 }, "i32": { "size": 4, "alignment": 4 }, "i16": { "size": 2, "alignment": 2 }, "i8": { "size": 1, "alignment": 1 }, "f64": { "size": 8, "alignment": 8 }, "f32": { "size": 4, "alignment": 4 }, "f16": { "size": 2, "alignment": 2 } } } ], "drivers": {}, "perfettoCapability": {}

Documentation problem

On this page
It says:
Android GPU Inspector
A single tool that will help you profile and debug graphics on Android across Qualcomm® Adreno™ GPUs and Arm® Mali™ GPUs
Why the PowerVR GPU from Imagination is not included?

Frame capture: 1-draw-call difference in images between glDrawElements and vkCmdDrawIndexed

Note: This is described w.r.t. FIFA Soccer, but is true for all GLES games/applications.

Describe the issue:

  • This may be an issue with other games, but I just noticed it.
  • Looking at my frame capture of FIFA Soccer, I sometimes click on the a higher-level glDrawElements node, and sometimes I click on the GLES and/or Vulkan nodes underneath. For the same higher-level glDrawElements, I get different images for the GLES and Vulkan nodes.

Expected behavior:

  • When I open and select different nodes of a frame capture of a GLES app, I expect the same image to be seen regardless of whether I am clicking on the GLES or Vulkan nodes

Actual behavior:

  • I am seeing one-draw-call difference between the "OpenGL ES Commands" and the "DrawIndexed" hierarchies. Since a small thumbnail is included on some of the hierarchy, I started looking at the draws before and after big changes. That's when I noticed this.

Repro steps:

  • With the capture that I point to (below), look at when the draws in the 2nd RenderPass change from black to green. Here's what the hierarchy looks like:

    • Host Coordination
    • vkQueueSubmit
      • pSubmits[0]
        • Command Buffer
          • Render Pass
          • Render Pass
            • glDrawElements
            • glDrawElements
            • glDrawElements
            • glDrawElements
            • glDrawElements
            • glDrawElements
            • glDrawElements
              • vkCmdBeginDebugUtilsLabelEXT
                • OpenGL ES Commands
                  • vkCmdBeginDebugUtilsLabelEXT
                  • gl*
                  • ...
                  • glDrawElements
                  • vkCmdEndDebugUtilsLabelEXT
                • DrawIndexed
                  • vkCmdBindPipeline
                  • ...
                  • vkCmdDrawIndexed
                • vkCmdEndDebugUtilsLabelEXT
              • glDrawElements
                • vkCmdBeginDebugUtilsLabelEXT
                • OpenGL ES Commands
                  • vkCmdBeginDebugUtilsLabelEXT
                  • gl*
                  • ...
                  • glDrawElements
                  • vkCmdEndDebugUtilsLabelEXT
                • DrawIndexed
                  • vkCmdBindPipeline
                  • ...
                  • vkCmdDrawIndexed
                • vkCmdEndDebugUtilsLabelEXT
              • glDrawElements
              • ...
  • I chose those particular parts of the hierarchy because that's where the green soccer field first gets drawn.

  • If you open up the "OpenGL ES Commands" and the "DrawIndexed" nodes above, and click on the lower-level glDrawElements and vkCmdDrawIndexed nodes. You will see that the GLES draw doesn't show the same image as the Vulkan draw.

Versions:

  • AGI: v1.1.0-dev-20210110
  • ANGLE (pre-built): <ANGLE version doesn't matter>
  • App version: versionCode=754 minSdk=23 targetSdk=29

Cannot find any device via USB although can get log via terminal adb on Debian

Environment information:

  • AGI version: 1.0 (openJDK 8), 0.10.0 (openJDK 11)
  • Host OS: Debian 10 Buster
    If tracing on Android:
  • Device model: Sony Z5, Amazon Fire Tablet HD 8 Gen 7th
  • Android Version: 7.0 (Sony Z5), 5.1 (Amazon)

Bug description
Cannot find any device via USB although I can get log via terminal adb on Debian

Reproduction steps
Install any version AGI, open AGI, setup ADB path, open AGI, cannot find any device

Screenshots
image
Left image, I open terminal and use adb command. Right image, AGI cannot find any device. Two windows is opened side by side at the same time
image
ADB path I setup.

Additional debugging information
gapic.log
gapis.log

Thanks

Bazel build with error "PKIX path building failed"

When I try to build with bazel, I occured the problem of ssl certification problem. I added the CA certificate of the website to JAVA but it still doesn't work. It occurs on ubuntu 16.04 and windows 10 platform.

image

Download from https://codeload.github.com/bazelbuild/bazel-gazelle/zip/9b9f0226e01d10a70cbf268f9967cb715c8ff067 failed: class javax.net.ssl.SSLHandshakeException PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.

Crash on close

Environment information:

  • AGI version: 1.0.0
  • Host OS: macos 10.15.6
    If tracing on Android:
  • Device model:
  • Android Version:

Bug description
Crashed on close

Reproduction steps

  1. I got excited and downloaded the newly released version 1.0.0
  2. opened the app
  3. ignored the dialog that said to specify the adb location
    4 closed the window

Stacktrace
java.lang.NullPointerException
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3788)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at com.google.gapid.Main$UI.show(Main.java:134)
at com.google.gapid.Main.main(Main.java:80)

Screenshots
If applicable, add screenshots to help explain your problem.
Screen Shot 2020-09-15 at 00 42 10

Additional debugging information

  • Please attach the generated gapis.log and gapic.log files you will find in the temp folder (e.g. /tmp/ on linux).
  • If using Android: Please attach a full logcat dump (adb logcat -d > logcat-full.txt) that contains logs since AGI was started.

vkCmdClearAttachments not under glDrawElements hierarchy

Environment information:

  • AGI version: 1.1.0:dev-20210127-3678b588413bc6da5cdd54235aeef4ce895f8ffb
  • Host OS: Linux
    If tracing on Android:
  • Device model: Pixel 4 XL
  • Android Version: pre-release Android S

Bug description
Replaying a trace with "Car Parking Multiplayer" (now that an ANGLE fix allows the game to be played), the vkCmdClearAttachments commands are not under the glDrawElements hierarchy, but are peers of the glDrawElements commands.

NOTE: I can send you an AGI trace (github won't let me attach it).

Reproduction steps
Steps to reproduce the behavior:

  1. Obtain latest ANGLE APK, "Car Parking Multiplayer" game, and AGI
  2. Do an AGI frame capture while driving
  3. Open the trace and open the hierarchy of command buffers and render passes.
  4. Observe that vkCmdClearAttachments is a peer of glDrawElements, not underneath it

Screenshots
Attached is a screenshot that shows a number of glDrawElements calls with a vkCmdClearAttachments call in the middle. I opened up the next glDrawElements call to show that the GLES app was trying to clear the depth and stencil buffers (which led to the vkCmdClearAttachments call.

Screenshot from 2021-03-01 13-50-39

Build Documentation Incorrect

The AGI Windows build instructions under Install Bazel state:

Note: Installing bazel will also install MSYS into C:\tools\msys64 and Python into C:\tools\python27.

However, I successfully followed the instructions to run choco install bazel and bazel is installed without having msys64 or python27 installed in the c:\tools dir.

Device validation fails on supported device

Environment information:

  • AGI version: v1.1.0-dev-20210110, also tried latest stable version
  • Host OS: Windows
    If tracing on Android:
  • Device model: Samsung Galaxy Note 10+
  • Android Version: 11

Bug description
AGI shows that the support validation of my device failed.

Reproduction steps
Open AGI, select capture new trace, select the connected device from the dropdown menu.

Screenshots
image

Additional debugging information
logcat-full.txt

Is there any method to catch AGI trace when the target application is not debuggable

Environment information:

  • AGI version:1.0.0
  • Host OS: Windows 10
    If tracing on Android:
  • Device model: Google Pixel 5
  • Android Version:11

Bug description
Could not select some applications

Reproduction steps
Steps to reproduce the behavior:
1.Open AGI 1.0.0
2.Click on the “…” button right next to the “Application” text entry to list applications that can be traced on the selected device.
--->Only there applications are shown.(There are lots of applications on my devices)

Questions:
I think the other applications which not shown are not debuggable( android:debuggable="true")
Does this means I can't use AGI to catch a third party application trace?

InternalServerErrorException: Tracing Failed when tracing Sascha Willems particlefire demo on Linux

Environment information:

  • AGI version: ffcead0e9616e3e9488596930d6192f1172cc9a9
  • Host OS: Linux

Bug description
A clear and concise description of what the bug is.

Reproduction steps
Run the particlefire demo from https://github.com/SaschaWillems/Vulkan repository in the Capture new trace flow with this configuration,

buffers {
  size_kb: 131072
  fill_policy: DISCARD
}
buffers {
  size_kb: 4096
  fill_policy: DISCARD
}
data_sources {
  config {
    name: "linux.ftrace"
    ftrace_config {
      ftrace_events: "sched/sched_process_free"
      ftrace_events: "task/task_newtask"
      ftrace_events: "task/task_rename"
      ftrace_events: "power/gpu_frequency"
      buffer_size_kb: 8192
      drain_period_ms: 250
      compact_sched {
        enabled: true
      }
    }
  }
}
data_sources {
  config {
    name: "linux.process_stats"
    target_buffer: 1
    process_stats_config {
      scan_all_processes_on_start: true
    }
  }
}
data_sources {
  config {
    name: "linux.process_stats"
    process_stats_config {
      proc_stats_poll_ms: 2000
      proc_stats_cache_ttl_ms: 20000
    }
  }
}
data_sources {
  config {
    name: "VulkanCPUTiming"
    legacy_config: "VkDevice:VkPhysicalDevice:VkInstance:VkQueue"
  }
}
data_sources {
  config {
    name: "VulkanMemoryTracker"
    legacy_config: "Device:Driver"
  }
}
write_into_file: true
file_write_period_ms: 2000
max_file_size_bytes: 2147483648
flush_period_ms: 5000

Stacktrace

com.google.gapid.server.Client$InternalServerErrorException: Tracing Failed
   Cause: exit status 1
	at com.google.gapid.server.Client.throwIfError(Client.java:310)
	at com.google.gapid.server.Client.lambda$streamTrace$55(Client.java:284)
	at com.google.gapid.server.GapidClientGrpc$StreamHandler.onNext(GapidClientGrpc.java:225)
	at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onMessage(ClientCalls.java:436)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:658)
	at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:643)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.google.gapid.server.Client$Stack: For request: RPC->streamTrace()
	at com.google.gapid.server.Client.streamTrace(Client.java:281)
	at com.google.gapid.server.Tracer.trace(Tracer.java:41)
	at com.google.gapid.views.TracerDialog.showTracingDialog(TracerDialog.java:176)
	at com.google.gapid.LoadingScreen.lambda$createOptions$0(LoadingScreen.java:119)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5687)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4955)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4448)
	at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
	at org.eclipse.jface.window.Window.open(Window.java:799)
	at com.google.gapid.Main$UI.show(Main.java:128)
	at com.google.gapid.Main.main(Main.java:77)

Screenshots
Step 1, Capture System Profile
Step 2. particlefire starts, and AGI waits for me to click Start
Step 3. AGI fails with stacktrace above

Additional debugging information

  • Please attach the generated gapis.log and gapic.log files you will find in the temp folder (e.g. /tmp/ on linux).
    gapis.log
    gapic.log

The real stuff starts towards the bottom of the file, after me finding the adb path. It seems to connect to perfetto service, and then immediately hangup with no obvious reason (to me)

Pixel 4A Device Not supported

Using the open beta: 1.0.0:4ddd08c5546200a14141b75639a4b758fb2fadd2 with a Pixel 4A running Android 11, I get an unsupported device error when following the prescribed getting started steps:

Screen Shot 2021-01-11 at 4 40 44 PM

Upgrade grpc to avoid gettid problems

gRPC has provided a PR that fixes duplicate gettid declarations on glibc-2.30+ distributions.

The PR landed on 2019-08-26 and the first release after that was v1.24.0 on 2019-09-25.

We should roll up to at least v1.24.0. Ideally, newer.

Bazel build errors "'string' object is not callable"

Environment information:

  • AGI version: Latest master
  • Host OS: Windows

Bug description
When building the latest AGI on Windows I hit two separate errors stating:

'string' object is not callable

I'm able to fix both of these errors by removing paren chars "()" in two "cc_toolchain.strip_executable()" lines. The full error messages are below.

Is this a tool versioning issue? When I run "bazel --version" the output is "bazel 2.2.0"

Reproduction steps
Steps to reproduce the behavior:
Pull the latest master code on Windows and build according to instructions

Stacktrace

First Error:

C:\src\agi>bazel build pkg
ERROR: C:/src/agi/core/vulkan/vk_virtual_swapchain/cc/BUILD.bazel:75:1: in strip rule //core/vulkan/vk_virtual_swapchain/cc:libVkLayer_VirtualSwapchain_stripped.dll:
Traceback (most recent call last):
File "C:/src/agi/core/vulkan/vk_virtual_swapchain/cc/BUILD.bazel", line 75
strip(name = 'libVkLayer_VirtualSwapchain_stripped.dll')
File "C:/src/agi/tools/build/rules/cc.bzl", line 62, in _strip_impl
ctx.actions.run(<4 more arguments>)
File "C:/src/agi/tools/build/rules/cc.bzl", line 63, in ctx.actions.run
cc_toolchain.strip_executable()
'string' object is not callable
ERROR: Analysis of target '//:pkg' failed; build aborted: Analysis of target '//core/vulkan/vk_virtual_swapchain/cc:libVkLayer_VirtualSwapchain_stripped.dll' failed; build aborted
INFO: Elapsed time: 1.595s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets configured)

Second Error (after fixing first by removing "()"):

ERROR: C:/src/agi/gapidapk/android/apk/BUILD.bazel:33:1: in _strip rule //gapidapk/android/apk:armeabi-v7a_deviceinfo:
Traceback (most recent call last):
File "C:/src/agi/gapidapk/android/apk/BUILD.bazel", line 33
_strip(name = 'armeabi-v7a_deviceinfo')
File "C:/src/agi/gapidapk/android/apk/rules.bzl", line 23, in _strip_impl
ctx.actions.run(<4 more arguments>)
File "C:/src/agi/gapidapk/android/apk/rules.bzl", line 24, in ctx.actions.run
cc_toolchain.strip_executable()
'string' object is not callable
ERROR: Analysis of target '//:pkg' failed; build aborted: Analysis of target '//gapidapk/android/apk:armeabi-v7a_deviceinfo' failed; build aborted
INFO: Elapsed time: 81.173s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (286 packages loaded, 24257 targets configured)

delve debug: could not launch process: decoding dwarf section info at offset 0x0: too short

windows 10
bazel : 2.0.0
delve version: 1.4
compile step:

  1. bazel --host_jvm_args=-Djavax.net.ssl.trustStore="D:\JDK\jre\lib\security\cacerts" build pkg

  2. cd D:\GoogleAGI\agi-master\

  3. mkdir agi-gofuse

  4. bazel --host_jvm_args=-Djavax.net.ssl.trustStore="D:\JDK\jre\lib\security\cacerts" run //cmd/gofuse -- -dir D:\GoogleAGI\agi-master\agi-gofuse --bazelout="D:\GoogleAGI\agi-master\agi-master\bazel-out"
    (https://user-images.githubusercontent.com/22905006/81367757-a4516480-9120-11ea-9509-465eb094a645.png),like this:
    C:\Users\wyvm3kp4\external\org_golang_x_tools\go\ssa\ssautil\load_test.go -> D:\GoogleAGI\agi-master\agi-gofuse\src\golang.org\x\tools\go\ssa\ssautil\load_test.go
    --- Symlinking source file:
    C:\Users\wyvm3kp4\external\org_golang_x_tools\go\ssa\ssautil\switch.go -> D:\GoogleAGI\agi-master\agi-gofuse\src\golang.org\x\tools\go\ssa\ssautil\switch.go
    --- Symlinking source file:
    C:\Users\wyvm3kp4\external\org_golang_x_tools\go\ssa\ssautil\switch_test.go -> D:\GoogleAGI\agi-master\agi-gofuse\src\golang.org\x\tools\go\ssa\ssautil\switch_test.go
    --- Symlinking source file:
    C:\Users\wyvm3kp4\external\org_golang_x_tools\go\ssa\ssautil\testdata\switches.go -> D:\GoogleAGI\agi-master\agi-gofuse\src\golang.org\x\tools\go\ssa\ssautil\testdata\switches.go
    --- Symlinking source file:
    C:\Users\wyvm3kp4\external\org_golang_x_tools\go\ssa\ssautil\visit.go -> D:\GoogleAGI\agi-master\agi-gofuse\src\golang.org\x\tools\go\ssa\ssautil\visit.go

  5. cd D:\GoogleAGI\agi-master\agi-master

  6. dlv exec ./bazel-bin/pkg/gapis.exe -- -enable-local-files -persist -rpc localhost:8888
    result: could not launch process: decoding dwarf section info at offset 0x0: too short

How can i debug it?

AGI doesn't start properly: "Failed to connect to the graphics debugger"

Environment information:

  • AGI version: 1.0.0
  • Host OS: Windows 10 (19042.804)

Bug description
When starting the application an error occurs:
com.google.gapid.Server$GapisInitException: Failed to connect to the graphics debugger
at com.google.gapid.Server.connectToServer(Server.java:100)
at com.google.gapid.Server.connect(Server.java:72)
at com.google.gapid.Main$UI.startup(Main.java:150)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Restarting the server produces the same issue

I encountered the same issue with the binaries installed by MSI and the ZIP versions.

Reproduction steps
Start the application.

Stacktrace
com.google.gapid.Server$GapisInitException: Failed to connect to the graphics debugger
at com.google.gapid.Server.connectToServer(Server.java:100)
at com.google.gapid.Server.connect(Server.java:72)
at com.google.gapid.Main$UI.startup(Main.java:150)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Screenshots

Additional debugging information
Version.Major=1
Version.Minor=0
Version.Micro=0

Build.Number=332
Build.SHA=4ddd08c5546200a14141b75639a4b758fb2fadd2
Build.Host=win7-kokoro-agent
Build.Date=Mon Jan 19 04:24:31 PST 1970

Starting the server with gapis.exe give the following logs:
09:45:49.281 I: Adding new device
09:45:49.281 I: New scheduler for device: 8edf08f0211bc30c8b31104718b12c3c4fae94a2
09:45:49.281 I: New trace scheduler for device: 8edf08f0211bc30c8b31104718b12c3c4fae94a2 GR81M13
Bound on port '54980'
09:45:49.314 I: Starting grpc server
09:45:49.378 W: Could not scan for remote GGP devices. Error: Could not find ggp executable to list instances
Cause: ggp could not be found from GGP_SDK_PATH or PATH
GGP_SDK_PATH:

Device support validation fails for Samsung Galaxy S10 (SM-G973F)

Environment information:

  • AGI version: AGI 1.0.0
  • Host OS: Windows 10
  • Device model: Samsung Galaxy S10 (SM-G973F)
  • Android Version: 11

Bug description
AGI reports "Device support validation failed" for Samsung Galaxy S10 (SM-G973F) running Android 11.

Reproduction steps

  1. Connect device to PC
  2. Open AGI
  3. Select "Capture a new trace"
  4. Wait for device list to load
  5. Select Samsung Galaxy S10 entry
  6. Observe

Screenshots
image

Additional debugging information
gapis.log
gapic.log

Logcat (filtered by "gapid"):
logcat.txt

The server has exited with an error code of: 2

Environment information:

  • AGI version: agi-1.0.0
  • Host OS: Ubuntu

Bug description
when I start agi I get
The application encountered an error:
The server has exited with an error code of: 2
Most functions in AGI are unavailable without a server.
You can restart the server, exit AGI, or close the dialog to continue without a server.
Please check the logs for details.

Reproduction steps
start agi

Stacktrace

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xaa4e44]

goroutine 34 [running]:
github.com/google/gapid/core/app/crash.Crash(0x3b01d60, 0x73c8770)
	core/app/crash/crash.go:89 +0xb1
github.com/google/gapid/core/app/crash.handler()
	core/app/crash/crash.go:56 +0x52
panic(0x3b01d60, 0x73c8770)
	GOROOT/src/runtime/panic.go:967 +0x15d
github.com/google/gapid/core/os/android/adb.newDevice(0x4a258a0, 0xc00023c390, 0xc00007b549, 0x8, 0x2, 0x0, 0x0, 0x0)
	core/os/android/adb/device.go:255 +0x824
github.com/google/gapid/core/os/android/adb.scanDevices(0x4a258a0, 0xc00023c390, 0x0, 0x0)
	core/os/android/adb/device.go:291 +0x33d
github.com/google/gapid/core/os/android/adb.Devices(0x4a258a0, 0xc00023c390, 0x0, 0x0, 0x0, 0x0, 0x0)
	core/os/android/adb/device.go:106 +0x39
main.monitorAndroidDevices.func1(0xc000223798, 0x4a258a0, 0xc00023c390, 0xc00023c0c0)
	cmd/gapis/main.go:163 +0x76
main.monitorAndroidDevices(0x4a258a0, 0xc00023c390, 0xc00023c0c0, 0xc000223798)
	cmd/gapis/main.go:169 +0x4d
main.run.func1()
	cmd/gapis/main.go:122 +0x63
github.com/google/gapid/core/app/crash.Go.func1(0xc000237aa0)
	core/app/crash/crash.go:65 +0x49
created by github.com/google/gapid/core/app/crash.Go
	core/app/crash/crash.go:63 +0x3f

Screenshots

image

Additional debugging information
gapis.log
gapic.log

Does not work with targetSdkVersion 30

Environment information:

  • AGI version:1.0
  • Host OS: Windows 10
    If tracing on Android:
  • Device model: Google Pixel 4 XL
  • Android Version: 11

Bug description
AGI does not work when a target app is build with targetSdkVersion 30.

Reproduction steps
Build an app with targetSdkVersion 30.
Trying to capture a trace with AGI

Stacktrace

01-07 01:09:32.666   613   613 E SELinux : avc:  denied  { find } for pid=2859 uid=10224 name=tethering scontext=u:r:permissioncontroller_app:s0:c224,c256,c512,c768 tcontext=u:object_r:tethering_service:s0 tclass=service_manager permissive=0
01-07 01:09:32.677  5438  5438 I GraphicsEnvironment: GPU debug layers enabled for com.foo.sl
01-07 01:09:32.677  5438  5438 I GraphicsEnvironment: GPU debug layer apps: com.google.android.gapid.arm64v8a:com.google.pixel.coral.gpuprofiling.vulkanlayer
01-07 01:09:32.678  1508  7824 I AppsFilter: interaction: PackageSetting{62f85b8 com.foo.sl/10242} -> PackageSetting{c60877a com.google.android.gapid.arm64v8a/10233} BLOCKED
01-07 01:09:32.678  5438  5438 W GraphicsEnvironment: Debug layer app 'com.google.android.gapid.arm64v8a' not installed
01-07 01:09:32.678  5438  5438 D AndroidRuntime: Shutting down VM
01-07 01:09:32.679  5438  5438 E AndroidRuntime: FATAL EXCEPTION: main
01-07 01:09:32.679  5438  5438 E AndroidRuntime: Process: com.foo.sl, PID: 5438
01-07 01:09:32.679  5438  5438 E AndroidRuntime: java.lang.NullPointerException: Attempt to read from field 'java.lang.String android.content.pm.ApplicationInfo.primaryCpuAbi' on a null object reference
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.os.GraphicsEnvironment.chooseAbi(GraphicsEnvironment.java:888)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.os.GraphicsEnvironment.getDebugLayerAppPaths(GraphicsEnvironment.java:253)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.os.GraphicsEnvironment.getDebugLayerPathsFromSettings(GraphicsEnvironment.java:227)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:841)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.LoadedApk.getClassLoader(LoadedApk.java:958)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.LoadedApk.getResources(LoadedApk.java:1190)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.ContextImpl.createAppContext(ContextImpl.java:2659)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.ContextImpl.createAppContext(ContextImpl.java:2651)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6595)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.ActivityThread.access$1300(ActivityThread.java:237)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:106)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:223)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7656)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
01-07 01:09:32.679  5438  5438 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
01-07 01:09:32.681  1508  6586 W ActivityTaskManager:   Force finishing activity com.foo.sl/com.unity3d.player.UnityPlayerActivity

Here's a problematic part

AppsFilter: interaction: PackageSetting{62f85b8 com.foo.sl/10242} -> PackageSetting{c60877a com.google.android.gapid.arm64v8a/10233} BLOCKED

Related: https://developer.android.com/about/versions/11/privacy/package-visibility
The same app works as expected when built with targetSdkVersion 29.

Screenshots
N/A

Additional debugging information

  • Please attach the generated gapis.log and gapic.log files you will find in the temp folder (e.g. /tmp/ on linux).
  • If using Android: Please attach a full logcat dump (adb logcat -d > logcat-full.txt) that contains logs since AGI was started.

GLES Compute dispatching messes up CommandTree hierarchy

Environment information:

  • AGI version: 1.1.0:dev-20210127-3678b588413bc6da5cdd54235aeef4ce895f8ffb
    • Host OS: Linux
      If tracing on Android:
  • Device model: Pixel 4 XL
  • Android Version: pre-release Android S

Bug description

Replaying a frame capture of "Ragnarok M: Eternal Love" (with latest ANGLE that fixes a transparency bug) game-play results in a CommandTree hierarchy that is messed up. The root cause seems to be GLES compute dispatching

NOTE: I can send you an AGI trace (github won't let me attach it).

Reproduction steps
Steps to reproduce the behavior:

  1. Contact me and I'll send you a trace file
    OR
  2. Obtain latest ANGLE APK, "Ragnarok M: Eternal Love" game, and AGI
    a) The game likes to download an additional 1.9 GB worth of content (seems like at least once a week)
  3. Do an AGI frame capture and press "Start" after in game-play (requires pressing a Start or Play type button on two different screens)
  4. Open the trace and open the hierarchy of command buffers and render passes.
  5. Observe that the hierarchy underneath a glDispatchCompute may contain multiple levels of other commands (including draws and other dispatches).

Screenshots

The following screenshot shows multiple levels of dispatch and draw commands under a higher-level dispatch command.

Screenshot from 2021-03-01 16-20-59

make-debuggable fails when jarsigner path does not match java version

If make-debuggable is ran with the -jarsigner set to a different version of the Java, it can fail with:

jarsigner error: java.time.DateTimeException: Invalid value for MonthOfYear (valid values 1 - 12): 0

make-debuggable should run the jarsigner command with JAVA_HOME set to the same Java home that jarsigner lives in.

In core/os/android/apk/debugifier.go the following changes need to be made:

  1. execCommand needs to accept an environment variable map
  2. jarSign needs to determine JAVA_HOME constructed from the jarsigner path given
  3. jarSign needs to pass the JAVA_HOME along with the jarsigner execCommand call

Finding JAVA_HOME could be found with something like:

jarSignPath, err := exec.LookPath(a.JarSignCmd)
if err != nil {
  return err
}
jarSignResolved, err := os.ReadLink(jarSignPath)
if err != nil {
  return err
}
env := map[string]string{
    "JAVA_HOME": filepath.Dir(filepath.Dir(jarSignResolved)),
}

remote question about gapis and gapit

I noticed that gapis is a server and gapit is a client. I want to start gapis on machine A (addr A ), and start gapit on machine B (addr B). Then I use gapit communicate with gapis. How can I do it?
Maybe like this:
addr A cmd: gapis.exe -rpc A:8888
addr B cmd: gapit.exe ???

I tried to use "telnet A:8888" on addr B after start gapis on A, but failed.

Failed to take trace upon manual start

Environment information:

  • AGI version: ToT
  • Host OS: [e.g. Linux] macOS Catalina
    If tracing on Android:
  • Device model: Pixel 4 XL
  • Android Version: ToT

Bug description
I chose manual start. Then upon the scene I was interested, I clicked start.

Reproduction steps
Steps to reproduce the behavior: Seen a couple time. Not sure about repro steps

Stacktrace
The application encountered an error:
Tracing Failed
Cause: Failed during tracing session
Cause: EOF

Please check the logs for details.
com.google.gapid.server.Client$InternalServerErrorException: Tracing Failed
Cause: Failed during tracing session
Cause: EOF
at com.google.gapid.server.Client.throwIfError(Client.java:310)
at com.google.gapid.server.Client.lambda$streamTrace$55(Client.java:284)
at com.google.gapid.server.GapidClientGrpc$StreamHandler.onNext(GapidClientGrpc.java:225)
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onMessage(ClientCalls.java:436)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:658)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:643)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.google.gapid.server.Client$Stack: For request: RPC->streamTrace()
at com.google.gapid.server.Client.streamTrace(Client.java:281)
at com.google.gapid.server.Tracer.trace(Tracer.java:41)
at com.google.gapid.views.TracerDialog.showTracingDialog(TracerDialog.java:176)
at com.google.gapid.MainWindow.lambda$updateFileMenu$11(MainWindow.java:307)
at com.google.gapid.MainWindow$MenuItems$1.run(MainWindow.java:517)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:579)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:413)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4387)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4174)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3791)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at com.google.gapid.Main$UI.show(Main.java:128)
at com.google.gapid.Main.main(Main.java:77)

Screenshots
If applicable, add screenshots to help explain your problem.

Additional debugging information
logcat-full.txt
gapic.log
gapis.log

Timeout connecting to service

Environment information:

  • AGI version: Version 1.0.0:4ddd08c5546200a14141b75639a4b758fb2fadd2
  • Host OS: Windows 10
    If tracing on Android:
  • Device model: SM-G986N
  • Android Version: Android 11 API 30 - Qualcomm Adreno (TM) 650

Bug description
I could not select Application to debug.

Reproduction steps
Steps to reproduce the behavior:

  • 'Select an Application to Trace' dialog does not response.

Stacktrace
Please paste a stacktrace here if it's available. - No Crash Occurred

Screenshots
If applicable, add screenshots to help explain your problem.
AGI Timeout connecting to service 2020-12-22 142459

Additional debugging information
gapic.log

Build warning about Android NDK version

Environment information:

  • AGI version: Latest master
  • Host OS: Windows

Bug description
When building on Windows I see the warning:

WARNING: The major revision of the Android NDK referenced by android_ndk_repository rule 'androidndk' is 21. The major revisions supported by Bazel are [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]. Bazel will attempt to treat the NDK as if it was r20. This may cause compilation and linkage problems. Please download a supported NDK version.

This contradicts the build documentation that states:

The minimum required version of the NDK is r21.

Reproduction steps
Steps to reproduce the behavior:
Pull latest code and build according to the instructions

Support for Realme X2 Pro

Hey there,

I wanted to get in contact with the device OEM (Realme, a subsidiary of BBK Electronics) as denoted in the Device Validation section of the site. This device contains a Qualcomm Snapdragon 855+ which I assume should be similar enough to the Pixel 4's 855 and trivial to add support for.

Thanks in advance,
Mark

samsung SM-G9708- Android 10 API 29 Adreno (TM)640 验证失败 Deivce support validation failed

Environment information:

  • AGI version:
  • Host OS: [e.g. Linux]
    If tracing on Android:
  • Device model: samsung SM-G9708
  • Android Version: Android 10

Bug description
Deivce support validation failed

Reproduction steps
Steps to reproduce the behavior:

Stacktrace
Please paste a stacktrace here if it's available.

Screenshots
If applicable, add screenshots to help explain your problem.

Additional debugging information

  • Please attach the generated gapis.log and gapic.log files you will find in the temp folder (e.g. /tmp/ on linux).
  • If using Android: Please attach a full logcat dump (adb logcat -d > logcat-full.txt) that contains logs since AGI was started.

he server has exited with an error code of: -42

Environment information:

  • AGI version:v1.0.0-dev-20201202
  • Host OS: macos
    If tracing on Android:
  • Device model:
  • Android Version:

Bug description
The application encountered an error:

The server has exited with an error code of: 0
Most functions in AGI are unavailable without a server.
You can restart the server, exit AGI, or close the dialog to continue without a server.

Please check the logs for details.

Reproduction steps
Steps to reproduce the behavior:

Stacktrace

Please paste a stacktrace here if it's available.
com.google.gapid.Server$GapisInitException: Failed to initialize the graphics debugger
at com.google.gapid.Server.connect(Server.java:85)
at com.google.gapid.Main$UI.startup(Main.java:150)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.TimeoutException: Waited 3000000000 nanoseconds (plus 74968410 nanoseconds delay) for com.google.common.util.concurrent.SettableFuture@51f09465[status=PENDING, setFuture=[com.google.common.util.concurrent.AbstractTransformFuture$AsyncTransformFuture@373178de[status=PENDING, info=[inputFuture=[io.grpc.stub.ClientCalls$GrpcFuture@21c06cd8[status=PENDING, info=[GrpcFuture{clientCall=HeaderAttachingClientCall{delegate=ClientCallImpl{method=MethodDescriptor{fullMethodName=service.Gapid/GetServerInfo, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@4a3f2c1b, responseMarshaller=io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@1fb9da85, schemaDescriptor=com.google.gapid.proto.service.GapidGrpc$GapidMethodDescriptorSupplier@23f2a624}}}}]]], function=[com.google.gapid.server.Client$$Lambda$61/1817365648@1f6b82e]]]]]
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:495)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:98)
at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:307)
at com.google.gapid.rpc.Rpc.get(Rpc.java:54)
at com.google.gapid.Server.fetchServerInfo(Server.java:129)
at com.google.gapid.Server.connect(Server.java:77)
... 8 more

Screenshots
If applicable, add screenshots to help explain your problem.

Additional debugging information

  • Please attach the generated gapis.log and gapic.log files you will find in the temp folder (e.g. /tmp/ on linux).
  • If using Android: Please attach a full logcat dump (adb logcat -d > logcat-full.txt) that contains logs since AGI was started.

The application encountered an error:

Environment information:

  • AGI version:1.0.0:4ddd08c5546200a14141b75639a4b758fb2fadd2
  • Host OS: mac
    If tracing on Android:
  • Device :pixel4
  • Android Version:11 api 30

Bug description
The application encountered an error:

The server has exited with an error code of: 2
Most functions in AGI are unavailable without a server.
You can restart the server, exit AGI, or close the dialog to continue without a server.

Please check the logs for details.

org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
at org.eclipse.swt.SWT.error(SWT.java:4723)
at org.eclipse.swt.SWT.error(SWT.java:4638)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:188)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4126)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3793)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at com.google.gapid.views.TracerDialog.loadDevicesAndShowDialog(TracerDialog.java:194)
at com.google.gapid.views.TracerDialog.showTracingDialog(TracerDialog.java:173)
at com.google.gapid.LoadingScreen.lambda$createOptions$0(LoadingScreen.java:119)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4387)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1512)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1535)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1520)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1324)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4174)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3791)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
at org.eclipse.jface.window.Window.open(Window.java:799)
at com.google.gapid.Main$UI.show(Main.java:134)
at com.google.gapid.Main.main(Main.java:80)
Caused by: java.lang.NullPointerException
at com.google.gapid.views.TracerDialog$TraceInputDialog$TraceInput.setValidationStatus(TracerDialog.java:648)
at com.google.gapid.views.TracerDialog$TraceInputDialog$TraceInput$5.onUiThreadError(TracerDialog.java:641)
at com.google.gapid.views.TracerDialog$TraceInputDialog$TraceInput$5.onUiThreadError(TracerDialog.java:621)
at com.google.gapid.rpc.UiErrorCallback.onUiThread(UiErrorCallback.java:36)
at com.google.gapid.rpc.UiErrorCallback.onUiThread(UiErrorCallback.java:25)
at com.google.gapid.rpc.UiCallback.lambda$onFinish$0(UiCallback.java:46)
at com.google.gapid.widgets.Widgets.ifNotDisposed(Widgets.java:135)
at com.google.gapid.widgets.Widgets.lambda$scheduleIfNotDisposed$1(Widgets.java:163)
at com.google.gapid.widgets.Widgets.lambda$schedule$0(Widgets.java:155)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
... 19 more

question about memory_tracker layers

Hello, friend. I have used gapid and capture trace with memory_tracker config, but I can't parsing trace file by using agi.
I find that the branch of perfetto is different.
And I find agi set memory_tracker with false in
core\os\device\deviceinfo\cc\android\query.cpp.

Then I set it to be true. And I can capture with this config and produce a trace file. But I can't open the file and gapis will coredump. Then I think gapis stopped while loadcapture is operating and trace_processor parse failed.

Is this the reason you disable the vulkan_memory_tracker module? Or how can I fix it?
Thank you.

Real Cricket 20 (com.nautilus.RealCricket3D): crash at capture time

**Environment information:**app: com.nautilus.RealCricket3D

ANGLE version: 89.0.4386.0

AGI version: v1.1.0-dev-20210110

device: Pixel4 XL coral:11/RP1A.201005.004

When doing an ANGLE capture of this app, we have the following crash (full logcat attached):

01-19 13:23:36.089 15559 15559 F DEBUG   : pid: 15016, tid: 15130, name: UnityGfxDeviceW  >>> com.nautilus.RealCricket3D <<<
01-19 13:23:36.089 15559 15559 F DEBUG   : uid: 10447
01-19 13:23:36.089 15559 15559 F DEBUG   : signal 5 (SIGTRAP), code -6 (SI_TKILL), fault addr --------
01-19 13:23:36.089 15559 15559 F DEBUG   :     x0  0000000000000000  x1  0000000000003b1a  x2  0000000000000005  x3  00000073999809d8
01-19 13:23:36.089 15559 15559 F DEBUG   :     x4  b4000074d6ff48d8  x5  b4000074d6ff48d8  x6  b4000074d6ff48d8  x7  b4000074d6ff48d8
01-19 13:23:36.089 15559 15559 F DEBUG   :     x8  0000000000000083  x9  0000000000000000  x10 804fc35e387f4cc0  x11 0000000000000004
01-19 13:23:36.089 15559 15559 F DEBUG   :     x12 0000000000000000  x13 b4000074d6ff4784  x14 0000000000000001  x15 0000000000000002
01-19 13:23:36.089 15559 15559 F DEBUG   :     x16 0000007649d3b1d8  x17 0000007649d1c610  x18 0000007235f558a0  x19 000000000000000b
01-19 13:23:36.089 15559 15559 F DEBUG   :     x20 0000007399980e20  x21 0000007399980da0  x22 0000007399980e48  x23 00000055a701e9a8
01-19 13:23:36.089 15559 15559 F DEBUG   :     x24 0000000000000040  x25 0000007235f56000  x26 000000000000000b  x27 00000055a701e5c8
01-19 13:23:36.089 15559 15559 F DEBUG   :     x28 0000000000000004  x29 0000007399980d00
01-19 13:23:36.089 15559 15559 F DEBUG   :     lr  00000072417be98c  sp  0000007399980ce0  pc  0000007649d1c618  pst 0000000000000000
01-19 13:23:36.115 15559 15559 F DEBUG   : backtrace:
01-19 13:23:36.115 15559 15559 F DEBUG   :       #00 pc 000000000009a618  /apex/com.android.runtime/lib64/bionic/libc.so (tgkill+8) (BuildId: 03452a4a418e14ff93948f26561eace6)
01-19 13:23:36.115 15559 15559 F DEBUG   :       #01 pc 000000000017b988  /data/app/~~nrgv7xnbH2cgSMPMJS9soQ==/com.google.android.gapid.arm64v8a-1N-QtyIW0GEJ90aia3O_Pw==/lib/arm64/libgapii.so
01-19 13:23:36.115 15559 15559 F DEBUG   :       #02 pc 0000000000004d6c  /system/bin/app_process64 (art::SignalChain::Handler(int, siginfo*, void*)+348) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)
01-19 13:23:36.115 15559 15559 F DEBUG   :       #03 pc 00000000000007c8  [vdso] (__kernel_rt_sigreturn)
01-19 13:23:36.115 15559 15559 F DEBUG   :       #04 pc 0000000000107044  /data/app/~~AWtaG8_PrmC8b-n3yGeqhA==/com.qualcomm.qti.gpudrivers.msmnile.api30-_tkspBh9Su6j4kQjlOj2YQ==/base.apk!vulkan.adreno.so (offset 0x1a49000) (!!!0000!202e62a13f49e8c61275bf8c1d6ce9!4edd4fd!+244) (BuildId: f7954c33f39e75f93e5ecb4b70ac0964)
01-19 13:23:36.115 15559 15559 F DEBUG   :       #05 pc 00000000000b1500  /data/app/~~AWtaG8_PrmC8b-n3yGeqhA==/com.qualcomm.qti.gpudrivers.msmnile.api30-_tkspBh9Su6j4kQjlOj2YQ==/base.apk!vulkan.adreno.so (offset 0x1a49000) (!!!0000!2a418ddbe06bac73e12cf0f41836dd!4edd4fd!+136) (BuildId: f7954c33f39e75f93e5ecb4b70ac0964)
01-19 13:23:36.115 15559 15559 F DEBUG   :       #06 pc 000000000038e614  /data/app/~~nrgv7xnbH2cgSMPMJS9soQ==/com.google.android.gapid.arm64v8a-1N-QtyIW0GEJ90aia3O_Pw==/lib/arm64/libgapii.so
01-19 13:23:36.115 15559 15559 F DEBUG   :       #07 pc 000000000038dd20  /data/app/~~nrgv7xnbH2cgSMPMJS9soQ==/com.google.android.gapid.arm64v8a-1N-QtyIW0GEJ90aia3O_Pw==/lib/arm64/libgapii.so
...

logcat.txt

Copy or export selection data as CSV or TSV

Useful feature request, please:

Environment information:

  • AGI version: 1.0
  • Host OS: Mac

Bug description
It would be wonderful to be able to copy the two dimensional tables of numbers in the selection panel as a CSV or TSV file that I could easily paste into Google Sheets, Excel, etc.

Also, is there a way to automate exporting such data from the trace files with the the gapit command line utility? The documentation and examples are a bit sparse...

Reproduction steps
Capture a trace. Go into selection mode. Drag a rectangle over multiple rows and columns. See the data displayed in a table in the selection window at the bottom of the window. Try to select the data. You can only select one row at a time, and you can't copy the data. Ideally I would like to select all or any of the cells using standard selection commands, and then copy it as a CSV or TSV file to the clipboard. (Needs to be a way to select between CSV and TSV, which is useful for Google Sheets.) Being able to easily copy data from AGI into Google Sheets will make me joyful!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.