トップページ > 過去ログ > 記事閲覧
ScreenFlipの垂直同期信号待ちについて
名前:Dave 日時: 2009/01/11 10:58

先日、ビデオカードが故障したため、新しいものに交換しました。 (新しいとは言っても型は古いもので、Sapphire Radeon 9600 ですが) すると、今まで正常に動いていた製作中のゲームが 妙にスピードが速くなってしまいました。 調べたところ、ScreenFlip 命令で垂直同期信号待ちがされていないらしい事が判りました。 SetWaitVSyncFlag(TRUE) にしてあるのにです。 一応、1フレームごとの時間が一定になるようにウェイトをかける事で ゲームスピードは普通に戻せたのですが、画面が波打つのが気になります。 これはなんとかできないものでしょうか? つまり A)ScreenFlipで垂直同期信号待ちができない原因をつきとめ、それを解決し、  ちゃんと垂直同期信号待ちができるようにする。 B)垂直同期信号待ちがなくても、画面が波打たないようにする。 ……の、どちらかの方法はあるのでしょうか? 普通はどのように対応されているんでしょうか。

Page: 1 |

Re: ScreenFlipの垂直同期信号待ちについて ( No.1 )
名前:ZAP 日時:2009/01/11 18:52

私もRadeonのカードにしてから同じ症状で悩んだことがあります。 おそらくRadeonのグラフィックボードの設定でしょう。 グラボの設定アプリであるCatalyst Control Centerの設定項目の中に「3D」ってのがあると思います。 その中にさらに「All Settings(日本語だと「すべての設定」か?)という項目があるので その中の「Wait for vertical refresh(垂直同期を待つ)」という項目を見てみてください。 デフォルトではこれがオフになっている場合がありますので、オンにしてみると良いでしょう。
Re: ScreenFlipの垂直同期信号待ちについて ( No.2 )
名前:管理人 日時:2009/01/13 00:56

A) の方法は、ZAPさんも仰られていますがビデオカードの垂直同期信号待ち設定を変更するという方法があります B) の方法は、残念ながらありません 垂直同期信号待ちをするかどうかはビデオカードの設定で変更することができてしまいますので、 ScreenFlip 時にビデオカード側の設定がどんな設定になっていても確実に垂直同期信号待ちを させる方法はありません( 待たせるだけならビデオカードの設定に関わらず WaitVSync で待てますが、 波打ちを確実に無くせるかというと「否」、なのです・・・ )
Re: ScreenFlipの垂直同期信号待ちについて ( No.3 )
名前:Dave 日時:2009/01/13 19:40

お返事ありがとうございます。 >ZAPさま 切り替えの方法があるとは気づきませんでした。 (何か設定があるのかも、と探してはいたのですが、  ON/OFFのチェックとばかり思ってたので見逃していました。  まさか四段階のスライドだったとは) お陰様で、従来通りの動作をするようにできました。 >管理人様  解説をありがとうございます。  垂直同期信号待ちのない状態でも、普通に見えるゲームが  (ひょっとしたら波うってるのに私が気づいてないだけなのかもしれませんが)  結構あるようなので何か一般的な解決策があるのかとも  思ったのですが、そういうわけでもないのですね。 ともあれ、助かりました。ありがとうございます。

Page: 1 |