Ich erstelle eine Textur, die Speicheranforderungen abfragt, und es ist nicht, was ich erwartet hatte. Hier ist die ImageCreateInfo Struktur:Größe im SpeicherAnforderungen nicht das, was ich erwarte
ImageCreateInfo()
.X2D(1024, 1024)
.Format(Format::R8G8B8_UNORM)
.InitialLayout(ImageLayout::PREINITIALIZED)
.Tiling(ImageTiling::LINEAR)
.Usage(ImageUsageFlagBits::TRANSFER_SRC);
Nun, ich habe erwartet, ein Byte für jeden von R, G, B, in Breite und Höhe von 1024 Speicheranforderungen von 3 * 1024 * 1024 = 3,145,728
zu geben. Aber stattdessen gibt es 1,048,576
zurück, was perfekt 1024 * 1024 ist. Es scheint sich nicht um das eine Byte für jeden RGB-Kanal zu kümmern. Was fehlt mir hier?
wird das R8G8B8_UNORM-Format unterstützt? Die 3-Byte-Formate müssen nicht unterstützt werden. Sie können überprüfen mit vkGetPhysicalDeviceFormatProperties –
Oh, sehr wahr, ich habe nicht überprüft, dass ... –