2017-10-31 1 views
0

Meine Vulkan-Implementierung gibt VK_ERROR_INITIALIZATION_FAILED zurück, wenn ich vkCreateImage aufrufen. Ich überprüfte die Ausgabe von vkGetPhysicalDeviceImageFormatProperties sowie die Ausgabe von vkGetPhysicalDeviceFormatProperties und stellte sicher, dass das Format des Bildes, das ich erstelle (in Bezug auf seine Erstellungsparameter), unterstützt wird. Ich habe eine Vulkan-Instanz und ein logisches Gerät erfolgreich initialisiert, daher muss das Problem woanders liegen.vkCreateImage liefert VK_ERROR_INITIALIZATION_FAILED, obwohl unterstützt

Die Vulkan Spec erwähnt keine VK_ERROR_INITIALIZATION_FAILED als möglichen Rückgabewert von vkCreateImage, was es schwieriger macht, das Problem zu entwurzeln.

Die VkImageCreateInfo Struktur i vkCreateImage schieben sich wie folgt:

imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; 
imageCreateInfo.pNext = nullptr; 
imageCreateInfo.flags = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT; 
imageCreateInfo.imageType = VK_IMAGE_TYPE_2D; 
imageCreateInfo.format = VK_FORMAT_R8G8B8A8_UNORM; 
imageCreateInfo.extent.width = 1024; 
imageCreateInfo.extent.height = 1024; 
imageCreateInfo.extent.depth = 1; 
imageCreateInfo.arrayLayers = 1; 
imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; 
imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT; 
imageCreateInfo.usage = VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; 
imageCreateInfo.mipLevels = 0; 
imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; 
imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL; 
imageCreateInfo.queueFamilyIndexCount = 0; 
imageCreateInfo.pQueueFamilyIndices = nullptr; 

Antwort

2

Wie in der Beschreibung beschrieben:

mipLevels muss größer sein als 0

So urteilen Ihre Code, der einen 0-Wert für die Anzahl der Mip-Pegel liefert, kann der Grund (oder einer der Gründe) für einen Fehler sein.

Verwandte Themen