C# vkCreateGraphicsPipelines导致segv

C# vkCreateGraphicsPipelines导致segv,c#,c++,vulkan,C#,C++,Vulkan,我一直在跟踪一个编码流,并在运行过程中转换为c 当我尝试使用vkCreateGraphicsPipelines函数创建VkPipeline时,程序由于segv而崩溃 我有gdb回溯,但我不知道如何解释它 Thread 1 "VulkanRen" received signal SIGSEGV, Segmentation fault. 0x00007fff56fa1cad in StatelessValidation::validate_struct_type_array<VkGraphic

我一直在跟踪一个编码流,并在运行过程中转换为c

当我尝试使用vkCreateGraphicsPipelines函数创建VkPipeline时,程序由于segv而崩溃

我有gdb回溯,但我不知道如何解释它

Thread 1 "VulkanRen" received signal SIGSEGV, Segmentation fault.
0x00007fff56fa1cad in StatelessValidation::validate_struct_type_array<VkGraphicsPipelineCreateInfo> (count_required_vuid=0x7fff5715b558 "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength", 
    param_vuid=0x7fff5715bb80 "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter", stype_vuid=0x7fff57054bc0 "VUID-VkGraphicsPipelineCreateInfo-sType-sType", arrayRequired=true, countRequired=true, 
    sType=VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, array=0xf1c038196785ba00, count=<optimized out>, sTypeName=0x7fff571a67a0 "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO", arrayName=..., countName=..., 
    apiName=0x7fff571a052c "vkCreateGraphicsPipelines", this=<optimized out>) at /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/stateless_validation.h:318
318 /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/stateless_validation.h: No such file or directory.
Missing separate debuginfos, use: dnf debuginfo-install dotnet-hostfxr-3.0-3.0.0-1.x86_64 dotnet-runtime-3.0-3.0.0-1.x86_64
(gdb) backtrace
#0  0x00007fff56fa1cad in StatelessValidation::validate_struct_type_array<VkGraphicsPipelineCreateInfo> (count_required_vuid=0x7fff5715b558 "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength", 
    param_vuid=0x7fff5715bb80 "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter", stype_vuid=0x7fff57054bc0 "VUID-VkGraphicsPipelineCreateInfo-sType-sType", arrayRequired=true, countRequired=true, 
    sType=VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, array=0xf1c038196785ba00, count=<optimized out>, sTypeName=0x7fff571a67a0 "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO", arrayName=..., countName=..., 
    apiName=0x7fff571a052c "vkCreateGraphicsPipelines", this=<optimized out>) at /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/stateless_validation.h:318
#1  StatelessValidation::PreCallValidateCreateGraphicsPipelines (this=<optimized out>, device=<optimized out>, pipelineCache=<optimized out>, createInfoCount=<optimized out>, pCreateInfos=<optimized out>, pAllocator=<optimized out>, 
    pPipelines=0x7fffffffbfc8) at /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/generated/parameter_validation.cpp:3086
#2  0x00007fff56ebc643 in ValidationObject::PreCallValidateCreateGraphicsPipelines (cgpl_state=<optimized out>, pPipelines=0x7fffffffbfc8, pAllocator=<optimized out>, pCreateInfos=<optimized out>, createInfoCount=<optimized out>, 
    pipelineCache=<optimized out>, device=<optimized out>, this=0x1248650) at /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/generated/chassis.h:3688
#3  vulkan_layer_chassis::CreateGraphicsPipelines (device=<optimized out>, pipelineCache=<optimized out>, createInfoCount=<optimized out>, pCreateInfos=<optimized out>, pAllocator=<optimized out>, pPipelines=0x7fffffffbfc8)
    at /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/generated/chassis.cpp:749
#4  0x00007fff5697b1f7 in DispatchCreateGraphicsPipelines (device=device@entry=0xd846d0, pipelineCache=pipelineCache@entry=0x0, createInfoCount=createInfoCount@entry=1, pCreateInfos=0xf1c038196785ba00, pAllocator=pAllocator@entry=0x0, 
    pPipelines=pPipelines@entry=0x7fffffffbfc8) at /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/generated/layer_chassis_dispatch.cpp:210
#5  0x00007fff568ee2b2 in vulkan_layer_chassis::CreateGraphicsPipelines (device=<optimized out>, pipelineCache=<optimized out>, createInfoCount=<optimized out>, pCreateInfos=<optimized out>, pAllocator=<optimized out>, 
    pPipelines=0x7fffffffbfc8) at /root/sdk-build/1.1.121.1/source/Vulkan-ValidationLayers/layers/generated/chassis.cpp:759
#6  0x00007fff7dcbf9bc in ?? ()
#7  0x0000000000000000 in ?? ()

崩溃是由于我将顶点着色器模块传递到顶点着色器和片段着色器的插槽中造成的

VkPipelineShaderStageCreateInfo[]shaderStages=new VkPipelineShaderStageCreateInfo[2];
shaderStages[0]=VkPipelineShaderStageCreateInfo.New();
shaderStages[0]。flags=(uint)VkShaderStageFlags.Vertex;
着色器状态[0]。模块=vs;
byte[]vsFuncName=Encoding.UTF8.GetBytes(“main”+char.MinValue);
已修复(字节*ptr=&(vsFuncName[0]))
着色器状态[0]。pName=ptr;
shaderStages[1]=VkPipelineShaderStageCreateInfo.New();
shaderStages[1]。flags=(uint)VkShaderStageFlags.Fragment;
////////////////////////////////////////////////////////////////////////////
着色器状态[1]。模块=vs//这应该是fs而不是vs
////////////////////////////////////////////////////////////////////////////
byte[]fsFuncName=Encoding.UTF8.GetBytes(“main”+char.MinValue);
已修复(字节*ptr=&(fsFuncName[0]))
shaderStages[1].pName=ptr;
已修复(VkPipelineShaderStageCreateInfo*ptr=&(shaderStages[0]))
pCreateInfo.pStages=ptr;
pCreateInfo.stageCount=2;

<代码>你使用C++、C++还是C?同样,你的验证层告诉你什么?我用C++来为C++库绑定。验证层什么也没说。segv发生在验证层内部。如果我禁用验证层,SeGV就发生在驱动程序中。“我用C++来绑定C++库。”如果是的话,哪种语言?我现在添加了标签。最后一点是我的代码