DirectX12で旧ゲームがフリーズする原因とDX11切替え完全ガイド

突然のカクつきに続いてゲームが強制終了し、デスクトップへ戻されてしまう――DirectX 12(DX12)対応ゲームを旧作モードで遊んでいるときに発生するこの現象は、描画 API と古いゲームエンジンの相性問題が主な原因と考えられます。本記事では DX12 が引き起こすフリーズ/クラッシュのメカニズムをひも解きつつ、最も効果が高い「DirectX 11(DX11)への切り替え方法」を中心に、安定性を高める具体策を網羅的に紹介します。API の切り替え箇所が見当たらないタイトル向けの強制指定テクニック、ドライバー更新や Windows 側の設定最適化、構成ファイルの直接編集まで丁寧に解説するので、同様のトラブルでお悩みの方はぜひチェックしてください。

目次

よくある症状と再現パターン

DX12 採用タイトルでも、旧世代ゲームエンジンを一部レガシーコードのまま移植した作品では、描画パスが混在することで GPU コマンドキューのフラッシュが正しく行われず、以下のような症状がランダムに現れます。

  • 画面が 5~10 秒完全停止し、その後ブラックアウトしてゲームプロセスが終了
  • 停止後に GPU ドライバが自動リセット(TDR)され、タスクバーのアイコンが一瞬崩れる
  • Windows のイベントビューアーには LiveKernelEvent 141 や D3DDRED2 が記録される

これらはすべて「API 呼び出しが GPU から返事を受け取れずタイムアウトする」ことに起因し、DX12 固有の非同期実行モデルが古いゲームのレンダリングフローと衝突するのが主な理由です。

DirectX 12 と DirectX 11 の違いを知る

問題の核心を理解するために、DX12 と DX11 のアーキテクチャ的な相違点を押さえておきましょう。

項目DirectX 12DirectX 11
ドライバモデル低レベル。アプリケーション側がキューやリソース管理を手動制御高レベル。ドライバに処理を委任する部分が多い
CPU オーバーヘッド極小(マルチスレッド化前提)やや高い
互換性新設計ゆえ旧 API 仕様を完全に吸収しない長年の拡張でレガシーコードとの親和性が高い
開発コスト高い(エンジン改修が必要)低い(成熟したツールとドキュメント)

旧作を DX12 対応へ移植する際、開発コストを抑えるため DX11 相当のコードを DX12 ラッパー経由で動かすことがあります。このときキュー管理が不完全だと、前述のようなタイムアウト→クラッシュが生じやすくなるわけです。

フリーズ/クラッシュを止める 4 つの基本手順

① ゲーム内設定で API を切り替える

最もシンプルかつ公式に推奨される方法です。大半の PC ゲームは Settings → Graphics(Video/Advanced) に「DirectX Version」や「Graphics API」を掲示しています。

  1. ゲーム内で設定メニューを開く
  2. DirectX 12 となっている項目を DirectX 11 に変更
  3. 設定を保存してゲームを再起動

タイトルによっては変更直後にレンダリングが更新される場合もありますが、基本は必ず再起動してください。

② Steam/Epic/GOG などの起動オプションで強制指定

ゲーム側に API 切り替え項目がない場合でも、ランチャーのコマンドラインで DX11 を強制できます(Steam を例示)。

  1. ライブラリで該当ゲームを右クリック → プロパティ
  2. 一般 タブの「起動オプション」に以下を入力
    -dx11
  3. ウィンドウを閉じて通常起動

DX9/10/12 を選択できるタイトルでは -dx12 と併用することも可能です。Epic Games Launcher でも「追加のコマンドライン引数」に同一オプションを指定できます。

③ 専用ランチャーまたは構成ツールを使うタイトル

MMORPG や海外 AAA 級タイトルでは、ゲーム起動前に独自ランチャーを経由するケースが珍しくありません。多くは「ゲーム設定/オプション」ボタンの中に Graphics API を選ぶプルダウンがあり、DX11 切り替えが可能です。該当項目が見つからない場合は、ランチャーの「追加コマンドライン」入力欄に -dx11 や /d3d11 を追記しましょう。

④ 構成ファイルを直接編集する(上級者向け)

まれにランチャーもオプションも提供されていないタイトルがあります。この場合はインストールフォルダー内の .ini / .cfg / .xml をテキストエディターで開き、API を示すキーを手動変更します。

  • d3dfeaturelevel=11
  • PreferredGraphicsAPI=DirectX11
  • GraphicsAPI=1(0=DX9, 1=DX11, 2=DX12 という採番例)

書き換え前にファイルをバックアップし、上書き後は必ず保存形式を UTF-8(BOM 付き)に統一してください。最新パッチが当たるたびに設定が初期化されることも多く、更新後は再度確認する習慣を付けると安心です。

追加で試すべき安定化テクニック

DX11 模式に移行しても安定しない場合は、以下の手段を段階的に適用すると成功率が大きく上がります。

対策具体的な操作期待できる効果
GPU ドライバー更新NVIDIA GeForce Experience/AMD Software で最新版へ更新API 互換性パッチの適用でクラッシュ率が低減
フルスクリーン最適化を無効実行ファイル右クリック → プロパティ → 互換性 →「フルスクリーン最適化を無効にする」にチェックDXGI のフリップモデル干渉を回避
オーバーレイ無効化Discord・Geforce Overlay・Game Bar などのオーバーレイ表示を OFF描画フック衝突を排除
電源プラン変更Windows 電源設定 → 高パフォーマンス/究極のパフォーマンスに変更GPU 電力スパイクでの TDR 発生を抑止
Windows Update累積更新プログラム/.NET 更新の適用DWM/DirectX ランタイムの安定性向上

DirectX 12 固定タイトルの場合の回避策

一部の最新リマスター版やレイトレーシング対応版では DX12 がコードベースに組み込まれており、DX11 オプションが完全に削除されていることがあります。

  • 公式パッチ/ベータ分岐を探す ― 開発元フォーラムや Discord に DX11 ブランチが公開されることがある
  • 互換モード ― EXE プロパティ → 互換性 → Windows 7/8 モードを選択すると DX11 レイヤーで描画されるケースがある
  • 仮想環境を活用 ― Hyper-V/VMware で DX11 相当の GPU パススルーを利用

ただしレイトレーシングやメッシュシェーダーなど DX12 固有機能を前提にした作品では画質が大幅に低下したり、そもそも起動できない場合もあります。DX11 モードの有無を事前にサポートへ問い合わせるのが無難です。

原因を掘り下げてエラーを解析する方法(デバッグ編)

▼ GPUView/Event Viewer を使ったログ確認

開発者向けのツールですが、トラブルシューティングにも流用できます。

  1. Windows SDK に付属する GPUView を起動
  2. トレースを開始してゲームをプレイ、クラッシュ直前の GPU ストール箇所を特定
  3. イベントビューアー(Windows ログ → システム)で Event ID 14x を検索し、発生時刻を突き合わせ

▼ D3D Debug Layer での詳細出力

開発者モードを有効にし、レジストリの HKLM\Software\Microsoft\Direct3D に EnableD3D12DebugLayer=1 を追加すると、クラッシュ原因のヒントとなるメッセージが DebugView で取得できます。ただしパフォーマンスが大幅に低下するため、検証が終わったら必ず無効化してください。

よくある質問(FAQ)

Q. Windows の「Optional Features」で DirectX をアンインストール/再インストールできますか? A. できません。DirectX ランタイムは OS に統合されており、個別削除は不可です。API 切り替えは必ずタイトル側で行います。 Q. Vulkan に切り替えたら安定したのですが? A. Vulkan は DX12 同様の低レベル API ですがドライバ実装が異なります。公式が Vulkan レンダラを提供している場合は選択肢として有効です。 Q. G-SYNC/FreeSync を無効にしたらフリーズが減りました。関係ありますか? A. 可変リフレッシュレート制御が一部ドライバと競合し、フリップチェーンが時間切れになる例が報告されています。同期テクノロジーも確認対象に含めましょう。 Q. ゲームをウィンドウモードにすると落ちなくなります。 A. フルスクリーン最適化と同じく、ウィンドウモードでは DWM の仲介が入るためプレゼンテーションパスが変わります。この差がクラッシュに影響する場合があります。

まとめ ― DX11 切り替えは最強の保険

Windows 自体には DirectX バージョンを一括で変更する仕組みは存在しませんが、ゲーム内設定や起動オプションを利用すれば大半の旧作を DX11 レンダラで動かせます。API 変更だけで完治しないケースも、ドライバー更新やフルスクリーン最適化の解除などを組み合わせることで、ほぼ再現しなくなったという報告が多数です。レトロゲームの HD リマスターをスムーズに楽しみたい方は、本記事で紹介したチェックリストを順に試し、安定動作を取り戻してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次