Vulkan API: It's Gaming, Jim, But Not As We Know It

1 つの API ですべてを制御します。おそらく間違ったファンタジー シリーズかもしれませんが、これが Vulkan の背後にあるアイデアです。Vulkan は、OpenGL のおしゃれなオープンソース後継製品であり、Microsoft の DirectX に代わるものであり、PC から携帯電話に至るまであらゆるゲームでのゲームを揺るがす可能性のあるものです。しかし、API とは何でしょうか?なぜ気にする必要があるのでしょうか?では、それでいきます。今のところ、Vulkan がすべての機能を備えているのであれば、既存の PC 上でゲームをより高速に実行し、見栄えを良くすることができます。 SteamOS も人気になるかもしれません。とにかく、バージョン 1.0 がリリースされたので、おしゃべりなウェベラティは、PC ゲームの腕前を証明するために、何気なく Vulkan のリファレンスを交換することになるでしょう。骨を整える時間です。さらに、私は GDC 2016 の Vulkan に関する 5 時間の基調講演ストリームを視聴したところです。ユーモアを交えてお話しください。この内容は実際には非常に興味深いものです。

TL;DR
- Vulkan はオープンソースの代替品ですPC 上の Microsoft DirectX
- OpenGLの後継です
- しかし、それはから派生したものですAMDのMantle API
- 携帯電話から PC まであらゆるものに対応します
- DirectX 12 と同様に、ゲームの実行速度が向上すると主張しています
- 費用はかかりません
- Radeon HD 7000 シリーズおよび Nvidia GeForce 600 シリーズ ボード以降の AMD グラフィックス カードで動作します。
- 必要なのはドライバーのアップデートだけです
- ああ、それにより Valve の SteamOS が実行可能なゲーム プラットフォームになるかもしれません

まずは API が何に関係しているのかという質問から始めましょう。アプリケーション プログラム インターフェイスの略です。そしてそれだけです。ソフトウェアのビット間のインターフェイス。

実際には、API は、開発者が動作するアプリケーションを簡単に実現できるようにする構成要素とツールを提供します。私たちがグラフィックスについて話しているのであれば、そして実際にグラフィックスについて話しているのであれば、API はゲームをグラフィックス ドライバーに接続するインターフェイスです。こうして 3D ビジュアルがレンダリングされます。

このアプローチの利点は非常に大きいです。グラフィックス API を使用すると、(ほとんどの場合) API に準拠する任意のハードウェア上で実行できる 1 セットのゲーム コードを作成することができます。したがって、ゲームは、たとえば DirectX 9 用にコーディングされており、DirectX 9 と互換性のあるグラフィック カードで実行できます。とにかく理論的には。実際には、通常はもう少し複雑です。

したがって、API を使用するということは、ゲーム開発者が、たとえば Nvidia と AMD の両方のグラフィックス チップの世界的権威である必要がないことを意味します。 API によって提供されるツールを使用し、Nvidia と AMD にドライバーを通じて面倒な作業を行わせることができます。

API には、高レベルまたは低レベルの抽象化として知られるさまざまな種類があることも理解する価値があります。それは派手に聞こえますが、その意味は非常に単純です。抽象化のレベルが高くなるほど、アプリケーションはハードウェアの詳細から離れ、API およびグラフィックス ドライバーによって処理されるワークロード (この場合) が増加します。

バルカン列車に乗り込みます

これは、ある意味でゲーム開発を簡素化するという意味では良いことです。欠点としては、ドライバーを介して大規模な最適化を行う必要があり、その結果、開発者が実際に物事を進める機会が少なくなることが挙げられます。

現状では、DirectX は主に非常に高レベルの API です。偶然ですが、DirectX も CPU オーバーヘッドとマルチスレッドに関しては問題を抱えています。これは、DirectX ゲームが両方の指標から見てもかなり厳しいものであることを意味します。そして、開発者はこれらすべてについてほとんど何もできていないことがよくあります。

これらの問題を解決することを目的とした、低レベル API の新時代を迎えましょう。おそらく、すべては次から始まりましたAMD独自のMantle API。少なくとも、Mantle 氏は Microsoft の考えを支持したようです。これは DirectX 12 につながり、CPU オーバーヘッドの大幅な削減とマルチスレッドの改善が期待されます。

そして今回、OpenGL を支える業界コンソーシアムである Khronos によって提供された Vulkan が登場しました。 OpenGL が共謀して、乱雑で、非効率で、愛されず、停滞し、本格的な PC ゲームから取り残されるようになったと言っても過言ではありません。

このアイデアは、OpenGL から完全に脱却し、完全に再起動することでした。 Vulkan の主な機能と目標には、上記のすべての厄介な問題への対処が含まれます。これにより、ドライバーのオーバーヘッドが削減され、CPU オーバーヘッドが低くなり、マルチコア CPU がより効果的に使用されます。

さらに詳しく知りたい場合は、Vulkan の低レベル API ステータスは、ゲームがパフォーマンスの面で自らの運命をより詳細に制御できることを意味します。 API やドライバーではなく、ゲームが Vulkan の下でメモリ割り当てとスレッド管理を処理します。

偶然ですが、Oxide ゲームのグラフィックスの第一人者の 1 人である Dan Baker 氏は、これらの側面が重要になると考えています。ゲームにおける CPU パフォーマンスの大きな問題は、数値処理ではなく、メモリ帯域幅と遅延であることが判明したと彼は言います。したがって、開発者が物事を微調整できるかどうかは、大きな違いを生みます。

ゲームのスレッド化に関しては、Vulkan を使用するとすべてが非常に細分化されると Baker 氏は言います。言い換えれば、大きくて重いスレッドの代わりに、一般的なゲーム フレームには 50 ~ 100 個の小さなレンダリング ジョブが含まれることになります。これらは、CPU が提供できる限り多くのコア間で非常に効率的に負荷分散できます。

コマンド キュー内のコマンド バッファを同期するだけの簡単な作業です...

もちろん、OpenGL と同様に、Vulkan は 1 つのプラットフォームに拘束されません。 Windows と Linux の両方の PC 上で使用できます。しかし、それはGoogleのAndroid OSにも搭載される予定だ(気になる人のために、私はMarshmallowのアップデート版を信じている)。実際、すべてのビッグネームが(少なくとも表向きには)何らかのレベルでバルカンのリングに挑戦しています。 AMD、Nvidia、Oculus、任天堂、EA、Oxide、Sony、Lucasfilm などなど。現段階で唯一明らかな省略は Apple であり、Apple は Metal API をこれまでと同様に単独で進めています。

また、Vulkan は DirectX 12 のように Windows 10 に限定されないことにも注目してください。Vulkan は Windows 7 までサポートされる予定です。これは、開発者による Vulkan の採用を促進するために重要になる可能性があります。これは、Vulkan コード パスが提供する知識です。 Windows 10 と DX12 を超えた、高速で低レベルの API にアクセスします。

ああ、バルブもね。バルブについて言及しましたか? Vulkan は、Linux ベースの SteamOS をゲーム プラットフォームとして再び地図上に戻すことを目的として構築されているようです。これまでのところ、SteamOS の見通しはよく見てもまだらのように見えます。その多くは、Linux の貧弱なグラフィックス ドライバーと、OpenGL の遅れた状態のおかげでした。

理論的には、Vulkan はこれらの問題の両方を解決します。ドライバーはパフォーマンスにとってそれほど重要ではなくなります。また、API としては DX12 と競合する機能とパフォーマンスになります。さらに、Vulkan コードパスを取得したら、Windows と Linux の両方のバージョンをノックアウトするのは簡単です。

さらに、PC ゲーム エンジン ジャングルの大手は Vulkan プロのようです。Epic の Unreal、Valve の Source 2、Dice の Frostbite はすべて Vulkan をサポートする予定です。つまり、これらのエンジンを使用しているゲーム開発者も Vulkan をサポートするのは簡単であるはずです。バルカン。

とはいえ、未知数の 1 つは、これが開発者一般にどれだけ大きな影響を与えるか、そして開発者が新しい作業負荷にどれだけ熱心になるかということです。バルカンは彼らにさらなるチャンスを与えます。しかし、それは同時に新たな仕事を生み出し、良好なパフォーマンスを確保する上でより多くの負担を彼らに課すことになります。

Ashes of のような、たくさんのことが起こっているゲーム特異点は、Vulkan のような新しい低レベル API の利点を示すための頼りになるタイトルです。

ここで、おそらく Vulkan の最も物議を醸す側面が見えてきます。 AMD は、Mantle API 全体を Khronos コンソーシアムに寄贈しました。 Vulkan の核心は、AMD の Mantle API から派生しています。

現段階では、この 1 つの事実が長期的な見通しにどれほどの影響を与えるかを言うことは不可能です。それが AMD ハードウェアにとって致命的な利点としてどのように解釈されるのか、そしてどのように Nvidia がそのことに手を出したくないのかは簡単にわかります。

実際、内部関係者らによると、バルカンの大部分は再建されたという。さらに、Nvidia は実際に AMD を破って、完全に準拠しテスト済みの Vulkan ドライバーをリリースしました。

現時点では、Vulkan を試してみるためにプレイできるものはほとんどありません。 Talos の原則はありますが、どうやらあまりうまく機能していないようです。本当に必要な場合にそれを実行するためのガイドがここにあります。

明らかに、この初期段階では、かなりの部分がかなり推測的なものです。開発者はどれだけ熱心になるでしょうか? Vulkan の AMD ルーツは長期的な問題になるでしょうか? Android 上の Vulkan は、PC での成功にわずかな違いをもたらすでしょうか?

誰にもわかりませんが、理論はすべて理にかなっています。つまり、すべては遊ぶためなのです。しかし、少なくとも今では、それが何であるかがわかります。