Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 调用VKCMDBindDescriptorSet时,我的程序崩溃_C++_Vulkan - Fatal编程技术网

C++ 调用VKCMDBindDescriptorSet时,我的程序崩溃

C++ 调用VKCMDBindDescriptorSet时,我的程序崩溃,c++,vulkan,C++,Vulkan,当我只打开一个模型文件时,我的程序运行良好。但是当我试图打开多个文件(使用不同的vulkan实例和线程)时,我的程序可能会在这里崩溃。我检查了函数的参数,但它们似乎没有任何问题。 GDB回溯跟踪如下所示: Thread 83 "VulkanRenderer" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ffebfdff700 (LWP 50908)] 0x00007fffe35b7053 in ?? (

当我只打开一个模型文件时,我的程序运行良好。但是当我试图打开多个文件(使用不同的vulkan实例和线程)时,我的程序可能会在这里崩溃。我检查了函数的参数,但它们似乎没有任何问题。 GDB回溯跟踪如下所示:

Thread 83 "VulkanRenderer" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffebfdff700 (LWP 50908)]
0x00007fffe35b7053 in ?? () from /usr/lib/nvidia-375/libnvidia-glcore.so.375.39
(gdb) bt
#0  0x00007fffe35b7053 in ?? () from /usr/lib/nvidia-375/libnvidia-glcore.so.375.39
#1  0x00007fffe35e1a7e in ?? () from /usr/lib/nvidia-375/libnvidia-glcore.so.375.39
#2  0x00007fffe35e3102 in ?? () from /usr/lib/nvidia-375/libnvidia-glcore.so.375.39
#3  0x00007ffff78ca4ed in VulkanCommandBuffer::SetDescriptorSet(vk::PipelineBindPoint, VulkanPipelineLayout*, unsigned int, unsigned int, VulkanDescriptorSet**, unsigned int, unsigned int*) () from

如何修复此崩溃错误?

是将命令发送到同一队列还是不同队列。还有,输出到哪里去了?这两个实例的窗口是否相同?

您确定您使用的所有对象(命令缓冲区、管道布局、描述符集)都来自正确的实例吗?不能将在一个实例下创建的对象与另一个实例一起使用。对于这一点,是否有需要多个实例的原因?大多数程序只使用一个实例就可以了,除非它们使用Vulkan做两件完全无关和独立的事情。@Jesse是的,我确信描述符集是用正确的实例创建的。我的程序在Windows上运行良好,但在Linux上运行时,可能会崩溃。是的,所有命令都发送到同一队列。我的程序将场景渲染到屏幕外表面。