google / agi Goto Github PK
View Code? Open in Web Editor NEWAndroid GPU Inspector
Home Page: https://gpuinspector.dev
License: Apache License 2.0
Android GPU Inspector
Home Page: https://gpuinspector.dev
License: Apache License 2.0
hello, we use a arm64 linux machine to run android emulator, and use gpu host mode to render, Does this library support android emulator?
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.
Environment information:
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
adb logcat -d > logcat-full.txt
) that contains logs since AGI was started.hi, i cannot select device when "Capture a new trace".
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": {}
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?
AGI supported devices list don't contain mediatek's 6891 platform
The GPU spec of mediatek's 6891 platform is as follows:
ARM Mali-G77 MC9
Note: This is described w.r.t. FIFA Soccer, but is true for all GLES games/applications.
Describe the issue:
Expected behavior:
Actual behavior:
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:
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:
Environment information:
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
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
ADB path I setup.
Additional debugging information
gapic.log
gapis.log
Thanks
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.
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.
Environment information:
Bug description
Crashed on close
Reproduction steps
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.
Additional debugging information
adb logcat -d > logcat-full.txt
) that contains logs since AGI was started.Environment information:
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:
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.
For a long period, the supported device list is not updated.
Could anyone to tell me when to Support Qualcomm® Adreno™ 618?
Thanks in advance.
Collin
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.
Environment information:
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.
Additional debugging information
logcat-full.txt
Environment information:
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?
Environment information:
ffcead0e9616e3e9488596930d6192f1172cc9a9
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)
Additional debugging information
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)
Environment information:
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)
windows 10
bazel : 2.0.0
delve version: 1.4
compile step:
bazel --host_jvm_args=-Djavax.net.ssl.trustStore="D:\JDK\jre\lib\security\cacerts" build pkg
cd D:\GoogleAGI\agi-master\
mkdir agi-gofuse
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
cd D:\GoogleAGI\agi-master\agi-master
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?
Environment information:
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:
Environment information:
Bug description
AGI reports "Device support validation failed" for Samsung Galaxy S10 (SM-G973F) running Android 11.
Reproduction steps
Additional debugging information
gapis.log
gapic.log
Logcat (filtered by "gapid"):
logcat.txt
Requesting support for Samsung S20 5G (Snapdragon 865 5G)
This device is Android 11, Qualcomm SDM765.
On this page...
Environment information:
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
VkDestroyInstance is overzealous at cleaning up.
Environment information:
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
adb logcat -d > logcat-full.txt
) that contains logs since AGI was started.Environment information:
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:
Screenshots
The following screenshot shows multiple levels of dispatch and draw commands under a higher-level dispatch command.
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:
execCommand
needs to accept an environment variable mapjarSign
needs to determine JAVA_HOME
constructed from the jarsigner
path givenjarSign
needs to pass the JAVA_HOME
along with the jarsigner
execCommand
callFinding 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)),
}
GAPIS can arbitrarily crash when a context is cancelled, if it happens in some api.go functions.
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.
Environment information:
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
AGI replay will re-run the VkWaitForFences as observed during the trace.
This may be incorrect if WAIT_ALL was set and/or if the timeout was non infinite.
Replay should at least wait for at least the same set of synchronization primitives as this call returned.
Environment information:
Bug description
I could not select Application to debug.
Reproduction steps
Steps to reproduce the behavior:
Stacktrace
Please paste a stacktrace here if it's available. - No Crash Occurred
Screenshots
If applicable, add screenshots to help explain your problem.
Additional debugging information
gapic.log
The "Unstable Dev Release" link in the main README.md goes to dead page:
https://github.com/google/agi-dev-releases/releases
Environment information:
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
Please add support
On this page...
Looks like this is out of date. Says AGI only supports Pixel 4. No mention of Pixel 4A or Pixel 5.
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
Hello,
It would be great if you could support the Pixel 3 in the AGI app.
For information related to GLES, see https://developer.android.com/ndk/guides/rootless-debug-gles.
Environment information:
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
adb logcat -d > logcat-full.txt
) that contains logs since AGI was started.Environment information:
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
adb logcat -d > logcat-full.txt
) that contains logs since AGI was started.Environment information:
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
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.
**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
...
Useful feature request, please:
Environment information:
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!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.