메모리 요구 사항을 쿼리하여 텍스처를 만들고 있는데, 예상 한 것이 아닙니다. 여기 ImageCreateInfo 구조이다 :MemoryRequirements의 크기가 내가 기대하는 바가 아닙니다.
ImageCreateInfo()
.X2D(1024, 1024)
.Format(Format::R8G8B8_UNORM)
.InitialLayout(ImageLayout::PREINITIALIZED)
.Tiling(ImageTiling::LINEAR)
.Usage(ImageUsageFlagBits::TRANSFER_SRC);
를 지금, 3 * 1024 * 1024 = 3,145,728
의 메모리 요구를 수득 폭 1024의 높이, R, G, B의 각각에 대한 하나의 바이트를 기다리고 있었다. 그러나 대신 1,048,576
을 반환합니다. 이는 1024 * 1024입니다. RGB의 각 채널에 대해 1 바이트는 신경 쓰지 않습니다. 내가 여기서 무엇을 놓치고 있니?
은 R8G8B8_UNORM 형식입니까? 3 바이트 형식은 지원 될 필요가 없습니다. 당신은 vkGetPhysicalDeviceFormatProperties로 확인 할 수 있습니다. –
아, 사실입니다. 체크하지 않았습니다 ... –