google / gapid Goto Github PK
View Code? Open in Web Editor NEWGraphics API Debugger
Home Page: https://gapid.dev
License: Apache License 2.0
Graphics API Debugger
Home Page: https://gapid.dev
License: Apache License 2.0
Currently in the failure case we fail silently, we should at least log more errors so that we can see output logs.
It would be helpful in some cases to be able to save a modified trace back to disk.
This would let users make a change, and then come back to those modifications later, or send them off to someone else.
API Calls -> Commands
API State -> State
gapis: fatal error: concurrent map read and map write
gapis:
gapis: goroutine 9006 [running]:
gapis: runtime.throw(0x5e0c8b0, 0x21)
gapis: /usr/local/go/src/runtime/panic.go:566 +0x95 fp=0xc47709caa0 sp=0xc47709ca80
gapis: runtime.mapaccess1_fast32(0x5a16080, 0xc420242840, 0x50, 0xb90)
gapis: /usr/local/go/src/runtime/hashmap_fast.go:21 +0x1a4 fp=0xc47709cac8 sp=0xc47709caa0
gapis: github.com/google/gapid/gapis/gfxapi/gles.newUnusedID(0x50, 0xc47709cb58, 0xc4638bbe10)
gapis: /Users/bclayton/src/go/src/github.com/google/gapid/gapis/gfxapi/gles/read_framebuffer.go:199 +0x6c fp=0xc47709cb20 sp=0xc47709cac8
gapis: github.com/google/gapid/gapis/gfxapi/gles.(*tweaker).glCreateProgram(0xc428d3cb90, 0x4cecba7)
gapis: /Users/bclayton/src/go/src/github.com/google/gapid/gapis/gfxapi/gles/tweaker.go:239 +0x4d fp=0xc47709cb78 sp=0xc47709cb20
gapis: github.com/google/gapid/gapis/gfxapi/gles.(*tweaker).makeProgram(0xc428d3cb90, 0x5e3d599, 0xbe, 0x5e3dd32, 0x100, 0xc4551f2b40)
gapis: /Users/bclayton/src/go/src/github.com/google/gapid/gapis/gfxapi/gles/tweaker.go:247 +0x2f fp=0xc47709cbc8 sp=0xc47709cb78
gapis: github.com/google/gapid/gapis/gfxapi/gles.drawUndefinedFramebuffer(0x7115540, 0xc4638bbe10, 0x70ff2c0, 0xc42505a8e0, 0x7145920, 0xc47666d960, 0xc453fb3a00, 0x70a07a0, 0xc425210900, 0xc429248320, ...)
gapis: /Users/bclayton/src/go/src/github.com/google/gapid/gapis/gfxapi/gles/undefined_framebuffer.go:88 +0x197 fp=0xc47709cd50 sp=0xc47709cbc8
gapis: github.com/google/gapid/gapis/gfxapi/gles.undefinedFramebuffer.func1(0x7115540, 0xc4638bbe10, 0x9a95, 0x70ff2c0, 0xc42505a8e0, 0x70a07a0, 0xc425210900)
gapis: /Users/bclayton/src/go/src/github.com/google/gapid/gapis/gfxapi/gles/undefined_framebuffer.go:44 +0x2c6 fp=0xc47709ce30 sp=0xc47709cd50
gapis: github.com/google/gapid/gapis/atom/transform.transform.Transform(0x5dd9f83, 0x10, 0xc4551f2a60, 0x7115540, 0xc4638bbe10, 0x9a95, 0x70ff2c0, 0xc42505a8e0, 0x70a07a0, 0xc425210900)
gapis: /Users/bclayton/src/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:69 +0x75 fp=0xc47709ce78 sp=0xc47709ce30
gapis: github.com/google/gapid/gapis/atom/transform.(*transform).Transform(0xc4551f2a80, 0x7115540, 0xc4638bbe10, 0x9a95, 0x70ff2c0, 0xc42505a8e0, 0x70a07a0, 0xc425210900)
gapis: :10 +0xb6 fp=0xc47709ced8 sp=0xc47709ce78
gapis: github.com/google/gapid/gapis/atom/transform.TransformWriter.MutateAndWrite(0xc47666d960, 0x70a07e0, 0xc4551f2a80, 0x70a07a0, 0xc425210900, 0x7115540, 0xc4638bbe10, 0x9a95, 0x70ff2c0, 0xc42505a8e0)
gapis: /Users/bclayton/src/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:92 +0x83 fp=0xc47709cf28 sp=0xc47709ced8
gapis: github.com/google/gapid/gapis/atom/transform.(*TransformWriter).MutateAndWrite(0xc425210930, 0x7115540, 0xc4638bbe10, 0x9a95, 0x70ff2c0, 0xc42505a8e0)
We should not iterating through the subpass'es in a renderpass and use the first color or depth attachment found in the subpass'es.
The correct way is to recording the last subpass ever used along with calls to vkCmdNextPass and use the last used subpass's color attachment and depth attachment as the rendering target.
If GAPIC crashes it can leave behind orphaned GAPIS processes.
This could be fixed by adopting GAPIS <-> GAPIR heartbeat logic to shutdown GAPIS if it hasn't heard from the client in X seconds.
GAPID lists package names in launch Activity dialog.
Would be useful to also display the name of the app and sort by app name.
get the following error at 'do build' time:
-- Build files have been written to: C:/dev/gapid/release
ninja: error: 'C:/dev/gocode/src/github.com/google/gapid/cc-memory-tracker', needed by 'aarch64/src/aarch64-stamp/aarch64-gapii', missing and no known rule to make it
Error running C:\dev\Ninja\ninja.exe [install]: ⦕exit status 1⦖:Wait
exit status 1
$ sh -x do run gapic
++ dirname do
_exports.cpp: The filename, directory name, or volume label syntax is incorrect.
Run ⇒ run.go@129
main ⇒ main.go@24
[2/308] Apic on C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/gfxapi/core/core.api with cc_co re_api_spy.h.tmpl
[3/308] Apic on C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/gfxapi/vulkan/vulkan.api with v ulkan_pb_vulkan_api.proto.tmpl
[4/308] Apic on C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/gfxapi/core/core.api with cc_co re_api_imports.h.tmpl
[5/308] Linking Go executable bin\simplecalc.exe
[6/308] Codergen for gapid
FAILED: C:/Users/jia.wanj/go/src/github.com/google/gapid/signatures.txt C:/Users/jia.wanj/go/src/githu b.com/google/gapid/gapil/snippets/snippets_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/ framework/binary/any/any_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/framework/binary/t est/test_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/atom/atom_binary.go C:/Users /jia.wanj/go/src/github.com/google/gapid/gapis/atom/test/test_binary.go C:/Users/jia.wanj/go/src/githu b.com/google/gapid/gapis/gfxapi/core/core_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/g apis/gfxapi/gles/gles_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/gfxapi/test/tes t_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/gfxapi/test/gfxapi_test_import/gfxa pi_test_import_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/gfxapi/vulkan/vulkan_b inary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/gapis/memory/memory_binary.go C:/Users/jia.w anj/go/src/github.com/google/gapid/gapis/replay/protocol/protocol_binary.go C:/Users/jia.wanj/go/src/g ithub.com/google/gapid/gapis/resolve/resolve_binary_test.go C:/Users/jia.wanj/go/src/github.com/google /gapid/test/integration/replay/gles/gles_binary.go C:/Users/jia.wanj/go/src/github.com/google/gapid/co re/cc/coder/atom.cpp C:/Users/jia.wanj/go/src/github.com/google/gapid/core/cc/coder/atom.h C:/Users/ji a.wanj/go/src/github.com/google/gapid/core/cc/coder/core.cpp C:/Users/jia.wanj/go/src/github.com/googl e/gapid/core/cc/coder/core.h C:/Users/jia.wanj/go/src/github.com/google/gapid/core/cc/coder/gles.cpp C :/Users/jia.wanj/go/src/github.com/google/gapid/core/cc/coder/gles.h C:/Users/jia.wanj/go/src/github.c om/google/gapid/core/cc/coder/memory.cpp C:/Users/jia.wanj/go/src/github.com/google/gapid/core/cc/code r/memory.h C:/Users/jia.wanj/go/src/github.com/google/gapid/core/cc/coder/vulkan.cpp C:/Users/jia.wanj /go/src/github.com/google/gapid/core/cc/coder/vulkan.h
cmd.exe /C "cd /D D:\Download\gapid\release && D:\Download\gapid\release\bin\codergen.exe --gopath C:/ Users/jia.wanj/go/src/github.com/google/gapid/third_party;C:/Users/jia.wanj/go --signatures C:/Users/j ia.wanj/go/src/github.com/google/gapid/signatures.txt --go -cpp C:/Users/jia.wanj/go/src/github.com/go ogle/gapid/core/cc/coder -java C:/Users/jia.wanj/go/src/github.com/google/gapid/gapic/src github.com/g oogle/gapid/..."
Critical:Main failed
⦕C:\Users\jia.wanj\go\src\github.com\google\gapid\gapis\gfxapi\vulkan\api.go:27:1: expected declar ation, found '.' (and 10 more errors)⦖
Run ⇒ run.go@129
main ⇒ main.go@48
ninja: build stopped: subcommand failed.
Error running D:\Program Files\ninja-win\ninja.exe [install]: ⦕exit status 1⦖:Wait
exit status 1
client generated sub-groups ahould appeared like: "Commands [6677 - 7677]"
As above, GAPIS crashes when this happens.
Error message is "permission denial", but the real issue is wrong log file paths.
Caused by gapic/src/main/com/google/gapid/server/GapisProcess.java
, line 77 and line 81
In commit: 07201a7, we removed the File.separator
from the code, this causes this issue on Linux.
Currently we do not export any geometry from the Vulkan back-end. We should be able to examine the pipeline state for the vertex stream.
[196/205] Linking Go executable test\test-gapis-gfxapi-gles.exe
FAILED: test/test-gapis-gfxapi-gles.exe
cmd.exe /C "cd . && "c:/dev/c make/bin/cmake.exe" -DGO_ENV=D:/gapid/release/go/goenv.cmake -DBUILDBOT=OFF -DGO_BUILD=test\test-gapis-gfxapi-gles.exe -static -DGO_PACKAGE=github.com/google/gapid/gapis/gfxapi/gles -P D:/src/github.com/google/gapid/cmake/Modules/GoCompile.cmake && cmd.exe /C "cd /D D:\src\github.com\google\gapid\gapis\gfxapi\gles && "c:\dev\c make\bin\cmake.exe" -DTESTER=D:/gapid/release/test/test-gapis-gfxapi-gles.exe -DGO_PATH="D:/src/github.com/google/gapid/third_party;D:/" -P D:/src/github.com/google/gapid/cmake/Modules/GoTest.cmake""
# testmain
C:\dev\golang\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
C:/dev/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: BFD (GNU Binutils) 2.27 assertion fail ../../binutils-2.27/bfd/cofflink.c:2339
C:/dev/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: final link failed: Bad value
collect2.exe: error: ld returned 1 exit status
I think cofflink.c:2339 is this assert.
I20170324-093527524[main][models.Capture.loadCapture] Loading capture /ws/gpu/training_20170323_1156.gfxtrace...
W20170324-093528956[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: panic: runtime error: index out of range
W20170324-093528956[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis:
W20170324-093528957[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: goroutine 75 [running]:
W20170324-093528957[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/gfxapi/gles.moveClientVBsToVAs(0x766d360, 0xc422357e90, 0xc421aec190, 0xc422ba9d70, 0x0, 0xffffffffffffffff, 0x297, 0x7672c40, 0xc4205326f0, 0xc4200ae310, ...)
W20170324-093528957[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/gfxapi/gles/compat.go:1071 +0x611
W20170324-093528957[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/gfxapi/gles.compat.func4(0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9f20)
W20170324-093528958[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/gfxapi/gles/compat.go:521 +0x15fd
W20170324-093528958[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.transform.Transform(0x5fbd6d9, 0x6, 0xc420659f40, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9f20)
W20170324-093528958[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:75 +0x75
W20170324-093528958[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.(*transform).Transform(0xc421c9dc00, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9f20)
W20170324-093528958[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: <autogenerated>:10 +0xb1
W20170324-093528961[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.TransformWriter.MutateAndWrite(0xc4200ae310, 0x7613120, 0xc421c9dc00, 0x76130e0, 0xc422ba9f20, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0)
W20170324-093528961[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:98 +0x83
W20170324-093528961[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.(*TransformWriter).MutateAndWrite(0xc422ba9f50, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0)
W20170324-093528961[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: <autogenerated>:8 +0xa1
W20170324-093528961[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/gfxapi/gles.(*readFramebuffer).Transform(0xc422bae090, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9f50)
W20170324-093528961[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/gfxapi/gles/read_framebuffer.go:45 +0x73
W20170324-093528962[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.TransformWriter.MutateAndWrite(0xc4200ae310, 0x76111e0, 0xc422bae090, 0x76130e0, 0xc422ba9f50, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0)
W20170324-093528962[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:98 +0x83
W20170324-093528962[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.(*TransformWriter).MutateAndWrite(0xc422ba9f80, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0)
W20170324-093528962[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: <autogenerated>:8 +0xa1
W20170324-093528963[Thread-1][server.GapisConnection$GRpcGapisConnection$LogMonitorThread.run] getLogStream() threw unexpected exception
W20170324-093528963[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/gfxapi/gles.undefinedFramebuffer.func1(0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9f80)
W20170324-093528963[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/gfxapi/gles/undefined_framebuffer.go:32 +0x9c
W20170324-093528963[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.transform.Transform(0x5fca805, 0x10, 0xc421c9da20, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9f80)
W20170324-093528964[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:75 +0x75
W20170324-093528964[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.(*transform).Transform(0xc421c9da40, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9f80)
W20170324-093528964[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: <autogenerated>:10 +0xb1
W20170324-093528965[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.TransformWriter.MutateAndWrite(0xc4200ae310, 0x7613120, 0xc421c9da40, 0x76130e0, 0xc422ba9f80, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] LoadData error
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] java.util.concurrent.ExecutionException: io.grpc.StatusRuntimeException: UNAVAILABLE: End of stream or IOException
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:500)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:459)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:76)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:142)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.gapid.rpclib.rpccore.Rpc$Result.get(Rpc.java:148)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.gapid.models.CaptureDependentModel.processResult(CaptureDependentModel.java:106)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.gapid.models.CaptureDependentModel$2.onRpcThread(CaptureDependentModel.java:84)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.gapid.models.CaptureDependentModel$2.onRpcThread(CaptureDependentModel.java:81)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.gapid.util.UiCallback.onFinish(UiCallback.java:46)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.gapid.rpclib.rpccore.Rpc$1.run(Rpc.java:100)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:435)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:900)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:811)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:675)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:112)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:435)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:900)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:811)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:675)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractTransformFuture.run(AbstractTransformFuture.java:112)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:435)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:900)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:811)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:675)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:466)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:442)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:481)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:398)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:513)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at java.lang.Thread.run(Thread.java:745)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE: End of stream or IOException
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] at io.grpc.Status.asRuntimeException(Status.java:545)
E20170324-093528963[grpc-default-executor-2][models.CaptureDependentModel.processResult] ... 9 more
W20170324-093528963[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:98 +0x83
W20170324-093529021[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.(*TransformWriter).MutateAndWrite(0xc422ba9fb0, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0)
W20170324-093529022[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: <autogenerated>:8 +0xa1
W20170324-093529022[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/gfxapi/gles.(*findIssues).Transform(0xc422ba9bc0, 0x766d360, 0xc422357e90, 0x297, 0x7672c40, 0xc4205326f0, 0x76130e0, 0xc422ba9fb0)
W20170324-093529022[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/gfxapi/gles/find_issues.go:102 +0x168
W20170324-093529022[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.TransformWriter.MutateAndWrite(0xc4200ae310, 0x76111a0, 0xc422ba9bc0, 0x76130e0, 0xc422ba9fb0, 0x766d360, 0xc4220ff380, 0x297, 0x7672c40, 0xc4205326f0)
W20170324-093529040[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:98 +0x83
W20170324-093529041[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.(*TransformWriter).MutateAndWrite(0xc422b7e000, 0x766d360, 0xc4220ff380, 0x297, 0x7672c40, 0xc4205326f0)
W20170324-093529041[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: <autogenerated>:8 +0xa1
W20170324-093529041[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/atom/transform.Transforms.Transform(0xc42053bd80, 0x5, 0x8, 0x766d360, 0xc4220ff380, 0xc420caa000, 0x3987, 0x3987, 0x76113a0, 0xc421eb64c0)
W20170324-093529041[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/atom/transform/transforms.go:40 +0x1ba
W20170324-093529041[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/gfxapi/gles.api.Replay(0x766d360, 0xc4220fed20, 0xc421eba008, 0xc421eba010, 0x5c2d8a0, 0x776cbe0, 0xc422548100, 0x1, 0x1, 0x76cfda0, ...)
W20170324-093529042[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/gfxapi/gles/replay.go:211 +0xba3
W20170324-093529042[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/gfxapi/gles.(*api).Replay(0x776cbe0, 0x766d360, 0xc4220fed20, 0xc421eba008, 0xc421eba010, 0x5c2d8a0, 0x776cbe0, 0xc422548100, 0x1, 0x1, ...)
W20170324-093529042[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: <autogenerated>:2420 +0xfb
W20170324-093529042[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/replay.(*batcher).send(0xc42214a930, 0x766d360, 0xc4220fed20, 0xc422548100, 0x1, 0x1, 0x0, 0x0)
W20170324-093529042[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/replay/batcher.go:178 +0x934
W20170324-093529042[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: github.com/google/gapid/gapis/replay.(*batcher).run(0xc42214a930, 0x766d360, 0xc422160d80)
W20170324-093529042[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/replay/batcher.go:95 +0x5f9
W20170324-093529043[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: created by github.com/google/gapid/gapis/replay.(*Manager).getBatchStream
W20170324-093529043[server.ChildProcess$LoggingStringHandler][server.ChildProcess$LoggingStringHandler.lambda$new$71] gapis: /myenv/go/src/github.com/google/gapid/gapis/replay/manager.go:55 +0x3f9
W20170324-093529043[server.ChildProcess-gapis][server.ChildProcess.onExit] The gapis process exited with a non-zero exit value: 2
I20170324-093529043[server.ChildProcess-gapis][server.ChildProcess.shutdown] Shutting down gapis
For context, see #17.
When changing a parameter, we should transparently change captures while keeping all the view states the same.
We don't want to have to re-find the context, re-expand the tree view, re-select the textures etc.
In state.go, line 53, only the image usage bit is checked. Actually we should check the attachment type in the LastUsedFramebuffer
.
The installer allows the user to install the package anywhere, suggesting %PROGRAMFILES%\gapid
. The installer will install GAPID into the selected folder with the following structure. Along with an installer, we provide a .zip
file that can be extracted anywhere. Both will follow the same structure:
<install root or gapid inside .zip>\
├─ jre\...
├─ lib\
│ ├─ GraphicsSpyLayer.json
│ ├─ gapic.jar
│ ├─ libgapii.dll
│ ├─ libVkLayer_VirtualSwapchain.dll
│ └─ VirtualSwapchainLayer.json
├─ strings\en-us.stb
├─ build.properties
├─ gapid-arm64-v8a.apk
├─ gapid-armeabi-v7a.apk
├─ gapid-x86.apk
├─ gapid.bat (shell script to launch the client)
├─ gapir.exe
├─ gapis.exe
├─ gapit.exe
├─ libgcc_s_seh-1.dll
├─ libstdc++-6.dll
└─ libwinpthread-1.dll
The built package consists of a .dmg
disk image containing the GAPID.app
application and link to /Applications
to make "installing" easy. The GAPID.app
can be run from anywhere and follows the following structure:
GAPID.app/
└─ Contents/
├─ MacOS/
│ └─ <see below>
├─ Resources/GAPID.icns
└─ Info.plist
Along with the .dmg
disk image, we also provide a .zip
file with the same content's as inside the Contents/MacOS/
folder of the .app
package:
<Content/MacOS inside .app or gapid inside .zip>/
├─ jre/...
├─ lib/
│ ├─ gapic.jar
│ └─ libgapii.dylib
├─ strings/en-us.stb
├─ build.properties
├─ gapid-arm64-v8a.apk
├─ gapid-armeabi-v7a.apk
├─ gapid-x86.apk
├─ gapid (shell script to launch the client)
├─ gapir
├─ gapis
└─ gapit
When running the .app
application, the gapid
script is invoked. When using the .zip
file, the only way to run the application is via the terminal by running the gapid
script or the executables.
We provide a Debian .deb
package and a .zip
file with the same contents. The package installs into /opt/gapid
, while archives can be expanded anywhere. The Debian package depends on openjdk-8-jre
and neither it nor the .zip
archives contain the JRE. The launcher script looks for java
first on the $PATH
, then $JAVA_HOME
and finally the hard-coded /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
, which the openjdk-8-jre
package provides.
/{opt|wherever}/gapid/
├─ lib/
│ ├─ gapic.jar
│ ├─ GraphicsSpyLayer.json
│ ├─ libgapii.so
│ ├─ libVkLayer_VirtualSwapchain.so
│ └─ VirtualSwapchainLayer.json
├─ strings/en-us.stb
├─ build.properties
├─ gapid-arm64-v8a.apk
├─ gapid-armeabi-v7a.apk
├─ gapid-x86.apk
├─ gapid (shell script to launch the client)
├─ gapir
├─ gapis
└─ gapit
From glIsTexture:
"A name returned by glGenTextures, but not yet associated with a texture by calling glBindTexture, is not the name of a texture."
We do not represent this in the API file.
Similar (Tri-State): glIsQuery, glIsRenderbuffer, glIsVertexArray
Different (Tri-State):
glIsProgram:
"A program object marked for deletion with glDeleteProgram but still in use as part of current rendering state is still considered a program object and glIsProgram will return GL_TRUE"
glIsShader:
"A shader object marked for deletion with glDeleteShader but still attached to a program object is still considered a shader object and glIsShader will return GL_TRUE."
Two-State: glIsSampler
This will let us handle the mutations that are done by commands in command-buffers in a clear way.
Otherwise we will effectively have to mimic closure support with either externs, which is what we are doing now temporarily, or a combination of structs and switch statements and much un-needed complexity.
It looks like GAPIC does not set ANDROID_HOME for gapis to use while tracing. This means that it cannot find adb.exe and no devices are recognized.
ANDROID_HOME is not set by the SDK installer, so we should probably have an option in gapic somewhere to set it.
This can be quite jarring, since most compositors drop the alpha channel. It makes the film-strip look incorrect.
It would be good to either checkerboard the filmstrip, or even better just drop the alpha channel for the filmstrip all together.
I noticed this on windows, I am not sure if it happens elsewhere.
The first time I click on a link, the cmd is selected, and shown on screen.
If I scroll away while keeping the same cmd selected, clicking the link later has no effect.
func (t *DeadCodeElimination) Transform(ctx context.Context, id atom.ID, a atom.Atom, out transform.Writer) {
panic(fmt.Errorf("This transform does not accept input atoms"))
}
ewwwwwww.
If the DCE is always the source of atoms, make it write to the Transforms.
We should check the contents of the capture, and pick the device for replay appropriately.
Keep getting error message:
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 24 (X_GLXCreateNewContext)
Value in failed request: 0x0
Serial number of failed request: 25
Current serial number in output stream: 26
RAN: /usr/local/home/qining/gapid/debug/test/test-core-os-device
GOT:
CMake Error at /usr/local/home/qining/Workspace/gopath/src/github.com/google/gapid/cmake/Modules/GoTest.cmake:25 (message):
RESULT: 1
./do build generate
does not help
Removing build directory does not help
I noticed this on Vulkan.
Occasionally when expanding a frame, only the first command submitted during that frame will show up in the command list.
E.g.
- 1806: Frame 70 (10 Commands)
- 1806: vkQueueWaitIdle()
- 1816: Frame 71 (10 Commands)
- 1816: vkQueueWaitIdle()
- 1826: Frame 72 (10 Commands)
- 1826: vkQueueWaitIdle()
- 1827: vkMapMemory()
- 1828: vkUnmapMemory()
...
...
...
Where all frames should have the contents of 1826.
I have already checked, and there is only one context in the application.
Proposal:
GetLogStream
that disables the stdout & stderr log.Handler
for the duration of the call.This avoids all the nasty string comparison logic and unifies the log handling.
Dear all,
I am trying to build GAPID, tried 4 different machines, 3 Windows7 and 1 Windows10, and all failed.
At first, the auto-generated header files are missing on Windows7 machines.
Laster, I successfully generated those missing header files and reference_embed.so on Windows10, and copied those files to Windows7 machines to continue building.
And then 2 of Windows7 machine come across the gradle problem (as copied below in detail).
One Windows7 machine successfully builds out, however, is not able to run those APIs.
Here below are the cmd output data, could anyone help me out?
Thank you in advance very much!
Auto generated header file missing:
on Windows 7, JDK 1.8_121, Android_SDK, NDK_r13,
Headers failed to find (or, failed to auto generate):
gles_types.h
vulkan_types.h
core_imports.h
gles_imports.h
vulkan_imports.h
core_spy.h
gles_spy.h
vulkan_spy.h
gles_gfx_api.h
vulkan_gfx_api.h
reference_embed.go (in the replay -> gles folder )
After successfully generated those files above in Windows10 system, and migrate those files into Windows7, here below comes the gradle problem:
FAILED: aarch64/gapid-apk/app/build/outputs/apk/app-debug.apk
..
..GoPath/src/github.com/google/gapid/cmake/Modules/RunGradle.cmake"
Downloading https://services.gradle.org/distributions/gradle-2.4-all.zip
..
Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException: Connection timed out: connect
..
... 3 more
CMake Error at
/..GoPath/src/github.com/google/gapid/cmake/Modules/RunGradle.cmake:32 (message):
1
ninja: build stopped: subcommand failed.
Error running D:\Senon\Download\ninja.exe [-v -j1 install]: ⦕exit status 1⦖:Wait
There happens to be one machine build all objects successfully, however, it appears
Process returned error
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Downloads/GoPath/Release_Output/release
[0/1] cmd.exe /C "cd /D D:\Downloads\GoPath\Release_Output\release && "C:\Program Files\CMake\bin\cmake.exe" -P cmake_install.cmake"
-- Install configuration: "Release"
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/filehash.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gapir.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gapis.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gapit.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gfxtrace.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/robot.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/stash.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libVkLayer_VirtualSwapchain.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libVkLayer_VirtualSwapchain.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libVkLayer_VirtualSwapchain.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/VirtualSwapchainLayer.json
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libVkLayer_VirtualSwapchain.dll.a
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libVkLayer_VirtualSwapchain.dll
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libgapii.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libgapii.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libgapii.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libgapii.dll.a
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libgapii.dll
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libinterceptor.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libinterceptor.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libinterceptor.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libVkLayerGraphicsSpy.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libVkLayerGraphicsSpy.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libVkLayerGraphicsSpy.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/strings/en-us.stb
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/gapid.apk
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/gapid.apk
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/gapid.apk
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/./source.properties
do run gapis
ninja: no work to do.
Error running D:\Downloads\SenAndroidStudio\GoPath\Release_Output\release\bin\gapis []: Process returned error
Cause: exit status 3221225595
do run gapic
[0/1] Install the project...
-- Install configuration: "Release"
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/filehash.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gapir.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gapis.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gapit.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/gfxtrace.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/robot.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/stash.exe
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libVkLayer_VirtualSwapchain.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libVkLayer_VirtualSwapchain.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libVkLayer_VirtualSwapchain.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/VirtualSwapchainLayer.json
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libVkLayer_VirtualSwapchain.dll.a
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libVkLayer_VirtualSwapchain.dll
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libgapii.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libgapii.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libgapii.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libgapii.dll.a
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/windows/x86_64/libgapii.dll
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libinterceptor.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libinterceptor.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libinterceptor.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/libVkLayerGraphicsSpy.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/libVkLayerGraphicsSpy.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/libVkLayerGraphicsSpy.so
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/strings/en-us.stb
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/arm64-v8a/gapid.apk
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/armeabi-v7a/gapid.apk
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/android/x86/gapid.apk
-- Up-to-date: D:/Downloads/GoPath/Release_Output/release/pkg/./source.properties
I20170323-160311857[main][server.GapiPaths.checkForTools] Looking for GAPID in D:\Downloads\GoPath\Release_Output\release\pkg -> D:\Downloads\GoPath\Release_Output\release\pkg\windows\x86_64\gapis.exe
I20170323-160311892[server.ChildProcess-gapis][server.ChildProcess.runProcess] Starting gapis as [D:\Downloads\GoPath\Release_Output\release\pkg\windows\x86_64\gapis.exe, -log-file, C:\Users\SWX4451\AppData\Local\Temp\gapis.log, -log-level, Info, -gapir-args, --log C:\Users\SWX4451\AppData\Local\Temp\gapir.log --log-level I, --strings, D:\Downloads\GoPath\Release_Output\release\pkg\strings, --gapis-auth-token, 128c0fEp]
W20170323-160311944[server.ChildProcess-gapis][server.ChildProcess.onExit] The gapis process exited with a non-zero exit value: -1073741701
I20170323-160311945[server.ChildProcess-gapis][server.ChildProcess.shutdown] Shutting down gapis
W20170323-160311945[main][server.GapisProcess.connect] Failed while waiting for gapis
W20170323-160311945[main][server.GapisProcess.connect] java.util.concurrent.ExecutionException: java.lang.Exception: gapis has exited
W20170323-160311945[main][server.GapisProcess.connect] at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:500)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:401)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:83)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.gapid.server.GapisProcess.connect(GapisProcess.java:135)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.gapid.Server.createConnection(Server.java:123)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.gapid.Server.connectToServer(Server.java:102)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.gapid.Server.connect(Server.java:74)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.gapid.Main.main(Main.java:59)
W20170323-160311945[main][server.GapisProcess.connect] Caused by: java.lang.Exception: gapis has exited
W20170323-160311945[main][server.GapisProcess.connect] at com.google.gapid.server.ChildProcess.runProcess(ChildProcess.java:95)
W20170323-160311945[main][server.GapisProcess.connect] at com.google.gapid.server.ChildProcess$1.run(ChildProcess.java:66)
Error running C:\Program Files\Java\jdk1.8.0_121\bin\java.exe [-jar D:\Downloads\GoPath\Release_Output\release\java\gapic-windows.jar -gapid D:\Downloads\GoPath\Release_Output\release\pkg]: Process returned error
Cause: exit status 1
do run gapii
ninja: no work to do.
Error running D:\Downloads\SenAndroidStudio\GoPath\Release_Output\release\bin\gapii []: Failed to start process
Cause: exec: "D:\Downloads\SenAndroidStudio\GoPath\Release_Output\release\bin\gapii": file does not exist
Could anyone help me build this GAPID out and run successfully?
Thank you very much!
Would be nice to be able to be able to examine the trace with some commands removed in order to determine their effect.
Nobody likes walls of text.
We need to get approval of a developer to use their shiny game / app in the screenshots.
If you think that's you, please ping me.
Should include Width, Height, Format at the very least.
core/cc/posix/thread.cpp:25:9
: error: use of undeclared identifier 'malloc'
When a new dirty page is to be added to the memory tracker, the tracker now scan through all the recorded dirty pages first, which spends O(n) time. This can be improved by implementing a simplified hash map (linked list + static sized array).
Since this is a ninja build it will run all sub-builds concurrently, which all run ninja. These each spawn their own concurrent children. This can cause an enormous amount of memory to be used, since 3x the number of compiles/links happen than is normal. In the worst case this will cause paging and eventual build failure on machines with insufficient ram/swap space.
Dear GAPID,
I am trying Capture Trace using GAPIC, on Windows 7 system Android 7.0, NDK_r13, two different models with all various possible applications I could find.
Whenever I try on Capture Trace, gapit will always fail at the step of "Main", and never pass the line below:
Waiting for connection to localhost:50559...
And inside the logcat, not one single GL function could be intercepted:
03-28 05:43:16.597 7424 7424 E GAPID : installer.cpp:171 : Couldn't intercept function glVertexPointerBounds at 0x7532c9b8e4
Then a messagebox will fleet on the phone screen for 1s showing that the application (e.x. "Clock") is waiting for the debugger to attach; then the application will crash along with the failure of Capture Trace.
Here below shows the detailed info about how I failed during Capture Trace for every applications:
21:47:01.108 I: [start] Waiting for ApplicationLoaders.getClassLoader() (abi: arm64-v8a, activity: com.android.deskclock.AlarmsMainActivity, jdwpPort: 50584, on: com.android.deskclock, pid: 7913, port: 50559)
21:47:03.204 I: Creating file 'D:\Downloads\GoPath\ReleaseGAPIC_TraceOutput\deskclock_20170327_1446.gfxtrace'
21:47:03.208 I: Waiting for connection to localhost:50559...
Press enter to stop capturing...
21:47:03.378 F: Main failed
Error: Header send failed
Cause: write tcp 127.0.0.1:50588->127.0.0.1:50559: wsasend: An established connection was aborted by the software in your host machine.
Tracing failed:
java.lang.Exception: gapit has exited
at com.google.gapid.server.ChildProcess.runProcess(ChildProcess.java:95)
at com.google.gapid.server.ChildProcess$1.run(ChildProcess.java:66)
Could anyone help me at least pass getClassLoader() function successfully?
Thank you all in advance!
Appreciate it!
[1/7] Performing configure step for 'llvm'
FAILED: llvm/src/llvm-stamp/llvm-configure
cmd.exe /C "cd /D C:\dev\gapid\out\release\aarch64\src\aarch64-build\llvm\src\llvm-build && c:\dev\cmake\bin\cmake.exe -CC:/dev/gapid/out/release/aarch64/src/aarch64-build/llvm/tmp/llvm-cache-Release.cmake -GNinja C:/dev/gapid/src/github.com/google/gapid/third_party/llvm && c:\dev\cmake\bin\cmake.exe -E touch C:/dev/gapid/out/release/aarch64/src/aarch64-build/llvm/src/llvm-stamp/llvm-configure"
loading initial cache file C:/dev/gapid/out/release/aarch64/src/aarch64-build/llvm/tmp/llvm-cache-Release.cmake
CMake Error at cmake/modules/GetHostTriple.cmake:24 (message):
Failed to execute
C:/dev/gapid/src/github.com/google/gapid/third_party/llvm/cmake/config.guess
Call Stack (most recent call first):
cmake/config-ix.cmake:344 (get_host_triple)
CMakeLists.txt:582 (include)
Due to the amount of code generation the API files produce, our clean-build times are typically around the 10 minutes mark, and incremental builds are often 4-6 minutes (YMMV).
As much as I like office sword fighting, we should work hard to reduce these for everybody's sake.
Something in our CMake rules is pulling in pthreads when we compile our go executables (and possibly c++ executables).
Because of this, the executables to not run unless libwinpthread-1.dll
can be found on PATH
.
The work around for now is to have msys64\mingw64\bin
on your PATH
.
We're aware that replay performance in some cases is unacceptably slow.
We're working hard to improve this.
From the godoc:
// Tick is a convenience wrapper for NewTicker providing access to the ticking
// channel only. While Tick is useful for clients that have no need to shut down
// the Ticker, be aware that without a way to shut it down the underlying
// Ticker cannot be recovered by the garbage collector; it "leaks".
// Unlike NewTicker, Tick will return nil if d <= 0.
and:
// After waits for the duration to elapse and then sends the current time
// on the returned channel.
// It is equivalent to NewTimer(d).C.
// The underlying Timer is not recovered by the garbage collector
// until the timer fires. If efficiency is a concern, use NewTimer
// instead and call Timer.Stop if the timer is no longer needed.
We use Tick
for one shot events. This is leaking Tickers all over the place. Replace uses with After
.
Currently the popup is uniform width / height, making it larger than it needs to be.
These currently build for Mac/Android/Linux but not natively for windows yet.
Add a global for CurrentState
so we don't have to always go though the map!(ThreadID, ref!Context) Contexts
global at the root of the state tree (ensure you update all Link() logic in gles/links.go).
Find a way to hide GLXContexts
, WGLContexts
, CGLContexts
, EGLContexts
.
Try navigating the state block in GAPIC, make changes to the API file to try and make state navigation not suck.
A full trace has the depth buffer handled correctly, but when mid-execution capture is applied, the depth buffer data looks corrupted.
We've had a couple of people ask why the build fails.
Turns out they git cloned
the project instead of using go get
. go get
forces the developer to checkout into ../github.com/google/gapid/
which is expected by do
.
Let's:
do
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.