我刚刚开始学习 Vulkan。我有 Graham Sellers 所著的《Vulkan 编程指南》一书,以及我的系统中带有 AMDGPU Pro 驱动程序的 RX 480。我正在运行 Arch Linux,并且我已经能够在我的系统上运行一些 Vulkan 演示。
我有一个最小的代码块,它会导致分段错误。奇怪的是,在我生成这个块以提出这个问题的过程中,我确实让它在从构造函数调用 vkCreateInstance() 的情况下运行,并且当我在代码中添加 try/catch 时首先注意到分段错误。
现在,即使没有 try/catch 这也会导致分段错误:
#include <iostream>
#include <vulkan/vulkan.h>
int main(int argv, char* argc[])
{
VkInstance* instance;
VkApplicationInfo appInfo = { .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO,
.pNext = NULL,
.pApplicationName = "Step 1",
.applicationVersion = 1,
.pEngineName = NULL,
.engineVersion = 0,
.apiVersion = VK_MAKE_VERSION(1, 0, 26) }; //This is what vulkanCapsViewer says my API version is.
VkInstanceCreateInfo createInfo = { .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, …Run Code Online (Sandbox Code Playgroud)