▷Directx 12対vulkan:最高のグラフィックスエンジンの戦い?

目次:
- 低レベルのグラフィックAPIと「ドライバーのオーバーヘッド」
- Microsoft DirectX
- クロノスのバルカン
- DirectX 12対Vulkanの長所と短所
- ダブルAPIを使用したゲームのパフォーマンスの違い
現在、PCの世界には、市場を権威を持って管理する2つのファーストクラスのグラフィカルAPIがあります。 このため、 DirectX 12とVulkanの比較を提供します。
どちらにも背後に長い歴史があり、擁護者と中傷者の大群がいます。 今日、私たちは違い、それぞれのキーを見て、それらにいくつかの光を提供しようとします。
コンテンツインデックス
低レベルのグラフィックAPIと「ドライバーのオーバーヘッド」
APIは「アプリケーションプログラミングインターフェース」の略で、開発者が使用できる一連のサブルーチンであり、ソフトウェア開発を容易にする通信プロトコルとユーティリティも含まれています。 私たちはほとんどすべてについてそれらを見つけることができ、各サービスプロバイダーがシンプルでアクセス可能な方法でシステムを実装するためにこの種の支援を受けることは一般的です。
低レベルAPIは、GPUのリソースをより有効に活用してCPUを解放しますが、今日のマルチコアプロセッサーをより効果的に活用することもできます。
DirectX 12とVulkan 1.1はどちらも、最新のグラフィックエンジンの支援を必要とするゲームやアプリケーションの開発を目的としたAPIです。 同時に、これらは最も重要なグラフィックチップセットデザイナーのドライバーによってサポートされるAPIであるため、非常に低いレベルでデザインを知る必要なく、機能にアクセスするための高速で経済的な方法です。
これらのような低レベルのAPIを使用すると、非常に軽量な解釈レイヤーでハードウェアを操作できるため、開発者はハードウェアをより有効に活用して、パフォーマンスと効率の面でより良い結果を得ることができ、他のサブシステムの負荷を解放することもできます。 PCまたは携帯電話の世界では、システムの一般的なCPUへの依存度は低くなります。
今日お話しする2つのAPIは低レベルAPIと見なすことができます。どちらの開発でも、システムのCPUへの依存度がますます低くなり、パフォーマンスレベルでより優れた結果とより多くのグラフィカル関数へのアクセスを実現しています。進んだ。 これらは2つのライブAPIであり、毎年更新を受け取り、一般の人々や開発者の期待に沿うようにしています。
低レベルAPIは、 「ドライバーオーバーヘッド」と呼ばれる別の計算概念に直接影響します。これは、要するに、コンピューターで特定の種類の操作を実行するために必要な二次的なリソースです。 グラフィックの場合、それはグラフィックカードがその仕事をするために必要とする追加のリソースを指し、この場合それは基本的に中央のCPUプロセス時間です。 ここで説明する低レベルAPIは、この依存関係を減らします。実際、依存関係は0になる傾向があります。
Microsoft DirectX
DirectXは、さまざまなWindowsマルチメディアサブシステムを標準化する必要性として発生し、WinG for Windows 3.1の代替品です。 Windows 95ではアドオンパッケージとして採用されており、その2番目のバージョンであるDirectX 2.0はWindows 95 OSR2の基本コンポーネントになります。
DirectX内には、 Direct3Dなどの複数の独立したAPIがあります。これは、問題となっているDirectDraw、DirectMusic、DirectPlay、DirectSoundです。 DirectXは、これらすべてのサブAPIに共通する進歩を示す方法でした。 これはWindows用のAPIですが、Xboxコンソールでのゲームの開発にも使用されるため、Vulkanの場合のようにマルチプラットフォームAPIと見なすことはできますが、無料ではありません。
最新バージョンのDirectX 12は 、2014年から使用されており、数ヶ月前にWindows 10の1809年10月更新バージョンに含まれていたDirect RayTracing(DXR)サブルーチンなどの重要な改善を受けました。
DirectX 12のような低レベルAPIには、ドライバーのオーバーヘッドの削減という基本的な利点があります。 プログラマーは、GPUがプログラムでどのように動作するかを設計できるようになり、特にプロセスの並列化を活用することで、GPUリソースをより適切に管理できるようになりました。 これには、1つのシステムでの複数のGPUのサポートの向上や、同じメーカーのGPUでない場合も含まれます。
互換性のあるグラフィックスの機能を利用して、通常は「整数」または「浮動小数点」のさまざまなタイプの操作を実行し、複雑な操作をより大きなバスで並列に処理することにより、より単純な操作に分割することもできます。 その好例は、AMDまたはNvidiaが32ビットバス上で16ビット操作を処理して、グラフィックスの効率を大幅に向上させる方法です。
このAPIは、利用可能なハードウェアをプログラマが完全に把握しているコンソールGPUの使用効率を、無限の異なるハードウェアの可能性を持つPCを構成する異種のエコシステムに近づけました。
現在、DirectX 12は驚くべきことにWindows 7およびWindows 10で利用可能であり、Xbox Oneと直接互換性はありませんが、実際にはその機能の90%がPCで使用されており、違いは最小限であり、そのため、開発者はXbox One向けにPCゲームをすばやく適応させ、その逆も可能です。
クロノスのバルカン
VulkanはOpenGLの低レベルAPIへの進化であり、Khronos Corporationによってサポートされています。 PCの世界では、DirectX 12に対して二次的な役割を果たしていますが、Androidなどの異なるプラットフォームへのさまざまな適応により、モビリティのためのグラフィックスのベンチマークになっています。 また、無料システムでのゲームの優れた代替手段であるLinuxとも互換性があります。
その大きな利点は、最新のCPUとGPUで非常に効率的であり、前者の使用率が低く、後者のハードウェアの使用率が高い、優れた並列処理能力です。 これは、マルチコアプロセッサを活用してこのタイプのプロセッサで優れた負荷分散を実現するように特別に設計されています。実際、提供できるコアの数が多いほど効率的です。
Vulkanの歴史は、DirectX 12と、非営利会社であるKhronosがMicrosoftが独自のAPIを使用する場合よりも頻繁に、またはより頻繁に維持している1年後まで遡ります。 AMDがGCNアーキテクチャ用に開発したAPI マントルに基づいており、「オーバーヘッドドライバー」を削減するためのもう1つの低レベルAPIでした。 AMDはその開発をKhronosに寄付しました。これらは市場で最高のグラフィカルAPIの基盤です。
この設計により、優れた並列化に加えて、GPUでのシェーディング操作のプリコンパイルを排除し、ハードウェアによる操作方法やアクセス方法のより詳細な調整に加えて、より多くの効果と画面上の読み込み速度を向上させることができます。利用可能なフレームバッファ。 確かに、ハードウェア自体に最も近いのはPC用のAPIであり、DirectX 12よりも優れています。
Vulkanは、Androidおよびその他のプラットフォームでの低レベルAPIの改善も導入しています。
2018年末に導入された最新バージョンのVulkan 1.1は、HLSLサポートなどの重要な改善を追加しています。これは、プリコンパイルの必要なしにシェーダー操作を管理するDirectX 12の代替手段であり、DirectX 12との互換性が向上しています(多くのサブルーチンに)グラフィックスとは別に)、製造元に関係なくマルチGPUシステムを明示的にサポートし、もちろんレイトレーシングをサポートします。
DirectX 12対Vulkanの長所と短所
ハードウェアのより良い使用、ハードウェアのより多くの制御、GPUとCPUの両方の並列化のより良い使用など、すでに説明した一般的な機能に加えて、これらの2つのAPIは、グラフィックチップで一般的な計算操作を実行する可能性を追加します。互換性があります。 これにより、互換性のあるグラフィックスエンジン(すでに数世代前)が、グラフィックスコンポーネントのないものを含むあらゆる種類のプログラムで利用できる複雑な数学演算を実行できるようになります。
ゲームでは、現実的な物理学、人工知能、位置音響効果などの計算など、ますます重要になる二次操作にも使用できます。
どちらのAPIも優れたグラフィックスによる優れたサポートを備えており、AMDとNvidiaの両方がこれらのAPIに適切なドライバーを提供するよう努めており、両方のユーザーに最新の改善を提供し、いずれかを使用するゲームのパフォーマンスと安定性を強化していますまたは別のAPI。
実際、両方の "ドライバーのオーバーヘッド"は非常に低く、テストでわかるように、両者間にほとんど違いはありません。これは、両方のメーカーのドライバーの重要な最適化の兆候でもあります。
Driver Overheadのデモでは、フレームレートを120FPSに制限しました。 Dota 2では、同じFPSでCPU消費が大幅に削減されます。
より明白な唯一の違いは、 VulkanのCPUへの依存度がやや低く、平均消費量が少ないこと、およびWindowsとLinuxを含むさまざまなプラットフォーム、およびモバイルバージョンであるOpenGL ESとの均質化に対してはるかにオープンであることです。それが動くプラットフォームをさらに統一する途中です。
DirectX 12は、このAPIでコストを削減するのに最適なエコシステムであると開発者に認められている開発者に大いに支持されています。パフォーマンスの低下はほとんどありません。
ダブルAPIを使用したゲームのパフォーマンスの違い
この動きはウォーキングによって示されるため、これらの2つのAPIを使用して実行する機能を持つさまざまなゲームとベンチマークでいくつかのパフォーマンステストを実行しました。
3DMarkドライバーオーバーヘッドテスト。 何百万ものリクエストが発生しますが、多いほど良いです。
特異性の灰。 FPSの結果、より良いです。
奇妙な旅団。 FPSの結果、より良いです。
私たちはあなたが興味を持つべき最高のハードウェアガイドを要約します:
- 市場で最高のプロセッサ市場で 最高のマザーボード市場で 最高のRAMメモリ市場で 最高のグラフィックスカード市場で 最高のSSD シャーシまたはPCケースの 改善電源の 改善ヒートシンクと液体冷却器の改善
ご覧のとおり、結果は均一であり、一方のプログラムと他方のプログラムの違いがわかります。 これにより、どちらがより良く、答えが明確であるかという問題が残ります。それは、プログラムと、その開発者がその利点をどのように知っているか、または利用したいかによって異なります。 残っているのは、各ゲームで開発者がグラフィックスの利点を最大限に活用するAPIを正確に使用すると考えていることです。 Directx 12対Vulkanに関する記事をどう思いましたか? ご意見をお聞かせください!
Directx 12はWindows 10に同梱されます

新しいDirectX 12は、新しいWindows 10が正式にリリースされるまで届かず、そのバージョンのWindows専用となる可能性があります
Directx 12はパフォーマンスを最大50%向上させます

マイクロソフトは、DirectX 12がビデオゲームのパフォーマンスを最大50%向上させ、モバイルデバイスの消費を削減できることを発表しました
Zotac geforce gtx 580は、directx 12ではパフォーマンスが低下しますが、directx 11ではタイプを保持します

wccftechチームは、Zotac GeForce GTX 580と最新のGeForce 384.76 WHQLドライバーを組み合わせて、DirectX 12でテストしました。