新しいVulkan APIのすべての作成情報構造体(vk*CreateInfo
)には、常に.sType
のメンバーが存在します。価値が1つのものにしかならないのなら、これはなぜですか?また、Vulkanの仕様は、対応するvkCreate*
関数のパラメータとしてのみvk*CreateInfo
構造体を使用できることを明示しています。それは少し冗長なようです。ドライバーがこの構造体をGPUにまっすぐ渡していたら、それを持っている必要があるかもしれません(私はいつも最初のメンバーであることに気付きました)。しかし、これは、ドライバがそれをした場合、アプリはエラーが起こりにくく、構造体にintを前置するのは、非常に計算効率の悪い操作のようには見えないため、アプリには本当に悪い考えです。私はなぜそれが存在するのか分からない。Vulkan:vk * CreateInfo構造体のsTypeのポイントは何ですか?
TL; DRは
はなぜvk*CreateInfo
構造体は.sType
メンバーを持っているのですか?
仮想SDK 1.1のリリースでは、更新された署名付きの更新された 'vkCreateCommandBufferPool()'定義のみが含まれているのはなぜですか?ほとんどのライブラリには、バージョン履歴全体からの構造のさまざまなリビジョンがすべて含まれているわけではありません。なぜVulkanのような図書館はそれをしますか?または、アプリケーションがハードウェアの機能に応じて古い構造に頼る必要があるため、このようなライブラリはユニークですか? – spaaarky21
@ spaaarky21:彼らは約束しなかったので。 Vulkanの仕様では、バージョン管理の仕組みが説明されています。それは、どのような種類のバージョン変更のためにどのような変更が行われるかを綴ります。マイナーバージョンの変更は、同じメジャーバージョンのすべてのマイナーバージョンと下位互換性があるように指定されています。ですから、1.0に対してコードを書くと、1.1または1.2実装で動作します。しかし2.0または3.0で動作するという保証はありません。 –