首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vulkan实例创建失败

Vulkan实例创建失败
EN

Stack Overflow用户
提问于 2020-10-18 04:58:03
回答 1查看 221关注 0票数 0

我有一个vulkan程序在我的笔记本电脑上运行,但在我的台式机上失败了。错误是:

代码语言:javascript
复制
HeatMethod: ../libraries/vulkansdk-linux/1.2.154.0/source/Vulkan-Headers/include/vulkan/vulkan.hpp:13143: typename vk::ResultValueType<vk::UniqueHandle<Type, Dispatch> >::type vk::createResultValue(vk::Result, T&, const char*, const typename vk::UniqueHandleTraits<Type, Dispatch>::deleter&) [with T = vk::Instance; D = vk::DispatchLoaderStatic; typename vk::ResultValueType<vk::UniqueHandle<Type, Dispatch> >::type = vk::ResultValue<vk::UniqueHandle<vk::Instance, vk::DispatchLoaderStatic> >; typename vk::UniqueHandleTraits<Type, Dispatch>::deleter = vk::ObjectDestroy<vk::NoParent, vk::DispatchLoaderStatic>]: Assertion `result == Result::eSuccess' failed.

我使用注释来跟踪问题,并发现它发生在实例创建时:

代码语言:javascript
复制
// Global scope
const std::vector<const char*> VALIDATION_LAYERS = {
    "VK_LAYER_KHRONOS_validation",
};

   // Setup general information about the current application
    vk::ApplicationInfo program_info(
        "Vulkan Engine",
        VK_MAKE_VERSION(1, 0, 0),
        "No Engine",
        VK_MAKE_VERSION(1, 0, 0),
        VK_API_VERSION_1_2);

    if(!CheckAvailableLayers())
        RecordLogError("Validation layers requested, but not available!");

    vector<const char*> required_extensions;
    if(!RequestExtensions(required_extensions))
        RecordLogError("Missing a required extension");
    // Create Vulkan instance to communicate with the loader
    vk::InstanceCreateInfo createInfo(
        {},
        &program_info,
        static_cast<uint32_t>(VALIDATION_LAYERS.size()),
        VALIDATION_LAYERS.data(),
        static_cast<uint32_t>(required_extensions.size()),
        required_extensions.data());
    auto [result, instance] = vk::createInstanceUnique(createInfo);

这个错误本身就是hpp报头中的一个失败断言,所以它有点神秘。我不确定问题出在哪里。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 09:02:14

尝试在构建脚本上设置验证层时出现问题:

os.environ['VK_INSTANCE_LAYERS'] = 'VK_LAYER_LUNARG_standard_validation'

删除该行就解决了这个问题。

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

https://stackoverflow.com/questions/64407268

复制
相关文章

相似问题

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