Vulkanは、従来のGPUを介したハードウェアアクセラレーショングラフィックス(および一般的な計算)用の新しいAPIです。OpenGLはVulkanが意図しているよりも高レベルのAPIであるため、引き続き開発されます。当初は「glNext」と呼ばれていましたが、Vulkanは最終的に「OpenGL 5」になる可能性が高いと推測できますが、最終的には、標準化団体は、APIが既存のOpenGLパラダイム。
Vulkanのゲーム開発者にとっての実際的な利点は、主に制御に関するものです(たとえば、より多くの許可を可能にし、開発者側で大幅に多くの先行作業を犠牲にしてより良い最適化を可能にします)。具体的には:
- APIは、複数のスレッドにわたるコマンドバッファーの非同期生成と、コマンドパイプラインへのそれらのバッファーのシーケンス処理を中心にしています。これは、最新のハードウェアの現実を反映しています。今日、OpenGL上に構築されたほとんどのハイプロファイルソフトウェアや高性能ソフトウェアは、この種の動作自体を実装しています。これ自体がAPIをサポートしているということは、開発者がそのフレームワーク自体を実装および保守する必要がないか、少ない労力で実装できることを意味します。
- スレッドとメモリの管理タスクはドライバーではなくアプリケーションに任されているため、ゲーム開発者はこれらの動作をより細かく制御できるため、個々のゲームのニーズに合わせてこれらの動作をより正確に調整できます。
- 検証および診断レイヤーは独立して有効にでき、理論上はAPI(OpenGL自体が苦しんでいたもの)とのより良いツール統合を可能にし、理論的には「レベル3のグラフィックス」のパフォーマンスを向上させます。
- モバイル版とデスクトップ版の間に明確なAPIの違いはありません。これは、理論的にはクロスプラットフォームゲームの移植を容易にし、誰もが嫌うバージョンチェックの頭痛を軽減します。
表面構造におけるVulkanの非常にCに似た/ OpenGLに似ています(API呼び出しのルックアンドフィールなど。ただし、より良い型付けです(すべてがむき出しではないという点でint
、関連するtypedefなどがあります)。
OpenGLよりもはるかに低レベルです。D3D9からD3D10への移行で見られたように、OpenGLとVulkanの間で運用設定と複雑さが急増し、GPUデバイス操作の詳細がAPIクライアントに明らかになりました。D3D12自体は機能面でVulkanと非常によく似たAPIであるため、実際の移行はD3D11から12に似ています。