DirectX 11とDirectX 12:ゲームにはどちらが適しているか?

簡潔に言うと、 DirectX 12は、特にCPUがフレームレートの制限要因となっている場合など、DirectX 12をうまく活用するように設計されたゲームであれば、より優れたパフォーマンスを発揮できます。DirectX 11は、特定のゲームや特定のPC環境によっては、よりスムーズで安定した動作を実現する場合があります。どちらのAPIも、自動的に高速、高画質、または安定しているわけではありません。ゲームが両方のAPIに対応している場合は、ご自身のハードウェア環境でそのゲーム内で比較してみてください。

グラフィックプロセッサに向けて色付きのコマンドタイルを準備している複数のCPUコアを示す、マザーボードの抽象的な図。
Direct3D 12では、ゲームが複数のコマンドリストを同時に記録できます。このコンセプト画像はハードウェアのベンチマークではありません。

DirectX 11とDirectX 12では何が変わりますか?

ゲーム関連の議論において、「DirectX 11」と「DirectX 12」とは、ゲームがレンダリング処理をWindowsとグラフィックドライバ経由でGPUに送信するために使用するDirect3DグラフィックスAPIを指します。このAPIは処理の構成方法に影響を与えるものであり、普遍的な品質プリセットを設定したり、同じゲームシーンの見栄えをそれ自体で向上させたりするものではありません。

Direct3D 11は、より高レベルのプログラミングモデルを採用しています。ランタイムとドライバがゲームに関する詳細な処理を管理するため、開発者は幅広いシステムに対応しやすくなります。DX11は厳密にはシングルスレッドではありません。Microsoftは、Direct3D 11におけるマルチスレッドによるオブジェクト作成とコマンドリストの記録についてドキュメントで説明しています。

Direct3D 12では、ゲームエンジンがより直接的な制御を行えるようになりました。ゲームは複数のコマンドリストを異なるCPUスレッドに記録し、コマンドキューに送信できます。また、リソースの状態管理やCPU/GPUの同期についても、より多くの責任を担います。これによりCPUのオーバーヘッドを削減し、スケーリングを向上させることができますが、ゲームの実装にはより多くの作業が必要になります。

エリアDirectX 11DirectX 12
作品提出より多くの管理はランタイムとドライバーによって行われます。ゲームは、より明確な制御機能を備えたコマンドリストを記録し、送信します。
CPUスケーリングマルチスレッドをサポートし、より管理されたモデルを採用しています。コマンド記録をCPUコア全体に、より直接的に分散させることができる。
選手の結果多くの場合、互換性や安定性の面で役立つ代替手段となる。ゲームがCPU最適化に対応している場合、CPUがボトルネックとなっている状況でのパフォーマンスが向上する可能性があります。
フレームレート(FPS)と画質、どちらを優先しますか?いいえ。いいえ。

MicrosoftのDirect3D 11機能ガイドでは、マルチスレッドサポートについて説明しています。また、Direct3D 11と12の比較では、より低レベルの制御とアプリケーションの責任範囲の拡大への移行について解説しています。

DX12はどのような場合に役立つのか、そしてDX11の方が優れているのはどのような場合なのか?

DX12は、ゲームがCPUバウンドになっている場合に最も効果を発揮します。つまり、プロセッサがGPUへの処理準備に苦労している一方で、グラフィックカードにはまだ余裕がある状態です。最適化されたDX12レンダラーは、複数のCPUコアをより効率的に活用し、ドライバのオーバーヘッドを削減できます。これらの効果は、ゲームエンジン、そのパッチ、CPU、GPU、そしてドライバによって異なります。

GPUが既にボトルネックになっている場合、APIを変更しても効果はほとんどないかもしれません。また、DX12はレイトレーシング、メッシュシェーダー、可変レートシェーディングなどのグラフィック機能を自動的に追加するわけではありません。ゲーム側で機能を実装し、ハードウェアとドライバーがそれをサポートする必要があります。Direct3D 12を実行できるGPUであっても、異なる機能レベルや性能を発揮する場合があります。APIサポートと機能サポートが同じではない理由については、 MicrosoftのDirect3Dハードウェア機能レベルガイドを参照してください。

ゲームがDX12に対応していない場合、開発者がお使いの環境でDX11を推奨している場合、またはDX12で繰り返し発生するカクつき、視覚的な不具合、フリーズ、クラッシュが発生する場合は、DX11を選択するのが賢明です。古いGPUやドライバーでも、ゲームのDX11パスの方が安定して動作する場合があります。これはゲームごとに判断すべきことであり、すべての古いPCがDX11を使用すべきというルールではありません。

プレイヤーは、モニター上でレンダリングオプションがハイライト表示されたグラフィック設定画面を確認している。
ゲームが提供するレンダリングオプションを使用してください。すべてのゲームでDX11またはDX12を使用させるような、Windowsに共通する設定はありません。

ゲーム内で両者を比較する方法

  1. ゲームの現在のオプションとサポート情報を確認してください。ゲームによってはレンダリングエンジンが1種類しかない場合もあれば、グラフィック設定やランチャーにDirectXの選択肢が用意されている場合もあります。お使いのGPU、ドライバー、Windowsのバージョンがゲームの要件を満たしていることを確認してください。
  2. テストは一貫性を保ってください。同じセーブデータ、リプレイ、または内蔵ベンチマークを、同じ解像度、グラフィックプリセット、フレームレート制限、およびバックグラウンドアプリで使用してください。ゲームがシェーダーをコンパイルまたはキャッシュしている場合は、まずシーンを一度実行してからテストを繰り返してください。
  3. 滑らかさや安定性、平均FPSを比較してください。フレームタイムの一貫性、目に見えるカクつき、クラッシュ、画像エラーなどを確認してください。各テストは繰り返し実行してください。短時間のテスト結果だけでは判断が難しい場合があります。実際にプレイするゲームの種類において、最も安定していると感じるモードを選択してください。

ゲームのレンダリングエンジンは、メジャーパッチやドライバーのアップデート後に動作が変わる場合があります。Fortnite、Ready or Not、Path of Exileに関する報告結果は、テスト対象となったバージョンとPC環境に基づいたものであり、普遍的な推奨事項ではありません。ゲームに変更があった場合は、最新の開発元ノートを確認し、再度テストしてください。

同一のゲームシーンが2つ、異なるフレームタイムトレースを示す図の上に、1つのモニター上に並べて表示される。
公平な比較を行うため、同じシーンと設定を使用してください。ここに示されているフレームタイムトレースはあくまで例示であり、測定結果ではありません。

では、どちらを使うべきでしょうか?

ゲームが推奨するレンダラーから始めましょう。サポートされている場合はDX12を試してみて、CPUのボトルネックとなっているパフォーマンスが改善されるかどうかを確認してください。DX11の方がシステム上でスムーズで安定している場合は、DX11に切り替えてください。ゲームがオプションを1つしか提供していない場合は、他のAPIを無理に使用しようとするのではなく、サポートされているパスを使用してください。最も実用的なのは、PC上でゲームをスムーズかつ安定して動作させるモードです。

公式資料

コメントを残す

あつまれ どうぶつの森で資源を失わずに岩を壊す方法

あつまれ どうぶつの森で資源を失わずに岩を壊す方法

『あつまれ どうぶつの森』で果物とスコップまたは斧を使って岩を壊す方法、岩が再び出現するタイミング、そして岩を破壊せずに採掘する方法を学びましょう。

DirectX 11とDirectX 12:ゲームにはどちらが適しているか?

DirectX 11とDirectX 12:ゲームにはどちらが適しているか?

DirectX 11とDirectX 12のCPU負荷、互換性、ゲームパフォーマンスの違い、そして両者をゲーム内で公平にテストする方法を学びましょう。

PC向けおすすめPlayStationエミュレーター7選:PS1からPS Vitaまで

PC向けおすすめPlayStationエミュレーター7選:PS1からPS Vitaまで

7つのPC用PlayStationエミュレーターを、コンソール、互換性、セットアップ方法別に比較し、公式ダウンロードリンクとゲームリストも掲載しているので、最適なエミュレーターを選ぶのに役立ちます。

Xboxのゲーマータグをコンソール、PC、またはモバイルで変更する方法

Xboxのゲーマータグをコンソール、PC、またはモバイルで変更する方法

Xboxのゲーマータグは、本体、PC、またはスマートフォンのブラウザから変更できます。以下の手順に従い、名前の制限と料金を確認し、正しいプロフィールであることを確認してください。

エルデンリングはクロスプラットフォームに対応しているのか?クロスジェネレーションプレイが実際にサポートしている機能とは?

エルデンリングはクロスプラットフォームに対応しているのか?クロスジェネレーションプレイが実際にサポートしている機能とは?

エルデンリングは世代を超えたプレイに対応していますが、プラットフォーム間のマッチング機能はありません。PS4、PS5、Xbox、Steam、Switch 2のプレイヤーのうち、どの機種のプレイヤーが同じセッションに参加できるかを確認できます。

PS4コントローラーをPS4本体に接続する方法:手順

PS4コントローラーをPS4本体に接続する方法:手順

USBケーブルを使用してDUALSHOCK 4をPS4とペアリングし、追加のコントローラーを接続し、ソニーが検証した手順に従って充電やペアリングの問題を解決します。

マインクラフトでキノコを植えて巨大キノコを育てる方法

マインクラフトでキノコを植えて巨大キノコを育てる方法

マインクラフトで赤と茶色のキノコを植える方法、栽培ブロックの選び方、光の調整方法、骨粉の使い方、巨大キノコの収穫方法を学びましょう。

マインクラフトの地下農場:実際に機能する地下農場の作り方

マインクラフトの地下農場:実際に機能する地下農場の作り方

水耕栽培方式、作物に適した照明、植え付けのコツ、成長が停滞した場合の対処法などを備えた、Minecraftの地下農場を建設しましょう。

マインクラフトで村人をスポーンさせる方法:効果的な4つの方法

マインクラフトで村人をスポーンさせる方法:効果的な4つの方法

Minecraftで村人を出現させる方法を学びましょう。村から村人を移動させたり、ベッドや食べ物を使って繁殖させたり、コマンドやスポーンエッグを使ったり、ゾンビ化した村人を治療したりする方法があります。

マインクラフトでベルを作る方法:ベルを手に入れる3つの方法

マインクラフトでベルを作る方法:ベルを手に入れる3つの方法

マインクラフトでは鐘をクラフトすることはできませんが、村の鐘を採掘したり、鍛冶屋の村人と取引したり、廃墟となったポータルチェストを調べたりすることで入手できます。