DXGI_ERROR_DEVICE_HUNG・REMOVED・RESETの違いと直し方|0x887A0005・0006・0007を切り分ける
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
0x887A0005・0006・0007をエラー別に切り分ける
ゲーム中に突然デスクトップへ戻り、DXGI_ERROR_DEVICE_HUNG・DXGI_ERROR_DEVICE_REMOVED・DXGI_ERROR_DEVICE_RESETのいずれかが表示されると、エラー画面の意味が分からず戸惑います。0x887A0005、0x887A0006、0x887A0007といった16進数のコードが併記される場合もあり、どれも同じような故障を示しているように見えます。
しかし3つのエラーは、DXGI(DirectX Graphics Infrastructure)がグラフィックスデバイスの状態を報告する際の区分であり、意味も切り分け方も異なります。特にDXGI_ERROR_DEVICE_REMOVEDは、グラフィックボードが物理的に取り外されたことだけを意味するエラーではなく、詳しい理由はGetDeviceRemovedReasonという別の処理で確認する必要があります。この記事では、3つのエラーの違いとHRESULTの対応、GetDeviceRemovedReasonとDRED(Device Removed Extended Data)の読み方、そしてHUNG・REMOVED・RESETそれぞれで確認する順番を中心にまとめました。
GPUドライバーの更新、オーバークロックの解除、TDRの仕組み、イベントビューアーの詳しい見方といった一般的な対処手順は、それぞれ専用の記事で詳しく解説しているため本記事では要点だけに絞り、DXGIエラーというテーマに特有の分類と切り分け方を中心に解説します。
分類DXGI_ERROR_DEVICE_HUNG・REMOVED・RESETの違い
DXGIは「DirectX Graphics Infrastructure」の略称です。DirectXでGPUやディスプレイを扱うための基盤となる仕組みで、ゲームが使用しているグラフィックスデバイスに問題が起きると、DXGIからエラーコードが返されます。3種類のエラーは名前が似ていますが、同じ意味ではありません。
MicrosoftはDXGI_ERROR_DEVICE_HUNGについて、アプリケーションから送信されたコマンドが原因でデバイスが失敗した状態と定義しています。DEVICE_RESETは実行時の不正なコマンドなどによってデバイスが失敗し、アプリ側でデバイスを作り直す必要がある状態です。DXGI_ERROR_DEVICE_REMOVEDは、グラフィックボードが物理的に取り外された場合だけでなく、ドライバーの更新やグラフィックスデバイスのリセットでも返されます。そのため、エラー名だけでGPU故障や接触不良を確定することはできません。
HRESULTの一覧はMicrosoftのDXGI_ERROR公式リファレンスを参照しています。
誤解に注意DEVICE_REMOVEDはGPUが抜けたという意味ではない
DXGI_ERROR_DEVICE_REMOVEDの「REMOVED」は、必ずしもグラフィックボードがPCIeスロットから外れたことを意味しません。DirectX上で作成されたグラフィックスデバイスが、それまでの状態では使用できなくなったことを示します。たとえば、Windowsが応答しなくなったGPUをリセットした場合、ゲームから見ると、それまで使用していたDirectXデバイスは失われた状態になります。GPUドライバーを更新した場合や、ノートPCで使用するGPUが切り替わった場合にも、ゲームはグラフィックスデバイスを再作成する必要があります。
MicrosoftのDirect3D 11向け資料でも、DEVICE_REMOVEDはデバイスの物理的な取り外し、電源オフ、ドライバーの更新などで発生し、アプリ側でデバイスリソースを作り直す必要があると説明されています。したがって、DEVICE_REMOVEDが出た直後にグラフィックボードを買い替えるのではなく、同時に表示された「GetDeviceRemovedReason」の結果を確認することが重要です。
手がかりGetDeviceRemovedReason failedとは
ゲームのエラー画面には、次のような文章が表示されることがあります。
DirectX function "GetDeviceRemovedReason" failed with
DXGI_ERROR_DEVICE_HUNG
GetDeviceRemovedReasonは、DirectXデバイスが使用できなくなった詳しい理由を取得するための処理です。ゲームが最初にDEVICE_REMOVEDを検出し、GetDeviceRemovedReasonで調査した結果、DEVICE_HUNGやDEVICE_RESETが返されることがあります。Microsoftも、デバイス削除エラーの原因を調査するときは、Direct3Dデバイスを解放する前にGetDeviceRemovedReasonを呼び出し、返されたDXGIエラーを確認するよう開発者へ案内しています。つまり、エラー画面の上部にDEVICE_REMOVEDと書かれていても、詳しい理由がDEVICE_HUNGなら、実際に調べるべきはGPUやドライバーが応答しなくなった原因の方になります。
GetDeviceRemovedReasonの仕様はMicrosoftのID3D11Device::GetDeviceRemovedReason公式リファレンスを参照しています。
診断データDREDとは
DirectX 12対応ゲームでは、Device Removed Extended Data、通称DREDがクラッシュ調査に利用される場合があります。DREDは、予期しないデバイス削除の原因を調査するために、GPUがどこまで処理を完了したかを示す自動ブレッドクラムや、GPUページフォルト情報を記録する診断機能です。主にゲーム開発者やGPUドライバー開発者が使用する機能であり、一般ユーザーがDREDの内容だけで故障部品を確定するのは困難です。ゲームのクラッシュレポートにDRED、GPU Breadcrumbs、GPU Page Faultといった表示がある場合は、そのログを保存し、開発元やGPUメーカーへの問い合わせ材料にしてください。
DREDの仕様はMicrosoftのDirectX-Specs DRED公式ドキュメントを参照しています。
記録の照合TDRとイベントビューアーの記録を確認する
DXGIエラーと同時に、画面が数秒間ブラックアウトしてからデスクトップへ戻る場合は、WindowsのTDR(Timeout Detection and Recovery)によってGPUがリセットされた可能性があります。TDRはGPUの処理が一定時間内(既定で2秒)に完了しないとGPUとディスプレイドライバーをリセットする仕組みで、リセット後にそれまで使用していたDirectXデバイスが無効になり、DEVICE_REMOVEDやDEVICE_RESETにつながることがあります。TDRの仕組みとTdrDelayを変更すべきでない理由は「ディスプレイドライバーが応答を停止したため、正常に回復しました」の原因と直し方で詳しく解説しています。
NVIDIA環境ではnvlddmkm、AMD環境ではディスプレイドライバー関連のイベントが、DXGIエラーと同じ時刻にイベントビューアーへ記録されることがあります。同時刻のログを照合すると、GPU側の問題かゲーム側の問題かを切り分けるヒントになります。イベントビューアーでの詳しい確認手順はnvlddmkmイベントID 0・14・153の原因で解説しています。
早見表特定ゲームだけか複数ゲームで出るか確認する
DXGIエラーを確認したら、まず発生条件を整理してください。特定ゲームだけで発生するのか、複数のゲームで発生するのかによって、優先して確認する場所が変わります。
| 発生条件 | 優先して確認する場所 |
|---|---|
| 特定ゲームだけで発生 | ゲーム側の不具合、設定、MOD、シェーダー、API |
| 特定のマップや場面だけで発生 | テクスチャ、レイトレーシング、VRAM、ゲームデータ |
| アップデート後から発生 | ゲーム更新、ドライバー更新、設定変更 |
| DirectX 12だけで発生 | DX12実装、シェーダー、レイトレーシング、ドライバー |
| すべてのゲームで発生 | GPU、ドライバー、電源、RAM、CPU、PCIe |
| 高負荷時だけ発生 | 電源、温度、GPUクロック、VRAM |
| Alt+Tabやゲーム終了時に発生 | ドライバー、オーバーレイ、表示モード |
| スリープ復帰後に発生 | ドライバー、BIOS、PCIe電源管理 |
| OCやアンダーボルト後から発生 | GPU、VRAM、CPU、RAMの設定 |
| 別GPUでは発生しない | 元のGPUまたは電源経路 |
特定ゲームだけで発生する場合は、PCのハードウェア故障よりも、ゲーム側の描画処理やドライバーとの組み合わせを先に確認します。複数のゲームで同じエラーが発生する場合は、GPUだけでなく、システムメモリ、電源ユニット、マザーボードなども調査対象になります。
保存エラー画面を保存する
エラー画面を閉じる前に、スクリーンショットまたはスマートフォンで撮影してください。
| 表示内容 | 確認する理由 |
|---|---|
| DEVICE_HUNG・REMOVED・RESET | エラーの種類を特定する |
| 0x887A0005・0006・0007 | HRESULTを検索できる |
| GetDeviceRemovedReason | 内部で返された詳しい理由を確認する |
| GPU名 | 内蔵GPUと外部GPUの誤認を防ぐ |
| ドライバーバージョン | 更新・ロールバックの判断に使う |
| DirectX 11・12 | APIを変更した検証ができる |
| ゲーム内のファイル名や関数名 | 開発元の既知問題と照合できる |
確認順1DEVICE_HUNGが出る場合の確認順
DXGI_ERROR_DEVICE_HUNGは、アプリから送られたグラフィックスコマンドを正常に処理できず、GPUが応答しなくなった状態として定義されています。特定ゲームだけで発生する場合は、ゲームファイルの整合性、MOD、シェーダーキャッシュ、DirectX 11・12、レイトレーシング、フレーム生成を優先して確認します。複数ゲームで発生する場合は、GPU・VRAM・CPU・RAMのOCを解除し、ドライバー、電源、温度を確認してください。すべての設定を定格にしても複数ゲームで再現する場合は、別GPUや別電源ユニットでの交換検証に進みます。
確認順2DEVICE_REMOVEDが出る場合の確認順
DXGI_ERROR_DEVICE_REMOVEDでは、まずエラー画面に表示されたGetDeviceRemovedReasonの結果を確認します。詳しい理由がDEVICE_HUNGなら、GPUやドライバーが応答しなくなった原因を調べます。詳しい理由がDEVICE_RESETなら、ゲーム、ドライバー、GPUのリセットが発生した条件を確認します。同時刻にTDR関連のイベントが記録されている場合は、TDRによってGPUがリセットされた可能性があります。スリープ復帰、ドライバー更新、内蔵GPUと外部GPUの切り替え時に一度だけ出た場合は、グラフィックスデバイスの再作成にゲームが失敗しただけの可能性もあります。
確認順3DEVICE_RESETが出る場合の確認順
DXGI_ERROR_DEVICE_RESETは、実行時の正しくない形式のコマンドなどによりデバイスが失敗した状態として定義されています。アプリはDirectXデバイスを破棄し、再作成する必要があります。特定ゲームだけで発生する場合は、ゲーム側の不具合、設定ファイル、MOD、シェーダー、DirectX APIを優先して確認します。複数ゲームでDEVICE_RESETが発生する場合は、ドライバー、OC、RAM、電源、GPUを確認します。ゲーム側の問題とハードウェアの不安定さの両方で表示される可能性があるため、エラー名だけでは原因を確定できません。
定番の対処ドライバー・OC・シェーダーキャッシュを確認する
DXGIエラー特有の切り分けを終えたら、GPUドライバーの更新・ロールバック・クリーンインストール、GPU・VRAM・CPU・RAMのオーバークロックとXMP・EXPOの解除、DirectX 12から11への切り替え、シェーダーキャッシュの再作成、内蔵GPUで誤起動していないかの確認、Windowsシステムファイルの修復といった一般的な手順も有効です。これらの手順とやり方の詳細は「Out of video memory」でゲームが起動しない原因でも同様に解説しています。ドライバー更新直後から症状が出た場合はロールバックを、OC環境では定格に戻した状態での再現確認を優先してください。
接続の確認GPU補助電源とPCIe接続を確認する
複数ゲームでDXGIエラーが再現する場合は、GPU補助電源の挿し直しと、コネクターの変色・発熱の有無、PCIeライザーケーブルを使っている場合はマザーボードへの直結比較も確認してください。負荷時だけ発生する場合は、電源ユニットの容量やケーブルの状態も候補になります。具体的な確認手順はグラボ交換後にFPSが下がる・カクつく原因でPCIeスロット・補助電源の確認手順を解説しています。
見落としがちMOD・ReShadeとゲームファイルを確認する
MOD、ReShade、フレーム生成MOD、非公式プラグインを使用している場合は、すべて無効にして再現するか確認してください。特にDirectXのDLLを置き換えるMODは、DXGIエラーの原因を切り分ける際に真っ先に外す対象です。特定ゲームだけで発生する場合は、Steamのライブラリからゲームを右クリックし「プロパティ」「インストール済みファイル」「ゲームファイルの整合性を確認」も試してください。
最終判断GPU交換を検討するタイミング
DXGIエラーだけを理由に、すぐGPUを交換する必要はありません。ゲームとGPUの設定を初期化し、複数のドライバーを試し、OCを解除しても複数ゲームで再現する場合に、交換検証へ進みます。
| 検証結果 | 判断 |
|---|---|
| 特定ゲームだけで再現する | ゲームやドライバー側を優先して確認する |
| XMP・EXPO無効で改善する | RAMやメモリーコントローラーを確認する |
| 別GPUでは完全に安定する | 元のGPUまたはその電源経路を確認する |
| 元のGPUが別PCでも再現する | GPU本体の可能性が高い |
| 別電源ユニットで改善する | 元の電源ユニットやケーブルを確認する |
元のGPUを別の正常なPCへ取り付けても同じ症状が出る場合は、GPU本体を疑う有力な根拠になります。保証期間内であれば、グラフィックボードを分解したり、サーマルパッドを交換したりする前にメーカーへ相談してください。
判断エラーが1回だけなら無視してもよいか
ゲームやGPUドライバーのアップデート直後に一度だけ発生し、その後長期間再発していない場合は、経過観察でも問題ないことがあります。一方、短期間に繰り返す場合や、ブラックアウト、画面の乱れ、PCフリーズ、再起動を伴う場合は放置しない方がよいでしょう。
Q&Aよくある質問
まとめまとめ|エラー名だけで原因を確定しない
DXGI_ERROR_DEVICE_HUNGは、GPUへ送られたグラフィックスコマンドを正常に処理できず、デバイスが応答しなくなった状態を示します。DXGI_ERROR_DEVICE_REMOVEDは、DirectX上で使用していたグラフィックスデバイスが利用できなくなった状態で、REMOVEDと表示されても、グラフィックボードが物理的に抜けたとは限りません。DXGI_ERROR_DEVICE_RESETは、実行時の不正なコマンドなどによってデバイスがリセットされ、ゲーム側でデバイスの作り直しが必要になった状態です。
最初にエラー画面を保存し、特定ゲームだけで発生するのか、複数ゲームでも発生するのかを確認してください。DEVICE_REMOVEDでは、GetDeviceRemovedReasonに表示された詳しいエラーもあわせて確認します。エラー名だけを根拠にグラフィックボードを交換せず、ゲーム側、ドライバー、OC、電源、温度、RAM、PCIeを順番に切り分けることが重要です。



