| Re: DirectX11使用時のデバイスロスト・復帰について ( No.1 ) |
- 名前:管理人 日時:2026/03/20 04:29
> DxLib側ではデバイスロストの復帰に対応しておられると認識していたのですが、DirectX11使用時に復帰しない事を自環境で確認しております。
DirectX9 ではフルスクリーンで起動したソフトを ALT+TAB で別プロセスにフォーカスを切り替えただけでも
デバイスロストしていたのでデバイスロスト対応が必須だったのでデバイスロストの検出と復帰に対応したのですが、
DirectX11 ではフォーカスを切り替えた程度ではデバイスロストしなくなったのでデバイスロスト対応はしていません
実際の所 DirectX11 では通常のゲームプレイでデバイスロストするような状況はあまり無いと思うのですが、
デバイスロストが頻繁に発生するような環境での使用を予定されているのでしょうか?
|
| Re: DirectX11使用時のデバイスロスト・復帰について ( No.2 ) |
- 名前:uncle 日時:2026/03/20 09:28
ご返信ありがとうございます。
「頻繁に発生する環境を想定しているか」という意味では、必ずしもそうではありません。
ただ、こちらとしては発生頻度の高低とは切り離して、製品として最低限の動作保証の観点から、
デバイスロスト発生時にも描画停止や異常終了に至らず、復帰できることが望ましいと考えております。
DirectX9と比較してDirectX11では発生しにくいという点は理解しておりますが、
ユーザー数が増えれば、発生頻度が低い事象であっても実際に遭遇する方は一定数出てくると考えております。
そのため、本件は頻度の問題というより堅牢性の問題として認識しております。
そのうえで、DirectX11における本件は現状仕様として対応しないという整理なのか、今後対応をご検討いただける可能性があるのかをご確認いただけますと幸いです。
よろしくお願いいたします。
|
| Re: DirectX11使用時のデバイスロスト・復帰について ( No.3 ) |
- 名前:管理人 日時:2026/03/21 06:23
DirectX11 でデバイスロストが発生するとなると、グラフィックカードが壊れかけていて
高負荷になった際に動作不良を起こしてデバイスがロストするとか、USB接続型のディスプレイ出力デバイスを
出力先として実行している途中にそのUSB接続型デバイスをUSBポートから外す等の
ある程度不具合が発生してもおかしくない状況になると思いますので、
ユーザー視点でも仮にそのような状況になった際にソフトが動作不良を起こしても
そんなに反感は覚えないと思います
( 実際に2014年頃にDXライブラリが DirectX11 に対応して以降、デバイスロスト対応に関する
ご要望を受けたことや、デバイスロスト非対応であることに関するクレームを受けたことはありません )
DXライブラリは主にフリー作品やインディー作品等の小規模なゲームソフトで使用されることを想定しているので
『堅牢性』や『動作保証』という言葉が登場するような高い品質が求められる製品での使用はあまり想定していません (・・;
( 『クラッシュしたら再起動すればいいや』くらいのノリが許される作品での使用を想定しています… )
とはいえ、デバイスロスト対応が簡単に実現できそうであれば対応してみようと思いますので、
よろしければ uncleさんが試されたデバイスロストを意図的に発生させる方法を教えて頂けないでしょうか? m(_ _)m
|
| Re: DirectX11使用時のデバイスロスト・復帰について ( No.4 ) |
- 名前:uncle 日時:2026/03/21 09:51
ご説明ありがとうございます。スタンスは理解いたしました。
確かに、デバイスロストがアダプタの着脱やドライバ更新などでしか発生しないのであれば、自分も「そこは諦めてもよいライン」と考えております。
ただ、デバイスロストにはTDRも含まれます。
このあたりはユーザー環境に依存する部分もあるため、「レアケースだから対応しない」と切り捨てられるほどのレアケースとは言いにくい、と考えています。
>uncleさんが試されたデバイスロストを意図的に発生させる方法を教えて頂けないでしょうか?
正確には意図的に発生させる方法を確立しているという訳ではなく、
長時間起動しているとデバイスロストが発生することを確認している、という状況になります。
確立方法を確認した所、
設定 → システム → オプション機能 → 「機能を表示」を開き、
追加された機能一覧に「グラフィックス ツール」が表示されていなければ、「使用可能な機能を表示する」から「グラフィックス ツール」を選択してインストール、
その後、検索窓に「developer command prompt」と入力して"管理者"で実行、「dxcap -forcetdr」を実行すれば疑似的にではありますが再現可能な事を確認しました。
ご確認の程、よろしくお願いいたします。
|
| Re: DirectX11使用時のデバイスロスト・復帰について ( No.5 ) |
- 名前:管理人 日時:2026/03/22 01:55
|
| Re: DirectX11使用時のデバイスロスト・復帰について ( No.6 ) |
- 名前:uncle(解決済み) 日時:2026/03/22 12:10
自環境でも復帰できることが確認できましたm(_ _)m
ご対応ありがとうございました、
本件はクローズさせていただきます。
備考
・SetGraphicsDeviceRestoreCallbackFunctionも正常に動作していました。
・フォントの見た目に軽微な差異や、一部画像にチラつきが発生していましたが、フォントやシェーダーのリロードを行えば解決しました。
|