1.垂直同期無しのWindowモードとFullScreenモード
下記が設定。
Mode |
BufferCount |
SyncInterval |
Flag |
MaxFrameLatency |
フルスクリーン |
1 |
0 |
NONE |
3 |
ウィンドウ |
1 |
0 |
NONE |
3 |
結論:垂直同期なしだとフルスクリーンのほうが3フレーム分(60Hzで約0.75フレーム)早く描画される。
追記:7フレームと書いていたが撤回。タイミング次第で3~7フレーム程度変動しているようだ。
2.垂直同期有りのWindowモードとFullScreenモード
下記が設定。
Mode |
BufferCount |
SyncInterval |
Flag |
MaxFrameLatency |
フルスクリーン |
1 |
1 |
NONE |
3 |
ウィンドウ |
1 |
1 |
NONE |
3 |
結論:垂直同期有りだとフルスクリーンのほうが画像約10フレーム分(60Hzで約2.5フレーム)遅く描画される。
なんか不思議な結果。何かを待ってしまっているのだろうか。検証が必要かも。
検証画面へ
3.垂直同期有りのWindowモードとFullScreen(最大遅延1)モード
下記が設定。
Mode |
BufferCount |
SyncInterval |
Flag |
MaxFrameLatency |
フルスクリーン |
1 |
1 |
NONE |
1 |
ウィンドウ |
1 |
1 |
NONE |
3 |
結論:垂直同期有りだとフルスクリーンのほうが画像約4フレーム分(60Hzで約1フレーム)早く描画される。
ウィンドウモードだと最大遅延設定の影響を受けなかったがフルスクリーンは強い影響を受けている。
ウィンドウモードだとDWMの設定に依存するのか?
検証画面へ
1.の検証画面
測定フレーム紹介:左がフルスクリーン、右がウィンドウモード
二つとも同じexeで引数でパラメータを設定。
どちらも同じタイミングで描画しているのにずれている。
1フレーム目
2フレーム目(ここで左が次のフレームに到達)
9フレーム目(ここで右が左の2フレーム目に到達)
2.の検証画面
測定フレーム紹介:左がフルスクリーン、右がウィンドウモード
二つとも同じexeで引数でパラメータを設定。
どちらも同じタイミングで描画しているのにずれている。
1フレーム目
2フレーム目(ここで右が次のフレームに到達)
10フレーム目(ここで左が右の2フレーム目に到達)
3.の検証画面
測定フレーム紹介:左がフルスクリーン、右がウィンドウモード
二つとも同じexeで引数でパラメータを設定。
どちらも同じタイミングで描画しているのにずれている。
1フレーム目
2フレーム目(ここで左が次のフレームに到達)
5フレーム目(ここで右が左の2フレーム目に到達)
最終更新:2013年11月25日 15:08