google / agi

Android GPU Inspector
https://gpuinspector.dev
Apache License 2.0
961 stars 140 forks source link

Crash while opening trace of a Unity android application on samsung S10 (Vulkan) #1329

Open sebas77 opened 1 year ago

sebas77 commented 1 year ago

Environment information:

Bug description This error appears 100% once I try to open a trace, restart server does nothing

Reproduction steps capture a trace manually, the trace is successfully captured, but then I cannot open it.

Stacktrace panic: uint8(0x0@0)[0].Slice(0, 2097152) - out of bounds [recovered] panic: --- initialcmds.InitialCmdsResolvable --- capture:{ID:{data:"\xfc\x7f\xf0N\x9b\x0cl%Gmx\xe9\xba\nQ\x112\x16\x8b\xea"}} Store(): gapis/database/database.go:56 github.com/google/gapid/gapis/database.Build gapis/resolve/initialcmds/initial_commands.go:40 github.com/google/gapid/gapis/resolve/initialcmds.InitialCommands gapis/resolve/resources.go:58 github.com/google/gapid/gapis/resolve.(ResourcesResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

Build() #0: gapis/database/database.go:60 github.com/google/gapid/gapis/database.Build gapis/resolve/initialcmds/initial_commands.go:40 github.com/google/gapid/gapis/resolve/initialcmds.InitialCommands gapis/resolve/resources.go:58 github.com/google/gapid/gapis/resolve.(ResourcesResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(*memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

--- resolve.ResourcesResolvable --- capture:{ID:{data:"\xfc\x7f\xf0N\x9b\x0cl%Gmx\xe9\xba\nQ\x112\x16\x8b\xea"}} config:{replay_device:{ID:{data:"1\x1c\xc7H`\x13\x1b\x1bh\xd2\x0c\xd02\xa0ߛ\x9d|Uu"}}} Store(): gapis/database/database.go:56 github.com/google/gapid/gapis/database.Build gapis/resolve/resources.go:35 github.com/google/gapid/gapis/resolve.Resources gapis/resolve/resolve.go:357 github.com/google/gapid/gapis/resolve.ResolveInternal gapis/resolve/resolve.go:279 github.com/google/gapid/gapis/resolve.ResolveService gapis/resolve/get.go:33 github.com/google/gapid/gapis/resolve.(GetResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

Build() #0: gapis/database/database.go:60 github.com/google/gapid/gapis/database.Build gapis/resolve/resources.go:35 github.com/google/gapid/gapis/resolve.Resources gapis/resolve/resolve.go:357 github.com/google/gapid/gapis/resolve.ResolveInternal gapis/resolve/resolve.go:279 github.com/google/gapid/gapis/resolve.ResolveService gapis/resolve/get.go:33 github.com/google/gapid/gapis/resolve.(GetResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(*memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

--- resolve.GetResolvable --- path:{resources:{capture:{ID:{data:"\xfc\x7f\xf0N\x9b\x0cl%Gmx\xe9\xba\nQ\x112\x16\x8b\xea"}}}} config:{replay_device:{ID:{data:"1\x1c\xc7H`\x13\x1b\x1bh\xd2\x0c\xd02\xa0ߛ\x9d|Uu"}}} Store(): gapis/database/database.go:56 github.com/google/gapid/gapis/database.Build gapis/resolve/get.go:26 github.com/google/gapid/gapis/resolve.Get gapis/server/server.go:387 github.com/google/gapid/gapis/server.(server).Get gapis/server/grpc.go:227 github.com/google/gapid/gapis/server.(grpcServer).Get bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15826 github.com/google/gapid/gapis/service._Gapid_Get_Handler.func1 core/app/auth/auth.go:110 github.com/google/gapid/core/app/auth.UnaryServerInterceptor.func1 bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15828 github.com/google/gapid/gapis/service._Gapid_Get_Handler external/org_golang_google_grpc/server.go:1295 google.golang.org/grpc.(Server).processUnaryRPC external/org_golang_google_grpc/server.go:1636 google.golang.org/grpc.(*Server).handleStream

Build() #0: gapis/database/database.go:60 github.com/google/gapid/gapis/database.Build gapis/resolve/get.go:26 github.com/google/gapid/gapis/resolve.Get gapis/server/server.go:387 github.com/google/gapid/gapis/server.(server).Get gapis/server/grpc.go:227 github.com/google/gapid/gapis/server.(grpcServer).Get bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15826 github.com/google/gapid/gapis/service._Gapid_Get_Handler.func1 core/app/auth/auth.go:110 github.com/google/gapid/core/app/auth.UnaryServerInterceptor.func1 bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15828 github.com/google/gapid/gapis/service._Gapid_Get_Handler external/org_golang_google_grpc/server.go:1295 google.golang.org/grpc.(Server).processUnaryRPC external/org_golang_google_grpc/server.go:1636 google.golang.org/grpc.(Server).handleStream [recovered] panic: --- initialcmds.InitialCmdsResolvable --- capture:{ID:{data:"\xfc\x7f\xf0N\x9b\x0cl%Gmx\xe9\xba\nQ\x112\x16\x8b\xea"}} Store(): gapis/database/database.go:56 github.com/google/gapid/gapis/database.Build gapis/resolve/initialcmds/initial_commands.go:40 github.com/google/gapid/gapis/resolve/initialcmds.InitialCommands gapis/resolve/resources.go:58 github.com/google/gapid/gapis/resolve.(ResourcesResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

Build() #0: gapis/database/database.go:60 github.com/google/gapid/gapis/database.Build gapis/resolve/initialcmds/initial_commands.go:40 github.com/google/gapid/gapis/resolve/initialcmds.InitialCommands gapis/resolve/resources.go:58 github.com/google/gapid/gapis/resolve.(ResourcesResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(*memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

--- resolve.ResourcesResolvable --- capture:{ID:{data:"\xfc\x7f\xf0N\x9b\x0cl%Gmx\xe9\xba\nQ\x112\x16\x8b\xea"}} config:{replay_device:{ID:{data:"1\x1c\xc7H`\x13\x1b\x1bh\xd2\x0c\xd02\xa0ߛ\x9d|Uu"}}} Store(): gapis/database/database.go:56 github.com/google/gapid/gapis/database.Build gapis/resolve/resources.go:35 github.com/google/gapid/gapis/resolve.Resources gapis/resolve/resolve.go:357 github.com/google/gapid/gapis/resolve.ResolveInternal gapis/resolve/resolve.go:279 github.com/google/gapid/gapis/resolve.ResolveService gapis/resolve/get.go:33 github.com/google/gapid/gapis/resolve.(GetResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

Build() #0: gapis/database/database.go:60 github.com/google/gapid/gapis/database.Build gapis/resolve/resources.go:35 github.com/google/gapid/gapis/resolve.Resources gapis/resolve/resolve.go:357 github.com/google/gapid/gapis/resolve.ResolveInternal gapis/resolve/resolve.go:279 github.com/google/gapid/gapis/resolve.ResolveService gapis/resolve/get.go:33 github.com/google/gapid/gapis/resolve.(GetResolvable).Resolve gapis/database/memory.go:137 github.com/google/gapid/gapis/database.(record).resolve gapis/database/memory.go:241 github.com/google/gapid/gapis/database.(*memory).resolveLocked.func1 core/app/crash/crash.go:65 github.com/google/gapid/core/app/crash.Go.func1

--- resolve.GetResolvable --- path:{resources:{capture:{ID:{data:"\xfc\x7f\xf0N\x9b\x0cl%Gmx\xe9\xba\nQ\x112\x16\x8b\xea"}}}} config:{replay_device:{ID:{data:"1\x1c\xc7H`\x13\x1b\x1bh\xd2\x0c\xd02\xa0ߛ\x9d|Uu"}}} Store(): gapis/database/database.go:56 github.com/google/gapid/gapis/database.Build gapis/resolve/get.go:26 github.com/google/gapid/gapis/resolve.Get gapis/server/server.go:387 github.com/google/gapid/gapis/server.(server).Get gapis/server/grpc.go:227 github.com/google/gapid/gapis/server.(grpcServer).Get bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15826 github.com/google/gapid/gapis/service._Gapid_Get_Handler.func1 core/app/auth/auth.go:110 github.com/google/gapid/core/app/auth.UnaryServerInterceptor.func1 bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15828 github.com/google/gapid/gapis/service._Gapid_Get_Handler external/org_golang_google_grpc/server.go:1295 google.golang.org/grpc.(Server).processUnaryRPC external/org_golang_google_grpc/server.go:1636 google.golang.org/grpc.(*Server).handleStream

Build() #0: gapis/database/database.go:60 github.com/google/gapid/gapis/database.Build gapis/resolve/get.go:26 github.com/google/gapid/gapis/resolve.Get gapis/server/server.go:387 github.com/google/gapid/gapis/server.(server).Get gapis/server/grpc.go:227 github.com/google/gapid/gapis/server.(grpcServer).Get bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15826 github.com/google/gapid/gapis/service._Gapid_Get_Handler.func1 core/app/auth/auth.go:110 github.com/google/gapid/core/app/auth.UnaryServerInterceptor.func1 bazel-out/x64_windows-opt/bin/gapis/service/service_goproto/github.com/google/gapid/gapis/service/service.pb.go:15828 github.com/google/gapid/gapis/service._Gapid_Get_Handler external/org_golang_google_grpc/server.go:1295 google.golang.org/grpc.(Server).processUnaryRPC external/org_golang_google_grpc/server.go:1636 google.golang.org/grpc.(Server).handleStream

goroutine 919 [running]: github.com/google/gapid/core/app/crash.Crash({0x7ff7cfef4ac0, 0xc00d0c9180}) core/app/crash/crash.go:89 +0x7d github.com/google/gapid/core/app/crash.handler() core/app/crash/crash.go:56 +0x2a panic({0x7ff7cfef4ac0, 0xc00d0c9180}) GOROOT/src/runtime/panic.go:884 +0x212 github.com/google/gapid/gapis/database.(memory).resolvePanicHandler(0xc0000cdd00, {0x7ff7d0f3ece0, 0xc00b11aae0}) gapis/database/debug.go:106 +0x53d panic({0x7ff7cff20800, 0xc00d0c8700}) GOROOT/src/runtime/panic.go:884 +0x212 github.com/google/gapid/gapis/api/vulkan.U8ˢ.Slice({0x0, 0x0, 0x0, 0x0, 0x0}, 0x0, 0x200000) bazel-out/x64_windows-opt/bin/gapis/api/vulkan/api_slices.go:4356 +0x2ce github.com/google/gapid/gapis/api/vulkan.(stateBuilder).loadHostDatatoStagingBuffer(0xc0016549a0, {0xc009bc1a20?, 0xc00a6c3ae0?}, 0x1?) gapis/api/vulkan/state_rebuilder.go:4151 +0x1ac github.com/google/gapid/gapis/api/vulkan.(stateBuilder).createBuffer(0xc0016549a0, {0xc009bc1a20?, 0x6f4b8484d0?}) gapis/api/vulkan/state_rebuilder.go:1518 +0x289 github.com/google/gapid/gapis/api/vulkan.API.RebuildState({}, {0x7ff7d0f3ece0, 0xc00b11ac00}, 0xc00a808a80) gapis/api/vulkan/state_rebuilder.go:176 +0x4fe github.com/google/gapid/gapis/resolve/initialcmds.(InitialCmdsResolvable).Resolve(0xc00e3c41e0?, {0x7ff7d0f3ece0, 0xc00b11ac00}) gapis/resolve/initialcmds/initial_commands.go:62 +0x26f github.com/google/gapid/gapis/database.(record).resolve(0xc00a26a240, {0x7ff7d0f3ece0, 0xc00b11aae0}) gapis/database/memory.go:137 +0x363 github.com/google/gapid/gapis/database.(memory).resolveLocked.func1() gapis/database/memory.go:241 +0x106 github.com/google/gapid/core/app/crash.Go.func1() core/app/crash/crash.go:65 +0x3f created by github.com/google/gapid/core/app/crash.Go core/app/crash/crash.go:63 +0x56

Screenshots

image image

Additional debugging information

sebas77 commented 1 year ago

note it appears that I can make it work with opengl instead.

sebas77 commented 1 year ago

sorry I just realised that this is a dupe of something I have already notified you about.

However I found out how to fix it: the problem is due (apparently) to the Graphics Job settings of Unity. Once that's disabled, it works fine with Vulkan (so far). closing as solved at the moment.

sebas77 commented 1 year ago

unfortunately this came back and this time Graphics Job is not to blame. Very frustrating.