尝试创建vulkan实例时有关amdvlk64.dll的Windows异常

Ctinarelli

我尝试使用vulkan,但无法正常工作。当我尝试使用SDK(01-init_instance.cpp)运行给定的第一个示例(VS 2019编译)时,在创建Vulkan实例时遇到此异常:

Exception thrown at 0x00007FFFE7EDAD11 (amdvlk64.dll) in game.exe: 0xC0000005:
Access violation reading location 0xFFFFFFFFFFFFFFFF.

我已经尝试过将app_info.apiVersion设置为VK_API_VERSION_1_0VK_API_VERSION_1_1也尝试设置inst_info.pApplicationInfo为,NULL但行为没有任何变化。

我正在使用amd gpu AMD Radeon (TM) R9 390 Series,驱动程序版本是17.1.1,还有关于vulkan的其他一些值是Vulkan™ Driver Version 1.5.0Vulkan™ API Version 1.0.39(均从amd驱动程序接口中选取)

这是示例:

#include <iostream>
#include <cstdlib>
#include <util_init.hpp>

#define APP_SHORT_NAME "vulkansamples_instance"

int main(int, char *[]) {

    VkApplicationInfo app_info = {};
    app_info.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
    app_info.pNext = NULL;
    app_info.pApplicationName = APP_SHORT_NAME;
    app_info.applicationVersion = 1;
    app_info.pEngineName = APP_SHORT_NAME;
    app_info.engineVersion = 1;
    app_info.apiVersion = VK_API_VERSION_1_0;

    VkInstanceCreateInfo inst_info = {};
    inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
    inst_info.pNext = NULL;
    inst_info.flags = 0;
    inst_info.pApplicationInfo = &app_info;
    inst_info.enabledExtensionCount = 0;
    inst_info.ppEnabledExtensionNames = NULL;
    inst_info.enabledLayerCount = 0;
    inst_info.ppEnabledLayerNames = NULL;

    VkInstance inst;
    VkResult res;

    res = vkCreateInstance(&inst_info, NULL, &inst);
    if (res == VK_ERROR_INCOMPATIBLE_DRIVER) {
        std::cout << "cannot find a compatible Vulkan ICD\n";
        exit(-1);
    } else if (res) {
        std::cout << "unknown error\n";
        exit(-1);
    }

    vkDestroyInstance(inst, NULL);


    return 0;
}

希望有人能提供帮助,因为互联网上似乎没人能理解为什么会这样。

驱动程序版本17.1.1非常旧(IIRC表示2017年1月)。在理想的情况下,它应该可以工作,但是根据您的经验,可能存在一些兼容性问题。

当前的驱动程序在AMD支持站点上他们提供“推荐”或更多当前的“可选”驱动程序。从未对“可选”有任何问题,但可能会更频繁地进行更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在获取有关Verizon的推文时,尝试避免此错误(引发异常KeyError:'text')

有关异常处理的C ++建议

DLL在创建ADO对象时使程序异常终止

寻找有关如何在Golang中创建dll / so / dylib的基本示例/资源

带有C#异常错误的C DLL(访问冲突)

不断被explorer.exe占用很高的CPU使用率(与Windows.Storage.Search.dll有关)

异常0000005中的jvm.dll通过JNI NewObject的创建实例时

打印有关异常的所有信息?

Dart:没有有关异常的消息规范?

如何正确创建Nim / Nimrod Windows dll

在Windows上使用gfortran创建DLL

Windows的DLL中未使用Breakpad异常处理程序?

使用 python cdll windows dll 出现内存异常

如何获取有关异常错误的更多信息?

我的DAO层中有关异常的最佳实践

有关循环内异常(try-catch)的问题

FileNotFoundException异常有关访问文件的资产

Grails异常,可能与NoClassDefFoundError / BuildableCriteria有关

从getMessage()处理有关其消息的异常

需要澄清有关继承和异常的信息

cpu如何通知内核有关硬件异常的信息?

处理奇怪的Null指针异常(与PGraphics有关)

Ctypes问题-不能与64位DLL和32位DLL一起使用-OSError:异常:访问冲突读取

尝试将C ++ dll导入C#时出现异常的System.BadImageFormatException

尝试编译此代码时有关运算符重载的错误

尝试在16.10上运行系统更新时有关apt-secure的错误

MoqRT错误-创建MoqRT.Baked.dll时出现未处理的异常

我正在尝试将 firebase 合并到我的统一项目中,但不断收到有关“Firebase.Crashlytics.Editor.dll”的错误消息

有关为C#Windows Form和Android App创建在线数据库的建议/提示