トップページ > 記事閲覧
使用するGPUを切り替えたい
名前:焼き鯖 日時: 2022/08/05 12:16

いつもDXライブラリにはお世話になっております。 現在、シェーダーを使用した3Dゲームを作っているのですが、いつからか他のPCにてゲームを起動するとスキニングを施したモデルの描画(自作シェーダーを使用)がバグるようになりました。 この現象は発生するPCとしないPCがあり、検証してみるとどうやら描画にintelの内臓グラフィックスの使用していて、かつGPUの使用率が100%に達するものに起こるようでした。 内臓グラフィックスだけしか存在しないのならしょうがないのですが、これが発端となって、もしゲーミングノートPCのような内臓グラフィックスとグラボがある場合にグラボ(正確にはより性能の良いGPU)を優先的に使用するようにしたいと思い、考えたのが題のような仕様です。 一応、NVIDIAのコントロールパネルやOSの設定からGPUの優先使用設定は変えられるのですが、配布を考えたときにプレイヤーにその設定はできればあまりさせたくないと考えています。 こちらで試したこととしては、まずDXGIを叩いてアダプタを列挙し、切り替えたいアダプタのインデックスをSetUseDirect3D11AdapterIndex関数を使って設定するというものです。 しかし、ログファイルを見ながら切り替え先のインデックス(1番等ログファイルにある他のアダプタ)を指定すると関数の返り値で-1が返ってきて変更もうまくいっていませんでした。(グラボ→内臓グラフィックスの場合) あるいは返り値が0でうまくいってもシェーダー系でエラーが出るなどしていました。(内臓グラフィックス→グラボの場合) 念のためにテスト用の最新版も試しましたが、結果は同じでした。 そこでお聞きしたいのですが、まず最初の使用率100%で描画がおかしくなる現象は仕様でしょうか? そして、使用するGPUを切り替える方法はありますでしょうか? 以下にそれぞれのエラーログを添付しておきます。 描画がおかしくなる場合 --------------------------------------------------- 0:ChangeWindowMode実行 0:ウインドウモードフラグが立てられました 4:DXライブラリの初期化処理開始 5: システムの情報を出力します 5: DXライブラリ Ver3.23a 5: 論理プロセッサの数 : 12 5: OS Windows10 ( Build 19044 ) 106: 現時点のCPU動作速度:大体2.49GHz 106: MMX命令を使用します 106: SSE命令が使用可能です 107: SSE2命令が使用可能です 107: CPUベンダ:GenuineIntel 109: CPU名:Intel(R) Core(TM) i5-10500H CPU @ 2.50GHz 109: COMの初期化... 成功 114: 非同期読み込み処理の初期化...成功 114: ファイルアクセス処理の初期化...成功 115: メモリ総量:12109.80MB 空きメモリ領域:2985.09MB 115: タイマーの精度を検査します 115: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 116: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz 116: ソフトの二重起動検査... 二重起動はされていませんでした 125: ウインドウクラスを登録します... 登録に成功しました 126: ウインドウモード起動用のウインドウを作成します 126: ディスプレイ情報のセットアップ開始 127: モニターの数:1 ディスプレイデバイスの数:3 128: No.0 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz 136: ディスプレイ情報のセットアップ完了 145: ウインドウの作成に成功しました 145: ウインドウを表示します 213: IMEを無効にしました 217: ウインドウスタイルをウインドウモード用に変更します... 完了 259: DirectInput関係初期化処理 259: XInput DLL の読み込み中... 成功 266: DirectInput8 の取得を試みます...成功 285: 引き続き初期化処理... 初期化成功 292: ジョイパッドの初期化... 293: XInput 対応コントローラーのチェックを開始します 293: XInput 対応コントローラー No.0 をチェック 294: XInput 対応コントローラー No.0 の接続は確認できませんでした 294: XInput 対応コントローラー No.1 をチェック 295: XInput 対応コントローラー No.1 の接続は確認できませんでした 295: XInput 対応コントローラー No.2 をチェック 295: XInput 対応コントローラー No.2 の接続は確認できませんでした 296: XInput 対応コントローラー No.3 をチェック 296: XInput 対応コントローラー No.3 の接続は確認できませんでした 296: XInput 対応コントローラーのチェック完了 297: DirectInput 対応ジョイパッドの列挙を開始します 330: DirectInput 対応ジョイパッドの列挙終了 330: ジョイパッドの初期化は正常に終了しました 330: マウスデバイスの初期化... 初期化成功 332: キーボードデバイスの初期化... 初期化成功 337: DirectInput 関連の初期化は正常に終了しました 345: XAudio2 の初期化を行います 349: XAudio2_8.dll を使用します 353: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8 1193: XAudio2 の初期化は正常に終了しました 1195: d3d11.dll の読み込み.... 成功 1198: dxgi.dll の読み込み.... 成功 1199: API CreateDXGIFactory2 のアドレスを取得します.... 成功 1199: IDXGIFactory2 を作成します.... 成功 1215: IDXGIAdapter を列挙 1215: Adapter No.0 Desc:Intel(R) UHD Graphics 1215: Output Device No.0 Name:\\.\DISPLAY1 1215: Adapter No.1 Desc:NVIDIA GeForce RTX 3050 Ti Laptop GPU 1216: Adapter No.2 Desc:Microsoft Basic Render Driver 1216: API D3D11CreateDevice のアドレスを取得します.... 成功 1216: IDXGIAdapter を取得します.... 成功 1218: Direct3D 11 FeatureLevel 11_0 以上を対象とします 1218: ID3D11Device オブジェクトを取得します.... 成功 1324: IDXGIDevice1 を取得します.... 成功 1325: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 1325: [ウインドウモード 1920x1080] 1325: IDXGISwapChain2 を作成します.... 成功 1326: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000 1326: IDXGIOutput を取得します.... 成功 1327: Graphics Device:Intel(R) UHD Graphics 1327: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 1327: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 1327: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 1327: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 1328: 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 1328: 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 1328: アルファ付き 16bit カラーフォーマットは DXGI_FORMAT_B4G4R4A4_UNORM です 1329: アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 1329: アルファテスト用 16bit カラーフォーマットは DXGI_FORMAT_B5G5R5A1_UNORM です 1329: アルファテスト用 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 1329: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 1330: DXT2テクスチャフォーマットは使えません 1330: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 1330: DXT4テクスチャフォーマットは使えません 1330: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 1330: BC7_UNORM テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM です 1331: BC7_UNORM_SRGB テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM_SRGB です 1331: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 1331: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 1331: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 1331: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 1331: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 1332: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 1332: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 1332: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 1332: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 1333: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 1333: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 1333: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 1333: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 1333: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 1334: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 1334: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 1334: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 1334: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 1334: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 1335: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 1335: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 1335: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 1335: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 1335: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 1336: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 1336: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1 1336: 同時にレンダリングできるバッファの数:8 1336: 最大テクスチャサイズ 幅:16384 高さ:16384 1336: 標準描画用の頂点バッファの作成.... 成功 1337: シェーダーコード関係の初期化.... 成功 1353: 各種シェーダー用定数バッファの作成.... 成功 1353: 各種 ID3D11InputLayout の作成.... 成功 1390: 画像の単純転送処理の初期化... 成功 1391: 深度バッファを作成します.... 成功 1395: フォントの初期化を行います 1398: フォントの初期化は正常に終了しました 1476: 文字コードバッファの初期化を行います... 完了しました 1496:DXライブラリの初期化処理終了 17931:フォントの初期化を行います 17931:フォントの初期化は正常に終了しました 17997:d3d11.dll の解放 1 17998:dxgi.dll の解放 1 17999:Direct3D11 のオブジェクト数を出力 17999:Direct3D11 のオブジェクト合計数 : 0 18003:DirectInput 関連の終了処理... 完了 18004:サウンド関連の終了処理... 完了 18063:ウィンドウ関連の終了処理... ウインドウを閉じようとしています 18070:ウインドウが破棄されようとしています 18070:ソフトを終了する準備が整いました 18145:完了 18166:COMを終了... 完了 18167: 18167:Alloc memory dump 18167: Total size:0(0.000kb) Alloc num:0 18167: ---------------------------------------------------
メンテ

Page: 1 |

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
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存