首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vulkan:无效的Shader Module对象

Vulkan:无效的Shader Module对象
EN

Stack Overflow用户
提问于 2016-10-03 09:32:48
回答 1查看 883关注 0票数 0

我已经写了一个小的Vulkan测试应用来熟悉自己的Vulkan,尽管我在尝试创建管道时遇到了一个问题。

vkCreateGraphicsPipeline导致验证层产生以下错误:无效的着色器模块对象0x8无效的着色器模块对象0x9

然后程序在验证层崩溃。我已经为顶点着色器和片段着色器创建了VkShaderModule,并使用glslangvalidator -V将它们转换为vkCreateShaderModule没有抱怨的SPIR-V模块。

有什么我可能遗漏的吗?这些例子看起来和我做事情的方式完全一样

EN

回答 1

Stack Overflow用户

发布于 2016-10-04 03:29:37

错误消息和层崩溃行为指向由VK_LAYER_LUNARG_object_tracker验证层检测到的无效Vulkan对象句柄(例如,使用前对象不成功的vkCreate*d或vkDestroyed )。

如果验证层都被启用并按规定的顺序运行,那么它们可能不会崩溃。这可以通过仅使用VK_LAYER_LUNARG_standard_validation元层来确保。

就像在任何好的验证器中一样,错误消息对于弱小的人类来说是完全不可读的。

标准验证层在GitHub/KhronosGroup/Vulkan-LoaderAndValidationLayers/layers中是开源的,因此如果有疑问,可以在其中搜索给定的消息文本。通常是在core_validation.cpp中,但在您的例子中应该是object_tracker.cpp。(消息将采用printf格式,例如“无效的%s对象0x%”使其更难搜索)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39823449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档