トップページ > 過去ログ > 記事閲覧
Vistaを使用すると重い、fpsが低い
名前:レタス 日時: 2009/07/04 17:21

OS:Windows Vista 32bit CPU:intel Core2Quad Q6600 (2.4GHz*4) メモリ:2G VGA:Geforce 9600GT 開発環境:VC++2008EE でDXライブラリを使わせていただいているのですが、 解像度を800*600の時は60fpsなのに1024*768に上げたとたんfpsが半分の30fps近くに一気に落ちてしまいました。 同じ物をノートPC(pentiumM メモリ1G オンボードVGA)のもので同じ設定で実行すると60fpsでます。 何も表示しない場合でもそんな状態で、VGAのドライバの更新やVGAのアンチエイリアシングの設定等を片っ端からoffにしても一向に改善せず… これだけの情報で他の方が何が原因なのか分かるわけがないとは私も分かってはいるのですが、こんな状態では何の情報を提示したら良いかすら分かりません。 高負荷な3Dゲームも問題なく動くのに。 ですので「もしかしたらこれが原因なのでは?」というものがありましたら教えてください。

Page: 1 |

Re: fpsと解像度 ( No.1 )
名前:レタス 日時:2009/06/27 19:58

追記:DirectXを最新の物にしたら800*600でも30fpsに落ち込みました。
Re: fpsと解像度 ( No.2 )
名前:管理人 日時:2009/06/28 02:01

うーん、特に思い当たる原因はありません あるとすれば、Vista だから、でしょうか・・・Vistaの、特に Aero を有効にした場合の環境は 一番動作実績少ないと思いますので 因みに私の環境もメインではありませんが Vista があり、VGAは GeForce 8800GTを使用しています この環境で手元で1024x768画面を試した限りでは、何もしなくても30FPSになるということはありませんでした もしかしたら暫定の最新版では正常に動作するかもしれませんので、宜しければこちらのバージョンを お試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) あと、それでも駄目でしたら私の環境で 60fps で動作することを確認している テストプログラムをアップしましたので、宜しければレタスさんの環境でも 60fpsがでるかどうか お試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/temp/1024x768Test.zip
Re: fpsと解像度 ( No.3 )
名前:レタス 日時:2009/06/28 04:27

わざわざすいません。ありがとうございます。 書き忘れてました。Aeroはoffの状態です。 暫定版でもさせていただいたのですが、変わらず。 テストプログラムも実行させていただくと…20fps 0:システムの情報を出力します 0: DXライブラリ Ver2.25c 0: OS WindowsVista ( Build 6001 Service Pack 1 ) 100: CPU動作速度:大体2.08GHz 101: MMX命令を使用します 101: SSE命令が使用可能です 102: SSE2命令が使用可能です 103: CPUベンダ:GenuineIntel 105: CPU名:Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz 106:COMの初期化... 成功しました 122:メモリ総量:2045.77MB 空きメモリ領域:1404.71MB 122:タイマーの精度を検査します 123:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 123: パフォーマンスカウンターを使用します タイマー分解能 : 14318.180000 KHz 124: ソフトの二重起動検査... 二重起動はされていませんでした 126:ウインドウクラスを登録します... 登録に成功しました 127:フルスクリーンモード用のウインドウを作成します 129:ウインドウの作成に成功しました 159:カーソルを不可視にしました 160:IMEを無効にしました 365:DirectInput関係初期化処理 365: DirectInput7 の取得中... 成功 425: 引き続き初期化処理... 初期化成功 429: ジョイパッドの初期化... 479: 入力装置を見つけました 485: デバイスの登録名:JC-PS101U 485: デバイスの製品登録名:JC-PS101U 486: 周期的エフェクトの作成に失敗しました。 488: ジョイパッドの追加は正常に終了しました 489: ジョイパッドの初期化は正常に終了しました 489: マウスデバイスの初期化... 初期化成功 490: キーボードデバイスの初期化... 初期化成功 493:DirectInput 関連の初期化は正常に終了しました 493:DirectSound の初期化を行います 494:DirectSound インターフェースの取得を行います.... 成功 498:引き続きインターフェースの初期化処理... 成功 603: DirectSound デバイスを列挙します 604: モジュール名: ドライバ記述:プライマリ サウンド ドライバ 604: モジュール名:{0.0.0.00000000}.{87cf8fe2-da10-4a53-a63b-0c777127ba0a} ドライバ記述:スピーカー (Realtek High Definition Audio) 605: モジュール名:{0.0.0.00000000}.{ea05e56d-0bfc-401c-a510-f8540d9ebf06} ドライバ記述:Realtek Digital Output (Realtek High Definition Audio) 606: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 606: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 607: 利用可能サンプリング精度 607: プライマリ 16bit = OK 8bit = OK 608: セカンダリ 16bit = OK 8bit = OK 608: 利用可能チャンネル 609: プライマリ MONO = OK STEREO = OK 609: セカンダリ MONO = OK STEREO = OK 610:DirectSound の初期化は正常に終了しました 610:DirectDraw 関連の初期化を行います 611: DirectDraw オブジェクトの取得を行います.... 成功 617: 引き続き初期化処理... 初期化に成功しました 729: ビデオカードの情報 730: 画面モード変更処理を開始します 790: ウインドウスタイルをフルスクリーンモード用に変更します... 完了 798: 画面モードの変更処理を開始します 1024 x 768 32 bit 798: 画面解像度を変更します... 成功しました 1278: 画面モードの変更は正常に終了しました 1280: カラー情報 1281: A:00000000 B:00ff0000 G:0000ff00 B:000000ff 1282: 出力画面用の DirectDrawSurface を作成します 1421: 各スクリーンメモリの配置位置 1422: PrimaryBuffer : VIDEOMEMORY 1423: BaskBuffer : VIDEOMEMORY 1423: 出力画面用の DirectDrawSurface の作成は正常に終了しました 1424: Direct3D 関連の初期化を行います 1425: Direct3Dオブジェクトを取得します 1430: Direct3Dオブジェクトを取得しました 1432: HALデバイスを発見しました 1433: ハードウエアT&Lデバイスを発見しました 1435: 3Dデバイスを作成します... 3Dデバイスの作成に成功しました 1441: テクスチャ最大幅:8192 最小幅:1 1442: 描画制限: D_D3DPTEXTURECAPS_POW2 = 0 D_D3DPTEXTURECAPS_SQUAREONLY = 0 1443: 最大テクスチャステージ数 = 8 最大テクスチャブレンド数 = 8 1444: テクスチャピクセルフォーマット 1445: 通常グラフィック用 1445: BIT:16 RED:5 GREEN:5 BLUE:5 1446: RED:007c00 GREEN:0003e0 BLUE:00001f 1446: BIT:32 RED:8 GREEN:8 BLUE:8 1447: RED:ff0000 GREEN:00ff00 BLUE:0000ff 1448: アルファチャンネル付きグラフィック用 1449: BIT:16 ALPHA:4 RED:4 GREEN:4 BLUE:4 1449: ALPHA:0000f000 RED:00000f00 GREEN:000000f0 BLUE:0000000f 1450: BIT:32 ALPHA:8 RED:8 GREEN:8 BLUE:8 1451: ALPHA:ff000000 RED:00ff0000 GREEN:0000ff00 BLUE:000000ff 1451: Direct3D 関連の初期化は正常に終了しました 1452: グラフィック管理系の初期化を行います 1453: 3Dグラフィック描画機能を使用します 1455: フォントの初期化を行います 1459: フォントの初期化は正常に終了しました 1460: グラフィック管理系の初期化は正常に終了しました 2650: サーフェス間転送には BltFast を使用します 2651: BitBlt:1175297μs BltFast:10077μs 2651: スキャンラインの数:768 2798: 1フレーム当たりの時間は 17 msecです 2799: Tri00:16 msec 2799: Tri01:17 msec 2802: Tri02:17 msec 2802: Tri03:33 msec 2803: 画面モード変更処理は正常に終了しました 3002: DirectDraw 関連の初期化は正常に終了しました 3008: 文字コードバッファの初期化を行います... 完了しました 14994: DirectDraw 関連の終了処理をおこないます 14995: フォントの初期化を行います 14998: フォントの初期化は正常に終了しました 14998: グラフィック管理系の終了処理は正常に終了しました 14999: Direct3D 関連の終了処理を行います 15000: 3Dデバイスの削除は正常に終了しました 15001: Direct3D 関連の終了処理は正常に終了しました 15002: メインサーフェスを破棄をします... 完了しました 15092: DirectDrawオブジェクトを解放します 15778: DirectDrawオブジェクトを解放しました 15779: DirectDraw 関連の終了処理は正常に終了しました 15779: DirectInput 関連の終了処理... 完了 15806: DirectSound の終了処理は正常に終了しました 15905: ウインドウを閉じようとしています 15949: ウインドウが破棄されようとしています 15949: ソフトを終了する準備が整いました 15957: 15958: Alloc memory dump 15958: Total size:0(0.000kb) Alloc num:0 15959: 周期的エフェクトの作成に失敗したというのは他の方(ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=765)でも発生しているようですが、う〜ん。 またいろいろ試行錯誤してみます。
原因解明? ( No.4 )
名前:レタス 日時:2009/06/29 21:13

復元ポイントでDirectX及びグラフィックドライバをバージョンダウンするとfpsの改善がみられ(それでも60fpsには届かず) もう一度グラフィックドライバをインストールするとまたfpsがガクッと落ちました。 とりあえず犯人はコイツみたいですね^^;
Re: fpsと解像度 ( No.5 )
名前:管理人 日時:2009/07/01 20:35

私の方でも調べてみましたところ、fps を 2000から 60前後に引き下げて しまっている原因は DirectX7 にあることが分かりました 私の Vista環境ではぎりぎり 60fps は保っているものの、Windows XP では 何もせずに ScreenFlip だけを呼ぶと 3000fps という速度が出るので 明らかに Vista では遅くなっています 試しに現在作成中の DirectX9 版のDXライブラリで同じことを Vista で実行したら、 若干 XP より速度は落ちるものの 2500fps 程の速度が出ました Vista から WindowsOS の基本的な描画仕様に大きな変更が加わりましたので、 XP までの描画仕様に則っている DirectDraw7 との相性が悪いのかもしれません というわけで・・・どうしましょう、もし実行速度の低下が開発に支障をきたすのでしたら バグ付きではありますが DirectX9版DXライブラリをお渡しすることもできますが・・・ ( 開発中だけ DirectX9版DXライブラリを使用して、リリースまでに DirectX9版ライブラリが 完成しなかったらリリースビルドでは DirectX7版ライブラリを使用する、というような使い方で・・・ )
Re: fpsと解像度 ( No.6 )
名前:レタス 日時:2009/07/02 05:41

そうなんですか。 リリースと言う段階はまだ程遠いですが 是非とも使わせていただきたいです。 管理人さんには本当に頭が下がる思いです。 ありがとうございました。
Re: fpsと解像度 ( No.7 )
名前:管理人 日時:2009/07/04 13:05

こちらに DirectX9版をアップしましたので宜しければお使い下さい http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTestDX9.zip http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTestDX9.zip 不具合がありましたら教えていただけると嬉しいです・・・ 不具合だらけだと思いますが orz
Re: Vistaを使用すると重い、fpsが低い ( No.8 )
名前:レタス 日時:2009/07/04 17:27

ありがとうございました。 早速使わせていただいたところぬるぬる動くようになりました。
Re: Vistaを使用すると重い、fpsが低い ( No.9 )
名前:しゃく 日時:2009/07/30 03:00

横レス失礼いたします。 上記のDirectX9版を私も使わせていただいたのですが、 一点、気になる挙動が発生しましたのでご連絡いたします。 extern int GetDrawScreenGraph( int x1, int y1, int x2, int y2, int GrHandle, int UseClientFlag = TRUE ) ; // アクティブになっている画面から指定領域のグラフィックを取得する こちらの関数を以前より利用していたのですが、 DirectX9版に差し替えたところ、グラフィック取得が行われず描画されないようになりました。 取得サイズは800*600で、ScreenFlipの前に実行させる処理で組んでおります。 他は今のところ特に不具合と思しき挙動は見られず、 Vistaでも以前より快適に動作しております。 (以前はVistaのAeroをONにしていると、fpsが少々不安定になっていたのです) お手数ですがご確認いただけますでしょうかー。
Re: Vistaを使用すると重い、fpsが低い ( No.10 )
名前:管理人 日時:2009/08/03 00:02

ご報告ありがとうございます。 GetDrawScreenGraph の不具合を修正したバージョンをアップしましたので、よろしければお使い下さい。m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTestDX9.zip http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTestDX9.zip (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: Vistaを使用すると重い、fpsが低い ( No.11 )
名前:しゃく 日時:2009/08/03 15:30

迅速なご対応ありがとうございます。 上記修正verに差し替えたところ、正常に取得される様になりました。 取り急ぎご報告まで。
Re: Vistaを使用すると重い、fpsが低い ( No.12 )
名前:Hima 日時:2009/08/05 01:23

PlayMovieもバグがあるみたいです。 でもDrawGraph関数系のスピードが上がったみたいですよ ( ^ ^)
Re: Vistaを使用すると重い、fpsが低い ( No.13 )
名前:管理人 日時:2009/08/08 03:59

バグのご報告ありがとうございます 修正しましたのでもしご必要でしたらダウンロードして下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTestDX9.zip http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTestDX9.zip (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) DrawGraph系の関数は単純なCPU負荷の計測をしただけのときは寧ろDirectX9版の方が 遅くなっているはずなのですが、もしかしたらGPUの負荷も考慮すると DirectX9 を 使った方が高速に動作するのかもしれませんね (・・;

Page: 1 |