首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vulkan在加载"vkCreateDebugUtilsMessengerEXT“函数地址时遇到问题

Vulkan在加载"vkCreateDebugUtilsMessengerEXT“函数地址时遇到问题
EN

Stack Overflow用户
提问于 2020-07-25 00:57:00
回答 1查看 959关注 0票数 0

上下文:我使用gtx 760与最新的驱动程序,windows 10和vulkan的最新版本。我目前正在学习教程的这一部分,主要内容是(Vulkan`s的):https://vulkan-tutorial.com/en/Drawing_a_triangle/Setup/Validation_layers

本教程使用GLFW创建窗口(在我的代码中使用)和一个不在我的代码中使用的线性代数数学库。

守则:

代码语言:javascript
运行
复制
VkResult CreateDebugUtilsMessengerEXT(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* 
pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pDebugMessenger) {
    
    auto func = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT");
    if (func != nullptr) {
        return func(instance, pCreateInfo, pAllocator, pDebugMessenger);
    }
    else {
        std::cerr << "error extension not present"<<std::endl;
        return VK_ERROR_EXTENSION_NOT_PRESENT;
    }
}

我得到了打印“错误扩展不存在”的其他分支。我在VK_EXT_DEBUG_REPORT_EXTENSION_NAME中设置了VkInstanceCreateInfo.ppEnabledExtensionsNames。这是我的完整代码,如果您认为有必要检查/测试它:https://github.com/quartuxz/VulcanDoesntWork

(是的,我知道存储库使用的是"vulcan“而不是"vulkan",我的错;这是我对它的新发现)

那么,问题是为什么在以下情况下函数地址的加载失败:

我的vulkan的安装通过了所有完整性和有效性的测试。我的图形卡支持vulkan (以及运行调试vulkan函数所需的所有功能),并与驱动程序更新。使用VK_EXT_DEBUG_REPORT_EXTENSION_NAME

  • I设置VkInstanceCreateInfo.ppEnabledExtensionsNames的前一步完成了教程的每一步,至少这是我希望的。

vulkan改变了它的这个特定部分的工作方式吗?除了这一功能之外,还有别的办法吗?为什么我不能加载这个函数的地址呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-25 01:12:14

您必须设置的不是VK_EXT_DEBUG_REPORT_EXTENSION_NAME,而是: VK_EXT_DEBUG_UTILS_EXTENSION_NAME。另外,请确保您的vulkan sdk安装处于良好状态,并且您的驱动程序必须是最新的。为了安全起见,在做完最后两件事之后,试着重新启动你的电脑。

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

https://stackoverflow.com/questions/63083195

复制
相关文章

相似问题

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