![](/img/trans.png)
[英]Vulkan Ray Tracing - Not every primitive Id from any hit shader
[英]Vulkan: Invalid Shader Module Object
我编写了一个小型Vulkan测试应用程序,以使自己熟悉Vulkan,尽管在尝试创建管道时遇到了问题。
vkCreateGraphicsPipeline导致验证层产生以下错误:无效的着色器模块对象0x8无效的着色器模块对象0x9
然后程序在验证层中崩溃。 我已经为顶点着色器和片段着色器创建了VkShaderModule,并使用glslangvalidator -V将其转换为vkCreateShaderModule不会抱怨的SPIR-V模块。
我有什么想念的吗? 这些示例似乎完全按照我的方式做事。
错误消息和层崩溃行为指向由VK_LAYER_LUNARG_object_tracker
验证层检测到的无效Vulkan对象句柄(例如,使用前对象vkCreate*
d或vkDestroy
不成功)。
如果所有验证层均已启用且按指定顺序启用,则验证层可能不会崩溃。 通过仅使用VK_LAYER_LUNARG_standard_validation
元层可以确保这VK_LAYER_LUNARG_standard_validation
。
就像在任何好的验证器中一样,错误的消息完全是微不足道的。
标准验证层在GitHub / KhronosGroup / Vulkan-LoaderAndValidationLayers / layers中是开源的,因此如有疑问,可以在其中搜索给定的消息文本。 通常在core_validation.cpp
但在您的情况下为object_tracker.cpp
。 (该消息将采用printf格式,例如“ Invalid%s Object 0x%”,使其很难搜索)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.