GPUメモリをポインタで扱う「Loon GPU」、VulkanとMetalで実現したbindless抽象化の手応え
Writing a bindless GPU abstraction layer
グラフィックスプログラマのKevin Gibson氏が、Sebastian Aaltonen氏の「No Graphics API」に触発され、Vulkan 1.3とMetal 4上に「Loon GPU」というbindless GPU抽象化レイヤーを実装した。バッファオブジェクトを廃しGPUポインタを直接扱う設計や、テクスチャ・サンプラーのbindless化、頂点バッファの代わりに頂点プルを採用するなど、従来のAPIの複雑さを大幅に簡略化。Slangシェーダーの課題やVulkanのイメージレイアウト問題への対処法も詳述し、将来の拡張への期待を述べる。
APIが単にポインタを返すだけのように見えても、CPU側のコードはずっと自然に感じられるようになり、複雑なデータ構造をCのオブジェクトのように簡単に作成でき、リングバッファを使えば描画引数の構築も簡単です。