gpt4 book ai didi

c++ - Vulkan:几何着色器验证不正确?

转载 作者:行者123 更新时间:2023-11-30 01:41:57 25 4
gpt4 key购买 nike

我目前使用的是 NVIDIA GeForce GTX 780(来自技嘉,如果这很重要 - 我不知道板载 BIOS 会对这有多大影响,我也有两个安装但由于 Vulkans 无法使用 SLI,我在我的代码中一次只使用一个设备。但是在 NVIDIA 控制中心 SLI 被激活。我使用官方驱动程序版本 375.63)。当然,该 GPU 完全具备几何着色器的能力。
我正在使用带有 Vulkan API 的几何着色器,它工作正常并且可以完成我期望它做的所有事情。但是我得到如下验证层报告:@[SC]: Shader requires VkPhysicalDeviceFeatures::geometryShader but is not enabled on the device

这是一个错误吗?有人有类似的问题吗?

附注: http://vulkan.gpuinfo.org/displayreport.php?id=777#features表示对“几何着色器”的支持正如预期的那样是“真实的”。我正在使用 Vulkan 1.0.30.0 SDK。

最佳答案

Vulkan 功能的工作方式与 OpenGL 扩展不同。在 OpenGL 中,如果支持扩展,则它始终处于事件状态。在 Vulkan 中,功能可用这一事实是不够的。当您创建 VkDevice 时,您必须明确询问您打算使用的所有功能。

如果您没有要求几何着色器功能,那么您就不能使用 GS,即使 VkPhysicalDevice 宣传支持它也是如此。

所以步骤顺序应该是检查 VkPhysicalDevice 是否支持您要使用的功能,然后在 VkDeviceCreateInfo::pEnabledFeatures 中提供这些功能调用 vkCreateDevice

由于 Vulkan 不会对其大部分输入进行验证检查,因此实际的驱动程序可能会假设您启用了该功能并且只是按照正常方式进行。但这不是必须的;使用尚未启用的功能是未定义的行为。所以验证层阻止你是对的。

关于c++ - Vulkan:几何着色器验证不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40452025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com