HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0808
atuhgimg3の、hgsyncの時間待ちモード(HGIMG3/await)と、FPSについて3解決


atu

リンク

2011/8/8(Mon) 12:15:21|NO.40459

hgimg3の、hgsyncの時間待ちモード(hgsetreqで設定)を今までは、HGIMG3モードにしていたのですが、
awaitモードにすると、動作が極端に軽くなりました。
動作が軽いため、awaitモードにしようと思うのですが、
デフォルトでは、HGIMG3モードになっているようです。
awaitモードを使用する場合、何か注意点、デメリット等はあるのでしょうか?


また、HGIMG3/awaitモードの差は関係なく、hgsync 16に設定していたのですが、
Windws7 64bit(PCの性能高い)だと、59FPS
windows Vista 32bit(ノートPCで性能低い)でも、59FPS
WindowsXP 32Bit(PCの性能はそれなり)だと、63FPS
(全て液晶モニタで、リフレッシュレートは60)
と、同じ hgsync 16 設定でもフレームレートに差が出てしまいます。
どのPCでも、処理落ちはしていませんでした。(ノーウェイトだと、4000〜300FPSになる)
どのPCでも、同じFPSで動作させたいのですが、何か良い方法は無いでしょうか?
現在は、FPSによって「hgsync」の値を変化させて、ムリヤリ、大体60FPSになるように調整しているのですが、
フレームレートがコロコロ変わってしまいます。(58〜62程度で常に変化している)
これを安定させる方法がありましたら、教えてください。
よろしくおねがいします。



この記事に返信する


backdrop

リンク

2011/8/8(Mon) 18:28:27|NO.40465

awaitはシステムタイムで待ち時間を指定するので、システムCPUに直接依存してしまう。

>同じ hgsync 16 設定でもフレームレートに差が出てしまいます
当り前ですよ。CPUの外面から見たスペックは同じでも、処理速度は状況によって違いますから



Drip

リンク

2011/8/9(Tue) 00:42:28|NO.40474

atuさん、こんにちは。

これはhgimg3の不具合のようです。

awaitモードでは標準のHSPのawaitと同一の仕様でアイドル処理されるため、
await 18とawait 22で処理結果に変化がない仕様等もそのまま適用されます。
平たく言うと大雑把なアイドルなので高性能なCPUほど安定して動作する可能性があります。
使用するデメリットとしては、処理落ちが発生した場合にいきなりガクンと2倍近く
処理速度が落ちることがあります。注意してください。

一方HGIMG3モードではhgsync 18とhgsync 22でもアイドル時間に変化が発生します。
HGIMG3モードでは負荷を計測しながらアイドルを取るため、設定したパラメータに対して
非常に正確なウェイトを取る優れた機能の「ハズ」なのです。
ですがHGIMG3ではこの計算方法に問題がある性か、どんなに優れたCPUであっても
FPSが意図的に引き下げられる不具合が一定間隔で発生するようです。
結果的に60FPSのはずが、酷いときは48FPS程度まで低下する事もあります。

この不具合は処理の重さやCPUの性能に依存せずに発生してしまいます。
コンテストもあるので早く修正されればいいのですが、おにたまさんも忙しそうですし、
今回はFPSの低下には目を瞑るかawaitモードを利用して凌ぐしか無いようです。
hgimg3を使用した全てのプログラムが対象となる不具合なので、酷いといえば酷いです。
ゲームを遊ばれるユーザーからも、無駄に重い!とか言われてしまうかもしれません。
念のためおにたまさんに報告したほうが良いかもしれませんね。
この不具合は、画面内のオブジェクト数が極端に少ない場合は発生し難い傾向が
あるようですが、定かではありません。

> awaitモードにすると、動作が極端に軽くなりました。

これは違います。大雑把なアイドルを取った結果として、
64FPS程度で処理されてしまったため、動作が軽く見えるだけです。
awaitモードでは60FPSを正確に得ることができない点にも注意してください。



atu

リンク

2011/8/9(Tue) 21:11:58|NO.40492

backdropさん、Dripさん、返信ありがとうございます。
すごいです。まさか、ここまで詳しく教えていただけるとは… 感謝!です。

>> awaitモードにすると、動作が極端に軽くなりました。

>これは違います。大雑把なアイドルを取った結果として、
>64FPS程度で処理されてしまったため、動作が軽く見えるだけです。
>awaitモードでは60FPSを正確に得ることができない点にも注意してください。

なるほど… そのようなカラクリがあったのですね。
よく調べてみると、
awaitモード、hgsync 15 だと、どの環境でも64フレーム固定
hgimg3モード、hgsync 15だと、「Win7-64bit」、「Vista-32bit」だと、64フレーム。
「XP-32bit」だと、60〜61フレームになるようです。

awaitモードにすると、XP-32bitでも64FPSになった為、処理が軽く見えただけだったようです。
ノーウェイトだと、7とVistaは、hgimg3モード、awaitモード共に変化無し。
XPのみ、ノーウェイトだと今度はhgimg3モードの方が軽かったです。
以上の事から、hgimg3モードだと、OSか、その他の環境に依存しやすく、
awaitモードだと、環境に依存しにくいのではないでしょうか。
今の所、私は、このような結論にたどり着きました。
どうも、ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.