2017-10-31 8 views
0

vkCreateImage을 호출 할 때마다 내 Vulkan 구현은 VK_ERROR_INITIALIZATION_FAILED을 반환합니다. vkGetPhysicalDeviceImageFormatProperties의 출력과 vkGetPhysicalDeviceFormatProperties의 출력을 확인하고 내가 만드는 매개 변수와 관련하여 이미지의 형식이 지원되는지 확인했습니다. Vulkan 인스턴스와 논리 장치를 초기화 했으므로 문제가 다른 곳에 있어야합니다.vkCreateImage는 지원되지만 VK_ERROR_INITIALIZATION_FAILED를 반환합니다.

Vulkan Spec은 vkCreateImage에서 가능한 반환 값으로 VK_ERROR_INITIALIZATION_FAILED을 언급하지 않으므로 문제를 근절시키는 것이 더 어렵습니다.

다음 내가 vkCreateImage에 밀어 VkImageCreateInfo 구조이므로 : 본 명세서에 기재된 바와 같이

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; 

답변

2

:

mipLevels가

0보다 큰 그래서 의해 판정 있어야 내 코드에서 밉 레벨 수에 0 값을 제공하면 실패의 원인이 될 수 있습니다.