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;