SIGSEGV in Vulkan replay of vulkan-smoketest
- Dominant language
- Go
- Stars
- 2.2k
- Forks
- 329
- PR merge metrics
- No merged PRs in 30d
Description
Capture the `vulkan-smoketest` application from the sdk with
```
gapit trace --capture-frames 3 -api vulkan -workingdir . -out smoketest.gfxtrace /usr/bin/vulkan-smoketest
```
Run a replay of the first frame with
```
gapit screenshot --frame 1 smoketest.gfxtrace
```
Observe that the replay crashes. Oddly though, `gapit video` succeeds.
Below is the stack trace on my machine:
```
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f8ec6ffd700 (LWP 104709)]
0x00007f8ec55ea508 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.384.111
(gdb) bt
#0 0x00007f8ec55ea508 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.384.111
#1 0x00007f8ec55fd2b3 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.384.111
#2 0x0000562e66ec20bd in gapir::LazyResolved::operator() (this=0x7f8ea03123a0, args#0=@0x7f8ec6ffc898: 140250550242272, args#1=@0x7f8ec6ffc884: 2, args#2=@0x7f8ec6ffc890: 0x7f8f8df1f9b0, args#3=@0x7f8ec6ffc880: 0, args#4=@0x7f8ec6ffc888: 0x0) at ./gapir/cc/gfx_api.h:58
#3 0x0000562e66ea66bd in gapir::Vulkan::callVkUpdateDescriptorSets (this=0x7f8ea00008d0, cmdLabel=403, stack=0x7f8ec1a391a0, pushReturn=false) at bazel-out/k8-dbg/genfiles/gapir/cc/vulkan_gfx_api.cpp:1159
#4 0x0000562e66ecf770 in std::__invoke_impl(std::__invoke_memfun_deref, bool (gapir::Vulkan::*&)(unsigned int, gapir::Stack*, bool), gapir::Vulkan*&, unsigned int&&, gapir::Stack*&&, bool&&) (__f=@0x7f8ea0001890: (bool (gapir::Vulkan::*)(gapir::Vulkan * const, unsigned int, gapir::Stack *, bool)) 0x562e66ea6522 , __t=@0x7f8ea00018a0: 0x7f8ea00008d0,
__args#0=,
__args#1=,
__args#2=) at /usr/include/c++/7/bits/invoke.h:73
#5 0x0000562e66ecf691 in std::__invoke(bool (gapir::Vulkan::*&)(unsigned int, gapir::Stack*, bool), gapir::Vulkan*&, unsigned int&&, gapir::Stack*&&, bool&&) (__fn=
@0x7f8ea0001890: (bool (gapir::Vulkan::*)(gapir::Vulkan * const, unsigned int, gapir::Stack *, bool)) 0x562e66ea6522 , __args#0=@0x7f8ea00018a0: 0x7f8ea00008d0,
__args#1=,
__args#2=,
__args#3=) at /usr/include/c++/7/bits/invoke.h:96
#6 0x0000562e66ecf566 in std::_Bind, std::_Placeholder<2>, std::_Placeholder<3>))(unsigned int, gapir::Stack*, bool)>::__call(std::tuple&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) (this=0x7f8ea0001890, __args=)
at /usr/include/c++/7/functional:469
#7 0x0000562e66ecf349 in std::_Bind, std::_Placeholder<2>, std::_Placeholder<3>))(unsigned int, gapir::Stack*, bool)>::operator()(unsigned int&&, gapir::Stack*&&, bool&&) (
this=0x7f8ea0001890, __args#0=,
__args#1=,
__args#2=) at /usr/include/c++/7/functional:551
#8 0x0000562e66ecd1d9 in std::_Function_handler, std::_Placeholder<2>, std::_Placeholder<3>))(unsigned int, gapir::Stack*, bool)> >::_M_invoke(std::_Any_data const&, unsigned int&&, gapir::Stack*&&, bool&&) (__functor=..., __args#0=,
__args#1=,
__args#2=) at /usr/include/c++/7/bits/std_function.h:302
#9 0x0000562e66e53c96 in std::function::operator()(unsigned int, gapir::Stack*, bool) const (this=0x7f8ea0001860, __args#0=403, __args#1=0x7f8ec1a391a0, __args#2=false) at /usr/include/c++/7/bits/std_function.h:706
#10 0x0000562e66e503f4 in gapir::Interpreter::call (this=0x7f8ec1a39100, opcode=131105) at gapir/cc/interpreter.cpp:174
#11 0x0000562e66e5153e in gapir::Interpreter::interpret (this=0x7f8ec1a39100, opcode=131105) at gapir/cc/interpreter.cpp:474
#12 0x0000562e66e4ffea in gapir::Interpreter::exec (this=0x7f8ec1a39100) at gapir/cc/interpreter.cpp:115
#13 0x0000562e66e4ff81 in gapir::Interpreter::::operator()(void) const (__closure=0x7f8ec6ffcca0) at gapir/cc/interpreter.cpp:129
#14 0x0000562e66e5255b in std::_Function_handler >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/7/bits/std_function.h:316
#15 0x0000562e66e3f648 in std::function::operator()() const (this=0x7f8ec6ffcca0) at /usr/include/c++/7/bits/std_function.h:706
#16 0x0000562e66e3edd8 in gapir::ThreadPool::Thread::worker (thread=0x7f8ec0ed5b70) at gapir/cc/thread_pool.cpp:56
#17 0x0000562e66e400b4 in std::__invoke_impl(std::__invoke_other, void (*&&)(gapir::ThreadPool::Thread*), gapir::ThreadPool::Thread*&&) (
__f=,
__args#0=) at /usr/include/c++/7/bits/invoke.h:60
#18 0x0000562e66e3f73e in std::__invoke(void (*&&)(gapir::ThreadPool::Thread*), gapir::ThreadPool::Thread*&&) (
__fn=,
__args#0=) at /usr/include/c++/7/bits/invoke.h:95
#19 0x0000562e66e42a39 in std::thread::_Invoker >::_M_invoke<0ul, 1ul> (this=0x7f8ec02dfba8) at /usr/include/c++/7/thread:234
#20 0x0000562e66e429ef in std::thread::_Invoker >::operator() (this=0x7f8ec02dfba8) at /usr/include/c++/7/thread:243
#21 0x0000562e66e429ce in std::thread::_State_impl > >::_M_run (this=0x7f8ec02dfba0) at /usr/include/c++/7/thread:186
#22 0x00007f8f8e7097e3 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#23 0x00007f8f8ecdd494 in start_thread (arg=0x7f8ec6ffd700) at pthread_create.c:333
#24 0x00007f8f8e17ea8f in clone () from /lib/x86_64-linux-gnu/libc.so.6
```
Contributor guide
Assessment
This issue has not been assessed yet.