Re: 使用するGPUを切り替えたい ( No.1 ) |
- 名前:焼き鯖 日時:2022/08/05 12:09
関数で-1が返ってくる場合
---------------------------------------------------
0:ChangeWindowMode実行
0:ウインドウモードフラグが立てられました
1:dxgi.dll の読み込み.... 成功
2:API CreateDXGIFactory2 のアドレスを取得します.... 成功
3:IDXGIFactory2 を作成します.... 成功
19:IDXGIAdapter を列挙
20: Adapter No.0 Desc:NVIDIA GeForce RTX 3080 Laptop GPU
20: Output Device No.0 Name:\\.\DISPLAY1
20: Output Device No.1 Name:\\.\DISPLAY4
20: Adapter No.1 Desc:Intel(R) UHD Graphics
21: Adapter No.2 Desc:Microsoft Basic Render Driver
21:dxgi.dll の解放 1
23:ディスプレイ情報のセットアップ開始
25: モニターの数:2 ディスプレイデバイスの数:7
26: No.0 モニター名:\\.\DISPLAY1 3840x2160 32bit 60Hz
29: No.1 モニター名:\\.\DISPLAY4 4320x2430 32bit 60Hz
51:ディスプレイ情報のセットアップ完了
54:DXライブラリの初期化処理開始
55: システムの情報を出力します
55: DXライブラリ Ver3.23a
55: 論理プロセッサの数 : 16
55: OS Windows10 ( Build 19044 )
156: 現時点のCPU動作速度:大体3.09GHz
156: MMX命令を使用します
156: SSE命令が使用可能です
157: SSE2命令が使用可能です
157: CPUベンダ:GenuineIntel
158: CPU名:Intel(R) Core(TM) i9-10980HK CPU @ 2.40GHz
158: COMの初期化... 成功
191: 非同期読み込み処理の初期化...成功
192: ファイルアクセス処理の初期化...成功
193: メモリ総量:32585.63MB 空きメモリ領域:18688.09MB
193: タイマーの精度を検査します
193: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
194: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz
194: ソフトの二重起動検査... 二重起動はされていませんでした
203: ウインドウクラスを登録します... 登録に成功しました
204: ウインドウモード起動用のウインドウを作成します
211: ウインドウの作成に成功しました
211: ウインドウを表示します
281: IMEを無効にしました
283: ウインドウスタイルをウインドウモード用に変更します... 完了
320: DirectInput関係初期化処理
320: XInput DLL の読み込み中... 成功
342: DirectInput8 の取得を試みます...成功
365: 引き続き初期化処理... 初期化成功
376: ジョイパッドの初期化...
376: XInput 対応コントローラーのチェックを開始します
377: XInput 対応コントローラー No.0 をチェック
377: XInput 対応コントローラー No.0 の接続は確認できませんでした
378: XInput 対応コントローラー No.1 をチェック
378: XInput 対応コントローラー No.1 の接続は確認できませんでした
379: XInput 対応コントローラー No.2 をチェック
379: XInput 対応コントローラー No.2 の接続は確認できませんでした
379: XInput 対応コントローラー No.3 をチェック
380: XInput 対応コントローラー No.3 の接続は確認できませんでした
380: XInput 対応コントローラーのチェック完了
380: DirectInput 対応ジョイパッドの列挙を開始します
417: DirectInput 対応ジョイパッドの列挙終了
418: ジョイパッドの初期化は正常に終了しました
418: マウスデバイスの初期化... 初期化成功
419: キーボードデバイスの初期化... 初期化成功
422: DirectInput 関連の初期化は正常に終了しました
427: XAudio2 の初期化を行います
430: XAudio2_8.dll を使用します
436: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8
799: XAudio2 の初期化は正常に終了しました
803: d3d11.dll の読み込み.... 成功
807: dxgi.dll の読み込み.... 成功
807: API CreateDXGIFactory2 のアドレスを取得します.... 成功
808: IDXGIFactory2 を作成します.... 成功
817: API D3D11CreateDevice のアドレスを取得します.... 成功
818: IDXGIAdapter を取得します.... 成功
819: Direct3D 11 FeatureLevel 11_0 以上を対象とします
819: ID3D11Device オブジェクトを取得します.... 成功
942: IDXGIDevice1 を取得します.... 成功
943: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
944: [ウインドウモード 1920x1080]
944: IDXGISwapChain2 を作成します.... 成功
958: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000
958: IDXGIOutput を取得します.... 成功
959: Graphics Device:NVIDIA GeForce RTX 3080 Laptop GPU
960: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
960: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です
961: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です
961: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です
961: 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
962: 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
962: アルファ付き 16bit カラーフォーマットは DXGI_FORMAT_B4G4R4A4_UNORM です
963: アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
963: アルファテスト用 16bit カラーフォーマットは DXGI_FORMAT_B5G5R5A1_UNORM です
964: アルファテスト用 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
964: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です
965: DXT2テクスチャフォーマットは使えません
965: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です
965: DXT4テクスチャフォーマットは使えません
966: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です
966: BC7_UNORM テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM です
967: BC7_UNORM_SRGB テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM_SRGB です
967: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
968: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
968: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
968: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
969: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
970: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
970: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
971: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
971: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
971: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
972: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
972: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
973: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
973: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
973: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
974: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
974: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
974: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
975: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
975: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
975: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
976: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
976: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
977: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
977: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
977: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1
977: 同時にレンダリングできるバッファの数:8
978: 最大テクスチャサイズ 幅:16384 高さ:16384
978: 標準描画用の頂点バッファの作成.... 成功
979: シェーダーコード関係の初期化.... 成功
994: 各種シェーダー用定数バッファの作成.... 成功
995: 各種 ID3D11InputLayout の作成.... 成功
1024: 画像の単純転送処理の初期化... 成功
1025: 深度バッファを作成します.... 成功
1027: フォントの初期化を行います
1030: フォントの初期化は正常に終了しました
1235: 文字コードバッファの初期化を行います... 完了しました
1261:DXライブラリの初期化処理終了
3375:フォントの初期化を行います
3375:フォントの初期化は正常に終了しました
3428:d3d11.dll の解放 1
3429:dxgi.dll の解放 1
3429:Direct3D11 のオブジェクト数を出力
3430:Direct3D11 のオブジェクト合計数 : 0
3430:DirectInput 関連の終了処理... 完了
3430:サウンド関連の終了処理... 完了
3456:ウィンドウ関連の終了処理... ウインドウを閉じようとしています
3464:ウインドウが破棄されようとしています
3464:ソフトを終了する準備が整いました
3543:完了
3548:COMを終了... 完了
3548:
3549:Alloc memory dump
3549: Total size:0(0.000kb) Alloc num:0
3549:
---------------------------------------------------
インデックスとして1を指定して関数で0が返ってくるもののシェーダー系でエラー
---------------------------------------------------
0:dxgi.dll の読み込み.... 成功
2:API CreateDXGIFactory2 のアドレスを取得します.... 成功
2:IDXGIFactory2 を作成します.... 成功
15:IDXGIAdapter を列挙
15: Adapter No.0 Desc:Intel(R) UHD Graphics
16: Output Device No.0 Name:\\.\DISPLAY1
16: Adapter No.1 Desc:NVIDIA GeForce RTX 3080 Laptop GPU
17: Output Device No.0 Name:\\.\DISPLAY4
17: Adapter No.2 Desc:Microsoft Basic Render Driver
17:dxgi.dll の解放 1
19:ディスプレイ情報のセットアップ開始
21: モニターの数:2 ディスプレイデバイスの数:7
21: No.0 モニター名:\\.\DISPLAY1 3840x2160 32bit 60Hz
22: No.1 モニター名:\\.\DISPLAY4 4320x2430 32bit 60Hz
53:ディスプレイ情報のセットアップ完了
54:ChangeWindowMode実行
54:ウインドウモードフラグが立てられました
56:DXライブラリの初期化処理開始
58: システムの情報を出力します
58: DXライブラリ Ver3.23a
59: 論理プロセッサの数 : 16
59: OS Windows10 ( Build 19044 )
160: 現時点のCPU動作速度:大体3.07GHz
160: MMX命令を使用します
160: SSE命令が使用可能です
161: SSE2命令が使用可能です
161: CPUベンダ:GenuineIntel
163: CPU名:Intel(R) Core(TM) i9-10980HK CPU @ 2.40GHz
163: COMの初期化... 成功
207: 非同期読み込み処理の初期化...成功
208: ファイルアクセス処理の初期化...成功
208: メモリ総量:32585.63MB 空きメモリ領域:15625.37MB
209: タイマーの精度を検査します
209: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
209: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz
210: ソフトの二重起動検査... 二重起動はされていませんでした
218: ウインドウクラスを登録します... 登録に成功しました
219: ウインドウモード起動用のウインドウを作成します
227: ウインドウの作成に成功しました
227: ウインドウを表示します
276: IMEを無効にしました
278: ウインドウスタイルをウインドウモード用に変更します... 完了
311: DirectInput関係初期化処理
311: XInput DLL の読み込み中... 成功
321: DirectInput8 の取得を試みます...成功
338: 引き続き初期化処理... 初期化成功
346: ジョイパッドの初期化...
347: XInput 対応コントローラーのチェックを開始します
347: XInput 対応コントローラー No.0 をチェック
348: XInput 対応コントローラー No.0 の接続は確認できませんでした
348: XInput 対応コントローラー No.1 をチェック
348: XInput 対応コントローラー No.1 の接続は確認できませんでした
349: XInput 対応コントローラー No.2 をチェック
349: XInput 対応コントローラー No.2 の接続は確認できませんでした
349: XInput 対応コントローラー No.3 をチェック
350: XInput 対応コントローラー No.3 の接続は確認できませんでした
350: XInput 対応コントローラーのチェック完了
350: DirectInput 対応ジョイパッドの列挙を開始します
383: DirectInput 対応ジョイパッドの列挙終了
383: ジョイパッドの初期化は正常に終了しました
384: マウスデバイスの初期化... 初期化成功
385: キーボードデバイスの初期化... 初期化成功
393: DirectInput 関連の初期化は正常に終了しました
398: XAudio2 の初期化を行います
400: XAudio2_8.dll を使用します
404: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8
692: XAudio2 の初期化は正常に終了しました
694: d3d11.dll の読み込み.... 成功
697: dxgi.dll の読み込み.... 成功
698: API CreateDXGIFactory2 のアドレスを取得します.... 成功
698: IDXGIFactory2 を作成します.... 成功
707: API D3D11CreateDevice のアドレスを取得します.... 成功
707: IDXGIAdapter を取得します.... 成功
708: Direct3D 11 FeatureLevel 11_0 以上を対象とします
708: ID3D11Device オブジェクトを取得します.... 成功
811: IDXGIDevice1 を取得します.... 成功
812: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
812: [ウインドウモード 1920x1080]
812: IDXGISwapChain2 を作成します.... 成功
821: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000
821: IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004
837: d3d11.dll の解放 1
838: dxgi.dll の解放 1
839: Direct3D11 のオブジェクト数を出力
839: Direct3D11 のオブジェクト合計数 : 0
841: DirectDraw オブジェクトの取得を行います.... 成功
845: 引き続き初期化処理... 初期化に成功しました
865: IDirect3D9Ex オブジェクトを取得します.... 成功
894: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
1201: 成功
1202: Driver:igdumdim64.dll Description:Intel(R) UHD Graphics
1203: 画面のフォーマットは D3DFMT_X8R8G8B8 です
1203: 16bit Zバッファフォーマットは D3DFMT_D16 です
1204: 24bit Zバッファフォーマットは D3DFMT_D24X8 です
1204: 32bit Zバッファフォーマットは D3DFMT_D24X8 です
1204: 16bit カラーフォーマットは D3DFMT_R5G6B5 です
1205: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
1205: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です
1206: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
1206: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です
1206: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
1207: DXT1テクスチャフォーマットはD3DFMT_DXT1 です
1207: DXT2テクスチャフォーマットはD3DFMT_DXT2 です
1207: DXT3テクスチャフォーマットはD3DFMT_DXT3 です
1207: DXT4テクスチャフォーマットはD3DFMT_DXT4 です
1208: DXT5テクスチャフォーマットはD3DFMT_DXT5 です
1208: ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
1208: ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
1209: ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
1209: 1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です
1209: 1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
1209: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です
1209: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です
1210: 2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
1210: 2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
1210: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です
1210: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です
1211: 描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です
1211: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
1211: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
1211: 描画用 ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
1212: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
1212: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
1212: 描画用1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_L8 です
1212: 描画用1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_L16 です
1212: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です
1213: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です
1213: 描画用2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
1213: 描画用2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
1213: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です
1214: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です
1214: A8R8G8B8 カラーフォーマットは頂点テクスチャフェッチに使用できます
1214: X8R8G8B8 カラーフォーマットは頂点テクスチャフェッチに使用できません
1214: R5G6B5 カラーフォーマットは頂点テクスチャフェッチに使用できません
1215: A1R5G5B5 カラーフォーマットは頂点テクスチャフェッチに使用できません
1215: X1R5G5B5 カラーフォーマットは頂点テクスチャフェッチに使用できません
1215: 一度に描画できるプリミティブの最大数:16777215
1215: 対応している最大頂点インデックス:16777215
1216: 同時にレンダリングできるバッファの数:4
1216: 最大テクスチャサイズ 幅:16384 高さ:16384
1216: テクスチャステージテンポラリレジスタ:使用可
1216: 減算合成のハードウェア対応:ネイティブ
1216: ハードウェア頂点シェーダーバージョンコード:300
1217: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し
1217: ピクセルシェーダーバージョンコード:300
1224: バックバッファロック転送の時間:118400nsec 一時的な描画可能バッファを使用した転送の時間:481500nsec
1224: バックバッファロックを使用します
1224: Zバッファを作成します.... 成功
1229: プログラマブルシェーダーを使用します
1263: フォントの初期化を行います
1268: フォントの初期化は正常に終了しました
1384: 文字コードバッファの初期化を行います... 完了しました
1405:DXライブラリの初期化処理終了
1648:頂点シェーダーの作成に失敗しました
1648:頂点シェーダーの作成に失敗しました
1649:頂点シェーダーの作成に失敗しました
1649:頂点シェーダーの作成に失敗しました
1650:頂点シェーダーの作成に失敗しました
1650:頂点シェーダーの作成に失敗しました
1651:頂点シェーダーの作成に失敗しました
1651:頂点シェーダーの作成に失敗しました
1652:頂点シェーダーの作成に失敗しました
1652:頂点シェーダーの作成に失敗しました
1653:頂点シェーダーの作成に失敗しました
1653:頂点シェーダーの作成に失敗しました
1654:ピクセルシェーダーの作成に失敗しました
1655:ピクセルシェーダーの作成に失敗しました
1655:ピクセルシェーダーの作成に失敗しました
1656:ピクセルシェーダーの作成に失敗しました
1656:ピクセルシェーダーの作成に失敗しました
1657:ピクセルシェーダーの作成に失敗しました
1657:ピクセルシェーダーの作成に失敗しました
---------------------------------------------------
 |
Re: 使用するGPUを切り替えたい ( No.2 ) |
- 名前:管理人 日時:2022/08/06 07:02
> そこでお聞きしたいのですが、まず最初の使用率100%で描画がおかしくなる現象は仕様でしょうか?
こちらは状況をもう少し詳しくお聞きしないと分かりません
もし自作のシェーダーでなければ正常に動作するのでしたら、単純に Intel(R) UHD Graphics では
焼き鯖さんが組まれたシェーダーを動作させるには性能(機能)が足りないのかもしれません
> そして、使用するGPUを切り替える方法はありますでしょうか?
こちらの
『切り替え先のインデックス(1番等ログファイルにある他のアダプタ)を指定すると関数の返り値で-1が返ってきて変更もうまくいっていませんでした。(グラボ→内臓グラフィックスの場合)』
については、出力先が無いのが失敗した原因です、ログに
19:IDXGIAdapter を列挙
20: Adapter No.0 Desc:NVIDIA GeForce RTX 3080 Laptop GPU
20: Output Device No.0 Name:\\.\DISPLAY1
20: Output Device No.1 Name:\\.\DISPLAY4
20: Adapter No.1 Desc:Intel(R) UHD Graphics
21: Adapter No.2 Desc:Microsoft Basic Render Driver
↑
このようになっていますが( 分かりやすく空行を入れました )、こちらのリストで『Output Device No....』という記述が無いアダプタを指定すると
『出力先( Output Device )が無い』としてエラーになります
『あるいは返り値が0でうまくいってもシェーダー系でエラーが出るなどしていました。(内臓グラフィックス→グラボの場合)』
↑
こちらについては
15:IDXGIAdapter を列挙
15: Adapter No.0 Desc:Intel(R) UHD Graphics
16: Output Device No.0 Name:\\.\DISPLAY1
16: Adapter No.1 Desc:NVIDIA GeForce RTX 3080 Laptop GPU
17: Output Device No.0 Name:\\.\DISPLAY4
17: Adapter No.2 Desc:Microsoft Basic Render Driver
↑
このようになっていて、GeForce RTX 3080 Laptop GPU にも Output Device No.0 Name:\\.\DISPLAY4 があるのですが、Direct3D 11 の初期化の箇所の
821: IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004
↑
ここで失敗してしまっているのが謎です
因みにシェーダーでエラーが発生するのは、その後のログをご覧になっていただけると分かりますが
865: IDirect3D9Ex オブジェクトを取得します.... 成功
894: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
↑
Direct3D 11 の初期化に失敗したので、代わりに Direct3D 9 を使用しています
Direct3D 11 用のシェーダーを Direct3D 9 で使うことは出来ないので、シェーダーの作成に失敗しているというわけです
なので、
821: IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004
↑
これの原因が分かれば、『内臓グラフィックス→グラボの場合』は変更ができるようになると思います
原因の突き止めに繋がるかもしれないログ出力を増やしたバージョンをアップしましたので、
お手数で申し訳ありませんがこちらのバージョンを使用した上で『内臓グラフィックス→グラボの場合』を
実行した際のログを貼り付けて頂けないでしょうか? m(_ _;m
https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用
https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
 |
Re: 使用するGPUを切り替えたい ( No.3 ) |
- 名前:焼き鯖 日時:2022/08/06 22:46
> もし自作のシェーダーでなければ正常に動作するのでしたら、単純に Intel(R) UHD Graphics では
> 焼き鯖さんが組まれたシェーダーを動作させるには性能(機能)が足りないのかもしれません
DXライブラリのデフォルトのものではうまく行くので、やはり性能が足りてないみたいですね…
性能が足りてない場合、FPSが落ちるだけかなと思っていたのですがこういうこともあり得るのですね。
> こちらのリストで『Output Device No....』という記述が無いアダプタを指定すると
> 『出力先( Output Device )が無い』としてエラーになります
なるほど…これは出力先自体をプログラム上でほかのアダプタに割り当てることは難しいのでしょうか?
例えば、デスクトップPCのようにそれぞれの出力先のコネクタに物理的に接続されていない場合はできないというのはなんとなくわかるのですが、
ノートPCのような物理的にモニター自体がつながっている場合は出力先の割り当てを変えることができそうな気がするのですが…
> 原因の突き止めに繋がるかもしれないログ出力を増やしたバージョンをアップしましたので、
> お手数で申し訳ありませんがこちらのバージョンを使用した上で『内臓グラフィックス→グラボの場合』を
> 実行した際のログを貼り付けて頂けないでしょうか? m(_ _;m
了解いたしました。以下にログを添付しますのでよろしくお願いいたします。
それからログを見てて一つ思ったのですが、このDISPLAY4に関しては解像度が1920x1080のはずなのですが、なぜ4320x2430扱いなのでしょうか?
---------------------------------------------------------------------------
0:dxgi.dll の読み込み.... 成功
2:API CreateDXGIFactory2 のアドレスを取得します.... 成功
3:IDXGIFactory2 を作成します.... 成功
16:API CreateDXGIFactory6 のアドレスを取得します.... 成功
16:IDXGIAdapter を列挙
16: Adapter No.0 Desc:Intel(R) UHD Graphics
17: Output Device No.0 Name:\\.\DISPLAY1 ( 0, 0 )-( 3840, 2160 )
17: Adapter No.1 Desc:NVIDIA GeForce RTX 3080 Laptop GPU
18: Output Device No.0 Name:\\.\DISPLAY4 ( 1814, -2430 )-( 6134, 0 )
18: Adapter No.2 Desc:Microsoft Basic Render Driver
18:dxgi.dll の解放 1
20:ディスプレイ情報のセットアップ開始
20: モニターの数:2 ディスプレイデバイスの数:7
21: No.0 モニター名:\\.\DISPLAY1 3840x2160 32bit 60Hz
21: No.1 モニター名:\\.\DISPLAY4 4320x2430 32bit 60Hz
44:ディスプレイ情報のセットアップ完了
45:ChangeWindowMode実行
45:ウインドウモードフラグが立てられました
48:DXライブラリの初期化処理開始
49: システムの情報を出力します
49: DXライブラリ Ver3.23c
50: 論理プロセッサの数 : 16
50: OS Windows10 ( Build 19044 )
151: 現時点のCPU動作速度:大体3.11GHz
151: MMX命令を使用します
151: SSE命令が使用可能です
152: SSE2命令が使用可能です
152: CPUベンダ:GenuineIntel
154: CPU名:Intel(R) Core(TM) i9-10980HK CPU @ 2.40GHz
154: COMの初期化... 成功
186: 非同期読み込み処理の初期化...成功
187: ファイルアクセス処理の初期化...成功
188: メモリ総量:32585.63MB 空きメモリ領域:17207.98MB
188: タイマーの精度を検査します
188: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
188: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz
189: ソフトの二重起動検査... 二重起動はされていませんでした
195: ウインドウクラスを登録します... 登録に成功しました
196: ウインドウモード起動用のウインドウを作成します
196: ウインドウ矩形 ( 1786, -2534 )-( 6134, -25 )
204: ウインドウの作成に成功しました
204: ウインドウを表示します
247: IMEを無効にしました
249: ウインドウスタイルをウインドウモード用に変更します... 完了
277: DirectInput関係初期化処理
277: XInput DLL の読み込み中... 成功
282: DirectInput8 の取得を試みます...成功
301: 引き続き初期化処理... 初期化成功
309: ジョイパッドの初期化...
309: XInput 対応コントローラーのチェックを開始します
310: XInput 対応コントローラー No.0 をチェック
310: XInput 対応コントローラー No.0 の接続は確認できませんでした
310: XInput 対応コントローラー No.1 をチェック
311: XInput 対応コントローラー No.1 の接続は確認できませんでした
311: XInput 対応コントローラー No.2 をチェック
311: XInput 対応コントローラー No.2 の接続は確認できませんでした
312: XInput 対応コントローラー No.3 をチェック
312: XInput 対応コントローラー No.3 の接続は確認できませんでした
312: XInput 対応コントローラーのチェック完了
312: DirectInput 対応ジョイパッドの列挙を開始します
344: DirectInput 対応ジョイパッドの列挙終了
345: ジョイパッドの初期化は正常に終了しました
345: マウスデバイスの初期化... 初期化成功
346: キーボードデバイスの初期化... 初期化成功
350: DirectInput 関連の初期化は正常に終了しました
355: XAudio2 の初期化を行います
358: XAudio2_8.dll を使用します
362: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8
646: XAudio2 の初期化は正常に終了しました
648: d3d11.dll の読み込み.... 成功
651: dxgi.dll の読み込み.... 成功
651: API CreateDXGIFactory2 のアドレスを取得します.... 成功
651: IDXGIFactory2 を作成します.... 成功
658: API CreateDXGIFactory6 のアドレスを取得します.... 成功
658: API D3D11CreateDevice のアドレスを取得します.... 成功
658: IDXGIAdapter を取得します.... 成功
659: Direct3D 11 FeatureLevel 11_0 以上を対象とします
659: ID3D11Device オブジェクトを取得します.... 成功
751: IDXGIDevice1 を取得します.... 成功
751: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
752: [ウインドウモード 1920x1080 ( 0, 0 )-( 4320, 2430 )]
752: IDXGISwapChain2 を作成します.... 成功
758: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000
759: IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004
770: d3d11.dll の解放 1
771: dxgi.dll の解放 1
771: Direct3D11 のオブジェクト数を出力
771: Direct3D11 のオブジェクト合計数 : 0
773: DirectDraw オブジェクトの取得を行います.... 成功
776: 引き続き初期化処理... 初期化に成功しました
795: IDirect3D9Ex オブジェクトを取得します.... 成功
825: IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します
1162: 成功
1163: Driver:igdumdim64.dll Description:Intel(R) UHD Graphics
1163: 画面のフォーマットは D3DFMT_X8R8G8B8 です
1163: 16bit Zバッファフォーマットは D3DFMT_D16 です
1164: 24bit Zバッファフォーマットは D3DFMT_D24X8 です
1164: 32bit Zバッファフォーマットは D3DFMT_D24X8 です
1164: 16bit カラーフォーマットは D3DFMT_R5G6B5 です
1165: 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
1165: アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です
1165: アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
1165: アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です
1165: アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
1166: DXT1テクスチャフォーマットはD3DFMT_DXT1 です
1166: DXT2テクスチャフォーマットはD3DFMT_DXT2 です
1166: DXT3テクスチャフォーマットはD3DFMT_DXT3 です
1166: DXT4テクスチャフォーマットはD3DFMT_DXT4 です
1167: DXT5テクスチャフォーマットはD3DFMT_DXT5 です
1167: ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
1167: ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
1168: ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
1168: 1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です
1168: 1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
1168: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です
1169: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です
1169: 2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
1169: 2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
1169: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です
1169: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です
1170: 描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です
1170: 描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です
1170: 描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です
1170: 描画用 ABGR 整数 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です
1171: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です
1171: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です
1171: 描画用1チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_L8 です
1171: 描画用1チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_L16 です
1172: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_R16F です
1172: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_R32F です
1172: 描画用2チャンネル整数 8 ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です
1172: 描画用2チャンネル整数 16 ビット型カラーフォーマットは D3DFMT_G16R16 です
1172: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは D3DFMT_G16R16F です
1173: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは D3DFMT_G32R32F です
1173: A8R8G8B8 カラーフォーマットは頂点テクスチャフェッチに使用できます
1173: X8R8G8B8 カラーフォーマットは頂点テクスチャフェッチに使用できません
1173: R5G6B5 カラーフォーマットは頂点テクスチャフェッチに使用できません
1173: A1R5G5B5 カラーフォーマットは頂点テクスチャフェッチに使用できません
1174: X1R5G5B5 カラーフォーマットは頂点テクスチャフェッチに使用できません
1174: 一度に描画できるプリミティブの最大数:16777215
1174: 対応している最大頂点インデックス:16777215
1174: 同時にレンダリングできるバッファの数:4
1175: 最大テクスチャサイズ 幅:16384 高さ:16384
1175: テクスチャステージテンポラリレジスタ:使用可
1175: 減算合成のハードウェア対応:ネイティブ
1175: ハードウェア頂点シェーダーバージョンコード:300
1176: エミュレーション頂点シェーダーバージョンコード:エミュレーション無し
1176: ピクセルシェーダーバージョンコード:300
1186: バックバッファロック転送の時間:92000nsec 一時的な描画可能バッファを使用した転送の時間:439600nsec
1186: バックバッファロックを使用します
1187: Zバッファを作成します.... 成功
1191: プログラマブルシェーダーを使用します
1219: フォントの初期化を行います
1222: フォントの初期化は正常に終了しました
1325: 文字コードバッファの初期化を行います... 完了しました
1346:DXライブラリの初期化処理終了
1523:頂点シェーダーの作成に失敗しました
1524:頂点シェーダーの作成に失敗しました
1525:頂点シェーダーの作成に失敗しました
1525:頂点シェーダーの作成に失敗しました
1526:頂点シェーダーの作成に失敗しました
1527:頂点シェーダーの作成に失敗しました
1527:頂点シェーダーの作成に失敗しました
1528:頂点シェーダーの作成に失敗しました
1529:頂点シェーダーの作成に失敗しました
1529:頂点シェーダーの作成に失敗しました
1530:頂点シェーダーの作成に失敗しました
1530:頂点シェーダーの作成に失敗しました
1531:ピクセルシェーダーの作成に失敗しました
1532:ピクセルシェーダーの作成に失敗しました
1532:ピクセルシェーダーの作成に失敗しました
1533:ピクセルシェーダーの作成に失敗しました
1534:ピクセルシェーダーの作成に失敗しました
1534:ピクセルシェーダーの作成に失敗しました
1535:ピクセルシェーダーの作成に失敗しました
---------------------------------------------------------------------------
 |
Re: 使用するGPUを切り替えたい ( No.4 ) |
- 名前:管理人 日時:2022/08/07 02:58
> 性能が足りてない場合、FPSが落ちるだけかなと思っていたのですがこういうこともあり得るのですね。
昔に比べたらGPU間の差異は無くなってきましたが、Intel のGPUだけはまだ GeForce や Radeon に比べると
同じ挙動をしてくれないところがある印象です…( 初歩的な機能だけを使えば問題なく動作してくれるのですが… )
> なるほど…これは出力先自体をプログラム上でほかのアダプタに割り当てることは難しいのでしょうか?
それが出来れば話は早いのですが、少し調べた限りではプログラム側から出力先を設定することはできなさそうです
( 低消費電力低性能のGPUが使用されうように設定しているにも関わらずプログラムが勝手に性能の良いGPUを使って
バッテリーの減りが加速されるとユーザーからクレームが来ることになるかもしれないので、プログラム側では
出力先を変更することは出来ないようになっているのかもしれません )
> ノートPCのような物理的にモニター自体がつながっている場合は出力先の割り当てを変えることができそうな気がするのですが…
物理的には繋がっていても、ドライバの処理によってソフトウェア視点では『繋がっていない』ことにしているような印象です
> 了解いたしました。以下にログを添付しますのでよろしくお願いいたします。
ログの添付ありがとうございます
> それからログを見てて一つ思ったのですが、このDISPLAY4に関しては解像度が1920x1080のはずなのですが、なぜ4320x2430扱いなのでしょうか?
すみません、Direct3D 11 の API から取得できた値を出力しているだけなので何故なのかは不明です
ログを拝見していてこちらの部分で分かったのですが
752: [ウインドウモード 1920x1080 ( 0, 0 )-( 4320, 2430 )]
SetWindowPosition を使用してウィンドウの位置を変更されていますでしょうか?
今回私が少し調べた限りでは、使用される GPU はデスクトップ上のウィンドウの位置で決まるようですので、
GeForce RTX 3080 Laptop GPU を使用する場合は、こちらのログを拝見する限りでは
16: Adapter No.0 Desc:Intel(R) UHD Graphics
17: Output Device No.0 Name:\\.\DISPLAY1 ( 0, 0 )-( 3840, 2160 )
17: Adapter No.1 Desc:NVIDIA GeForce RTX 3080 Laptop GPU
18: Output Device No.0 Name:\\.\DISPLAY4 ( 1814, -2430 )-( 6134, 0 )
ウィンドウがデスクトップ上の ( 1814, -2430 )-( 6134, 0 ) の範囲内にある必要があります
ウィンドウが ( 0, 0 )-( 4320, 2430 ) にありますとアダプタとして GeForce RTX 3080 Laptop GPU が指定されていても
ウィンドウが存在するのは Intel(R) UHD Graphics の領域になりますので
759: IDXGIOutput を取得します.... 失敗 エラーコード:0x887a0004
↑
こちらの部分で失敗してしまうようです
さしあたってウィンドウの位置に応じたアダプタ選択をされるように処理を変更したのと、ログ出力を
もう少し増やしたバージョンをアップしましたので、何度も申し訳ありませんがよろしければ
こちらに差し替えた上で、再度実行時のログを貼り付けていただけないでしょうか? m(_ _)m
https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用
https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース
(中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
 |
Re: 使用するGPUを切り替えたい ( No.5 ) |
- 名前:焼き鯖 日時:2022/08/07 05:54
> それが出来れば話は早いのですが、少し調べた限りではプログラム側から出力先を設定することはできなさそうです
> ( 低消費電力低性能のGPUが使用されうように設定しているにも関わらずプログラムが勝手に性能の良いGPUを使って
> バッテリーの減りが加速されるとユーザーからクレームが来ることになるかもしれないので、プログラム側では
> 出力先を変更することは出来ないようになっているのかもしれません )
> 物理的には繋がっていても、ドライバの処理によってソフトウェア視点では『繋がっていない』ことにしているような印象です
なるほど、なかなか思うようにはいかないものですね…
> SetWindowPosition を使用してウィンドウの位置を変更されていますでしょうか?
いえ、使っていません。ただ、ウィンドウ自体がそもそも起動時にWindowsの表示スケールの影響を受けて両画面にまたがってはみ出ているような状態なので、もしかしたらそれが影響しているかもです。
> さしあたってウィンドウの位置に応じたアダプタ選択をされるように処理を変更したのと、ログ出力を
> もう少し増やしたバージョンをアップしましたので、何度も申し訳ありませんがよろしければ
> こちらに差し替えた上で、再度実行時のログを貼り付けていただけないでしょうか? m(_ _)m
了解いたしました。独自でDXGIを叩いてアダプタを列挙したときの順番と異なるようになったのが少し気になりましたが、失敗はしなくなりました。
--------------------------------------------------------------
0:dxgi.dll の読み込み.... 成功
2:API CreateDXGIFactory2 のアドレスを取得します.... 成功
3:IDXGIFactory2 を作成します.... 成功
14:API CreateDXGIFactory6 のアドレスを取得します.... 成功
15:IDXGIAdapter を列挙
15: Adapter No.0 Desc:NVIDIA GeForce RTX 3080 Laptop GPU
15: Output Device No.0 Name:\\.\DISPLAY4 ( 1814, -2430 )-( 6134, 0 )
16: Adapter No.1 Desc:Intel(R) UHD Graphics
16: Output Device No.0 Name:\\.\DISPLAY1 ( 0, 0 )-( 3840, 2160 )
16: Adapter No.2 Desc:Microsoft Basic Render Driver
16:dxgi.dll の解放 1
18:ディスプレイ情報のセットアップ開始
19: モニターの数:2 ディスプレイデバイスの数:7
19: No.0 モニター名:\\.\DISPLAY1 3840x2160 32bit 60Hz 216x216dpi
20: No.1 モニター名:\\.\DISPLAY4 4320x2430 32bit 60Hz 216x216dpi
45:ディスプレイ情報のセットアップ完了
45:ChangeWindowMode実行
46:ウインドウモードフラグが立てられました
48:DXライブラリの初期化処理開始
48: システムの情報を出力します
49: DXライブラリ Ver3.23c
49: 論理プロセッサの数 : 16
49: OS Windows10 ( Build 19044 )
150: 現時点のCPU動作速度:大体3.08GHz
150: MMX命令を使用します
150: SSE命令が使用可能です
150: SSE2命令が使用可能です
151: CPUベンダ:GenuineIntel
152: CPU名:Intel(R) Core(TM) i9-10980HK CPU @ 2.40GHz
152: COMの初期化... 成功
191: 非同期読み込み処理の初期化...成功
192: ファイルアクセス処理の初期化...成功
193: メモリ総量:32585.63MB 空きメモリ領域:14237.41MB
193: タイマーの精度を検査します
194: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
194: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz
194: ソフトの二重起動検査... 二重起動はされていませんでした
202: ウインドウクラスを登録します... 登録に成功しました
203: ウインドウモード起動用のウインドウを作成します
203: ウインドウ矩形 ( -268, -239 )-( 4080, 2270 )
209: ウインドウの作成に成功しました
209: ウインドウを表示します
262: IMEを無効にしました
267: ウインドウスタイルをウインドウモード用に変更します... 完了
317: DirectInput関係初期化処理
317: XInput DLL の読み込み中... 成功
322: DirectInput8 の取得を試みます...成功
342: 引き続き初期化処理... 初期化成功
360: ジョイパッドの初期化...
360: XInput 対応コントローラーのチェックを開始します
361: XInput 対応コントローラー No.0 をチェック
361: XInput 対応コントローラー No.0 の接続は確認できませんでした
362: XInput 対応コントローラー No.1 をチェック
362: XInput 対応コントローラー No.1 の接続は確認できませんでした
363: XInput 対応コントローラー No.2 をチェック
363: XInput 対応コントローラー No.2 の接続は確認できませんでした
363: XInput 対応コントローラー No.3 をチェック
364: XInput 対応コントローラー No.3 の接続は確認できませんでした
364: XInput 対応コントローラーのチェック完了
364: DirectInput 対応ジョイパッドの列挙を開始します
404: DirectInput 対応ジョイパッドの列挙終了
404: ジョイパッドの初期化は正常に終了しました
405: マウスデバイスの初期化... 初期化成功
406: キーボードデバイスの初期化... 初期化成功
417: DirectInput 関連の初期化は正常に終了しました
424: XAudio2 の初期化を行います
426: XAudio2_8.dll を使用します
430: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8
1540: XAudio2 の初期化は正常に終了しました
1541: d3d11.dll の読み込み.... 成功
1544: dxgi.dll の読み込み.... 成功
1544: API CreateDXGIFactory2 のアドレスを取得します.... 成功
1545: IDXGIFactory2 を作成します.... 成功
1551: API CreateDXGIFactory6 のアドレスを取得します.... 成功
1552: API D3D11CreateDevice のアドレスを取得します.... 成功
1552: IDXGIAdapter を取得します.... 成功
1552: Direct3D 11 FeatureLevel 11_0 以上を対象とします
1553: ID3D11Device オブジェクトを取得します.... 成功
1587: IDXGIDevice1 を取得します.... 成功
1588: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
1588: [ウインドウモード 1920x1080 ( 0, 0 )-( 4320, 2430 )]
1588: IDXGISwapChain2 を作成します.... 成功
1589: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000
1589: IDXGIOutput を取得します.... 成功
1589: Graphics Device:Intel(R) UHD Graphics
1590: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
1590: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です
1590: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です
1590: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です
1591: 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
1591: 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
1591: アルファ付き 16bit カラーフォーマットは DXGI_FORMAT_B4G4R4A4_UNORM です
1591: アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
1591: アルファテスト用 16bit カラーフォーマットは DXGI_FORMAT_B5G5R5A1_UNORM です
1592: アルファテスト用 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
1592: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です
1592: DXT2テクスチャフォーマットは使えません
1592: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です
1592: DXT4テクスチャフォーマットは使えません
1593: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です
1593: BC7_UNORM テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM です
1593: BC7_UNORM_SRGB テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM_SRGB です
1593: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
1593: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
1594: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
1594: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
1594: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
1594: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
1594: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
1595: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
1595: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
1595: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
1595: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
1596: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です
1596: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
1596: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
1596: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
1597: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
1597: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
1597: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
1597: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
1598: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
1598: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
1598: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
1598: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
1598: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
1599: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
1599: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1
1599: 同時にレンダリングできるバッファの数:8
1599: 最大テクスチャサイズ 幅:16384 高さ:16384
1599: 標準描画用の頂点バッファの作成.... 成功
1600: シェーダーコード関係の初期化.... 成功
1616: 各種シェーダー用定数バッファの作成.... 成功
1617: 各種 ID3D11InputLayout の作成.... 成功
1655: 画像の単純転送処理の初期化... 成功
1656: 深度バッファを作成します.... 成功
1658: フォントの初期化を行います
1660: フォントの初期化は正常に終了しました
1792: 文字コードバッファの初期化を行います... 完了しました
1827:DXライブラリの初期化処理終了
10536:フォントの初期化を行います
10536:フォントの初期化は正常に終了しました
10601:d3d11.dll の解放 1
10601:dxgi.dll の解放 1
10602:Direct3D11 のオブジェクト数を出力
10602:Direct3D11 のオブジェクト合計数 : 0
10605:DirectInput 関連の終了処理... 完了
10606:サウンド関連の終了処理... 完了
10635:ウィンドウ関連の終了処理... ウインドウを閉じようとしています
10641:ウインドウが破棄されようとしています
10642:ソフトを終了する準備が整いました
10715:完了
10726:COMを終了... 完了
10726:
10726:Alloc memory dump
10727: Total size:0(0.000kb) Alloc num:0
10727:
--------------------------------------------------------------
 |
Re: 使用するGPUを切り替えたい ( No.6 ) |
- 名前:管理人 日時:2022/08/08 00:39
ログの貼付けありがとうございます m(_ _)m
> いえ、使っていません。ただ、ウィンドウ自体がそもそも起動時にWindowsの表示スケールの影響を受けて両画面にまたがってはみ出ているような状態なので、もしかしたらそれが影響しているかもです。
なるほど…確かにそうかもしれませんね (・・;
今回こちらのログで設定されているDPIの値を出力するようにしたのですが
19: モニターの数:2 ディスプレイデバイスの数:7
19: No.0 モニター名:\\.\DISPLAY1 3840x2160 32bit 60Hz 216x216dpi
20: No.1 モニター名:\\.\DISPLAY4 4320x2430 32bit 60Hz 216x216dpi
216dpi は標準の 96dpi の 225% のスケールとなります
Windows10 の設定画面の『システム』→『ディスプレイ』の『テキスト、アプリ、その他の項目のサイズを変更する』の
設定が『225%』になっていますでしょうか?
DISPLAY4 について解像度は 1920x1080 とのことですが、こちらのログを見る限りでは 4320x2430 の物理解像度があるように見えます
もし物理解像度は間違いなく 1920x1080 とのことですと、何かしらの特殊な設定やドライバやモニター自身の機能によってソフトウェア的には
物理解像度が 4320x2430 であるかのようにみせかけられているということになりそうです
因みに DxLib_Init の前に
SetWindowSizeExtendRate( 1.0 );
という記述を増やすことでDPI設定に関わらずウィンドウが等倍表示されるようになりますので、Windowsの表示スケールの影響を受けて
隣の画面にまたがることはなくなると思います( 表示は小さくなりますが… )
よろしければお試しください m(_ _)m
> 独自でDXGIを叩いてアダプタを列挙したときの順番と異なるようになったのが少し気になりましたが、失敗はしなくなりました。
エラーが発生しなくなったとのことでなによりです
すみません、一点お伝えするのを失念していました
前回のバージョンではアダプタ列挙に使用するAPIを EnumAdapterByGpuPreference というものに変更していまして、
性能の高い順に列挙されるようになっています
なので、SetUseDirect3D11AdapterIndex( 0 ); を実行しておけば常に一番性能の良いアダプタが選択されることになります
( ただ、そのアダプタが担当している出力先にウィンドウが表示されるため、例えば焼き鯖さんPCでintelの内蔵グラフィックスを優先している
状態で SetUseDirect3D11AdapterIndex( 0 ); を実行した場合は DISPLAY4 のモニタ上にウィンドウが出現することになってしまいますが… )
 |
Re: 使用するGPUを切り替えたい ( No.7 ) |
- 名前:焼き鯖(解決済み) 日時:2022/08/08 06:51
> Windows10 の設定画面の『システム』→『ディスプレイ』の『テキスト、アプリ、その他の項目のサイズを変更する』の
> 設定が『225%』になっていますでしょうか?
そうですね、225%になってます。(なお、DISPLAY4の方は100%です。)
> DISPLAY4 について解像度は 1920x1080 とのことですが、こちらのログを見る限りでは 4320x2430 の物理解像度があるように見えます
> もし物理解像度は間違いなく 1920x1080 とのことですと、何かしらの特殊な設定やドライバやモニター自身の機能によってソフトウェア的には
> 物理解像度が 4320x2430 であるかのようにみせかけられているということになりそうです
なるほど…試しに表示スケールをどちらも100%と150%に落としてみたのですが、100%の場合ログの表示が以下のように正常な状態になったので確かにそうみたいですね。
(高dpiに合わせるためにモニタの解像度を疑似的に上げている?)
100%の場合
--------------------------------------------------------------------
No.0 モニター名:\\.\DISPLAY1 3840x2160 32bit 60Hz 96x96dpi
No.1 モニター名:\\.\DISPLAY4 1920x1080 32bit 60Hz 96x96dpi
--------------------------------------------------------------------
150%の場合
--------------------------------------------------------------------
No.0 モニター名:\\.\DISPLAY1 3840x2160 32bit 60Hz 144x144dpi
No.1 モニター名:\\.\DISPLAY4 2880x1620 32bit 60Hz 144x144dpi
--------------------------------------------------------------------
> SetWindowSizeExtendRate( 1.0 );
> という記述を増やすことでDPI設定に関わらずウィンドウが等倍表示されるようになりますので、Windowsの表示スケールの影響を受けて
> 隣の画面にまたがることはなくなると思います( 表示は小さくなりますが… )
試したところ、確かに隣の画面にまたがって表示されることはなくなり、同時にしっかりとグラボを使用したものを使うようになりました。ありがとうございます!
> 前回のバージョンではアダプタ列挙に使用するAPIを EnumAdapterByGpuPreference というものに変更していまして、
> 性能の高い順に列挙されるようになっています
> なので、SetUseDirect3D11AdapterIndex( 0 ); を実行しておけば常に一番性能の良いアダプタが選択されることになります
> ( ただ、そのアダプタが担当している出力先にウィンドウが表示されるため、例えば焼き鯖さんPCでintelの内蔵グラフィックスを優先している
> 状態で SetUseDirect3D11AdapterIndex( 0 ); を実行した場合は DISPLAY4 のモニタ上にウィンドウが出現することになってしまいますが… )
なるほど、そうだったのですね。APIでの列挙なら自分が仮で作ったものより精度が高いので助かります!これによるDISPLAY4でのウィンドウ出現も問題ありません。
ひとまず、出力先自体を変えることは叶わなかったものの、目下の問題はこれで解決いたしました。
お忙しい中、対応していただき本当にありがとうございました!
 |
Re: 使用するGPUを切り替えたい ( No.8 ) |
- 名前:焼き鯖 日時:2022/08/08 21:16
すみません、一応関連する(?)のでここで追加で質問です。
このバージョンでSetOutApplicationLogValidFlag関数でfalseに設定しても、アダプタに関する出力だけは必ず行われてしまうのですが、これは仕様でしょうか?
|
Re: 使用するGPUを切り替えたい ( No.9 ) |
- 名前:管理人 日時:2022/08/09 00:58
> (高dpiに合わせるためにモニタの解像度を疑似的に上げている?)
手元の環境では表示スケールをどのように変更しても片方のモニタの解像度が変化するということはありませんでしたので、
お使いのPCには何か特殊な仕様があるのかもしれないですね… (・・;
> 試したところ、確かに隣の画面にまたがって表示されることはなくなり、同時にしっかりとグラボを使用したものを使うようになりました。ありがとうございます!
上手く動作したようで何よりです! (^ ^
> このバージョンでSetOutApplicationLogValidFlag関数でfalseに設定しても、アダプタに関する出力だけは必ず行われてしまうのですが、これは仕様でしょうか?
いえ、仕様ではありません
SetUseDirect3D11AdapterIndex( 0 ); の呼び出しが SetOutApplicationLogValidFlag( false ); の
呼び出しよりも前に無いでしょうか?( SetUseDirect3D11AdapterIndex( 0 ); を実行した時点で出力が行なわれてしまいますので… )
SetOutApplicationLogValidFlag( false ); の呼び出しを SetUseDirect3D11AdapterIndex( 0 ); の
呼び出しよりも前の行に配置して頂ければ何も出力されないと思いますので、よろしければお試しください m(_ _)m
|
Re: 使用するGPUを切り替えたい ( No.10 ) |
- 名前:焼き鯖(解決済み) 日時:2022/08/09 17:14
> いえ、仕様ではありません
> SetUseDirect3D11AdapterIndex( 0 ); の呼び出しが SetOutApplicationLogValidFlag( false ); の
> 呼び出しよりも前に無いでしょうか?( SetUseDirect3D11AdapterIndex( 0 ); を実行した時点で出力が行なわれてしまいますので… )
> SetOutApplicationLogValidFlag( false ); の呼び出しを SetUseDirect3D11AdapterIndex( 0 ); の
> 呼び出しよりも前の行に配置して頂ければ何も出力されないと思いますので、よろしければお試しください m(_ _)m
なるほど、そういう事でしたか。何から何までありがとうございました!
|