メインメニューを開く

差分

主なグラフィックスAPIのメモリアライメント

261 バイト追加, 2024年4月18日 (木)
== Direct3D ==
[[Direct3D]]では16バイト区切りにする。16バイトの境界線を跨ぐようにでは16バイト区切りにする。[[変数構造体]]を配置しないこと。の[[メンバー変数]]は16バイトの境界線を跨ぐように配置しないこと。
以下に擬似コードを示す。
; NG
<source lang="c">
== Vulkan ==
[[Vulkan]]は[[GPU]](の[[ドライバ]])ごとに[[仕様]]が異なる前代未聞のクソ仕様。
そのクソ仕様はVkMemoryRequirements構造体に格納されるのでalignmentメンバーの整数倍にする。そのクソ仕様はvkGetBufferMemoryRequirements関数でVkMemoryRequirements構造体に格納されるのでそのalignmentメンバーの整数倍にする。<source lang="c">VkMemoryRequirements memReq;vkGetBufferMemoryRequirements(device, buffer, &memReq);</source>
こんなのやってられないので[[AMD]]が作ってくれた[[Vulkan Memory Allocator]]を使いましょう。
== Metal ==