Devsh-Graphics-Programming/Nabla
Vulkan, OptiX and CUDA Interoperation Modular Rendering Library and Framework for PC/Linux/Android
何を解決するか
Nablaは、Vulkanの拡張機能と機能の選別された安定したプロファイルを提供することで、低レベルGPUプログラミングを簡素化し、開発者がハードウェアの細部や急速に進化するAPI仕様を手動で追跡する必要を減らします。CPUとGPU開発のギャップを埋め、両環境で共有ロジックとユニットテストを可能にします。
動作方法
NablaはSPIR-VとVulkanを参照基準として扱い、GPUオブジェクトのライフサイクルを参照カウンティングで管理し、Timeline Semaphoresを使用してCPU-GPU操作を同期します。独自のHLSL2021 Standard Template Libraryにより、HLSLのサブセットをC++とSPIR-Vの両方でコンパイル可能にし、GPUロジックをCPU上でテストできるようにします。システムにはアセット管理用の仮想ファイルシステム、キャンセル可能なFutureを用いた非同期I/O、およびMerkle Treeを活用して重複オブジェクトを排除するGPU最適化アセットコンバーターも含まれます。
対象ユーザー
カスタムレンダリング設定、物理ベースレンダリング(PBR)、またはレガシーなOpenGLやDirectXアプリケーションの移植に高パフォーマンスで柔軟かつスレッドに依存しないフレームワークを必要とするグラフィックスプログラマーおよびエンジン開発者。
主な特徴
- 統合されたHLSL/C++ライブラリ: GPUロジック用のシングルソースライブラリを可能にし、CPU上でユニットテストが行える。
- 自動ライフサイクル追跡: 参照カウンティングにより、キューで使用中のGPUオブジェクトが誤って破棄されないよう保証。
- 選別されたコアプロファイル: 手動でのハードウェア互換性チェックの複雑さを回避するため、事前に選定されたVulkan拡張機能のセットを提供。
- 高度なメモリアクセス: Buffer Device Address (BDA) と Descriptor Indexing を完全に活用し、動的リソースバインディングを実現。
- 非同期インフラストラクチャ: キャンセル可能なFutureベースI/Oと仮想ファイルシステムを実装し、効率的なアセット読み込みを実現。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト