Ситуация
Я написал простой код на C ++ с VulkanAPI, но, тем не менее, я получаю ошибки, когда пытаюсь получить свои физические устройства.
Аппаратное / программное обеспечение
ОС: элементарная ОС 5.1.3 Hera x86_64
Модель ноутбука: 80Q5 Lenovo G70-35
Процессор: AMD A8-6410 APU с графикой AMD Radeon R5 (4) @ 2.000
GPU: Графика AMD Radeon R4 / R5
Вы можете найти список поддерживаемых устройств здесь (я думаю)
Код
#include <iostream>
#include "vulkan/vulkan.h"
VkInstance instance;
void assert(VkResult result) {
if (result != VK_SUCCESS)
std::cout << "error: " << result << std::endl;
}
int main() {
VkApplicationInfo appInfo;
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
appInfo.pNext = nullptr;
appInfo.pApplicationName = "VulkanAPI";
appInfo.applicationVersion = VK_MAKE_VERSION(0, 0, 0);
appInfo.pEngineName = "VulkanAPI Engine";
appInfo.engineVersion = VK_MAKE_VERSION(0, 0, 0);
appInfo.apiVersion = VK_API_VERSION_1_2;
VkInstanceCreateInfo instanceInfo;
instanceInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instanceInfo.pNext = nullptr;
instanceInfo.flags = 0;
instanceInfo.pApplicationInfo = &appInfo;
instanceInfo.enabledLayerCount = 0;
instanceInfo.ppEnabledLayerNames = nullptr;
instanceInfo.enabledExtensionCount = 0;
instanceInfo.ppEnabledExtensionNames = nullptr;
VkResult result = vkCreateInstance(&instanceInfo, nullptr, &instance);
assert(result); // works fine
uint32_t physicalDevicesCount = 0;
result = vkEnumeratePhysicalDevices(instance, &physicalDevicesCount, nullptr);
assert(result); // prints -3, which is equivalent to VK_ERROR_INITIALIZATION_FAILED
std::cout << physicalDevicesCount << std::endl;
return 0;
}
Проблема
Всякий раз, когда я компилирую и запускаю этот код, он выдает / печатает ошибку:
-3 (то есть VK_ERROR_INITIALIZATION_FAILED )