Vulkanとは何ですか。また、OpenGLとの違いは何ですか?


150

Khronos Group(OpenGLの背後にある標準化団体)Vulkanを発表しました

Vulkanは、最新のGPUでのグラフィックスとコンピューティングへの高効率アクセスのための新世代のオープンスタンダードAPIです。以前は次世代OpenGLイニシアチブと呼ばれていたこの基礎設計により、アプリケーションがGPUアクセラレーションを直接制御し、パフォーマンスと予測可能性を最大限に高めます。

自分のページがかなりあるmarketese / 専門用語であるとして、-heavy プレスリリースには、簡単に言えば...、何バルカンは、ゲーム開発者を意味しますか?(ゲイブ・ニューウェルは、それ以上の説明なしに、強く支持されていると引用されています。)

VulkanとOpenGLの関係は正確に何ですか?以前の名前「glNext」(「Next Generation OpenGL Initiative」の略)は、代替品のように聞こえます。


更新:Vulkan 1.0仕様は2016年2月16日にリリースされました。


3
Qo'noSとバルカン...
IllidanS4

14
スタートレックのドリフトをキャッチしていない人のための翻訳:KhronosVulkanQo'noSVulcanのように聞こえます。クリンゴンとバルカンの種族の故郷の惑星。スポック(非常に人気のあるキャラクター)の俳優であるレナードニモイは最近2015年2月27日に亡くなったため、名前が敬意を表していると推測されます。しかし、それは偶然だった:バルカンの商標申請は 2015年2月19日に出願されました。ニモイの死の前。
アンコ

7
またマントル->溶岩->火山->バルカン。
jmegaffin

1
@Boreal Vulkan ==多くの言語の火山(ドイツ語、ロシア語(cyrに合わせて調整)など)。だから、マントル->溶岩->
ヴァルカン

回答:


118

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に似ています。


18
Vulkanは基本的にMantleの非常に反復されたバージョンであることを指摘する価値があるかもしれません:community.amd.com/community/amd-blogs/amd-gaming/blog/2015/03/…API の規則はDSAにいくらか似ているようですOpenGLの、ユビキタスを除いてgl、プレフィックスと置き換えvkblog.imgtec.com/powervr/...
jmegaffin

私はこれが事実だと思っていましたが、そのリンクまで証拠を見ていませんでした、ありがとう。
ジョシュ

3
参考までに、木曜日のValveのプレゼンテーションと、より多くの詳細を明らかにするKhronosメンバーのモラトリアムが解除された後、推測と推測を(いくつかの)ハードファクトに置き換えることができます(ほとんど)解除されます。
ショーンミドルディッチ

4
シェーダーにはシンプルなアセンブリのような言語が使用されていたため、シェーダーのバイトコードが少しおかしいと感じましたが、その後、複雑な言語(GLSL)に置き換えられ、今度は単純なバイトコード言語に戻ります。
-immibis

2
Vulkanは、Mantleと同様、OpenGLの隣にあり、完全に置き換えられるのではなく、より低レベルのアクセスを提供すると考えていました。少なくともそれは私がこれまで読んだことです。または、Vulkanは低レベルと高レベルの両方のオペレーションをカバーしますか?
ロイT.

18

OpenGLの将来について詳しく説明するには:

OpenGLは、1秒あたりの呼び出し回数でVulkanに匹敵するパフォーマンスを達成する可能性がありますが、一般的なドライバーオーバーヘッドに関しても:

  • 最新のOpenGL拡張機能は、実際にはすべてをバインドレスにすることで(たとえばARB_direct_state_access(4.5コア)、、ARB_bindless_texture...)、多くのドライバーオーバーヘッドを削除します。
  • 永続的なマッピング(ARB_buffer_storage4.4のコア)を使用すると、CPUからバッファーメモリに直接アクセスできるため、Vulkanと同様にGPUとの同期も明示的に行われます。
  • NV_command_listTristan LorachのSiggraph Asia 2014プレゼンテーションを参照)などの将来の拡張は、Vulkanと同じ「GPU摂食パラダイム」をOpenGLに提供する可能性があります。

11
これは、実際にはそれ自体の質問に対する答えではありません。
マイケルハウス

1

Khronosは最近、まったく新しいVulkan APIのリリースを発表しました。これは、OpenGLとOpenGL ESを補完する(場合によっては置き換える)ものです。Vulkanは、コードを「より金属に近づける」ように設計された低オーバーヘッドのAPIであり、パフォーマンスと効率を向上させます。AMDのMantle APIに基づいており、最終仕様は今年後半に予定されています。

この投稿-Vulkan APIの簡単な概要 -ToptalテクニカルエディターのNermin Hajdarbegovicが、なぜVulkanが長期的に大きな問題になるのかを説明します。しばらく時間がかかるかもしれませんが、このクロスプラットフォームAPIは、特定のデバイス、特に数十億のスマートフォンやタブレットで使用されているマルチコアアプリケーションプロセッサでの3Dパフォーマンスを大幅に向上させる可能性があります。


2
「クロノスは最近、まったく新しいVulkan APIのリリースを発表しました」8月18日の時点ではありません。その用語の定義によって「リリース」されていません。現在は12月8日ですが、まだリリースされていません。
ニコルボーラス

2
@NicolBolas-それは今です。本日ローンチ
beatgammit
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.