メモリ要件を照会してテクスチャを作成していますが、これは私が期待していたものではありません。ここで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つのバイトを期待していました。代わりに1,048,576
を返します。これは完全に1024 * 1024です。RGBの各チャンネルの1バイトは気にしないようです。私はここで何が欠けていますか?
はR8G8B8_UNORM形式ですか? 3バイト形式はサポートする必要はありません。あなたはvkGetPhysicalDeviceFormatPropertiesで確認することができます –
ああ、本当に、私はそれをチェックしていない... –