Windows Aeroは画面の破損をどのように防止しますか?


14

Windows Aeroがオンの場合、AeroなしでBasicテーマを使用する場合とは異なり、画面が破損することはありません。

しかし、デスクトップで何かをするときよりも、垂直同期を使用するゲームの入力ラグがはるかに大きいように見えるのはなぜですか?ゲームに組み込まれている方法を使用している場合よりも、V-syncをオフにしてウィンドウゲームを同期するようです。

なぜ、どのようにこれが起こる、または起こるように見えるのですか?

回答:


8

実際、AeroがアプリケーションでVSYNCを強制することなくティアリングを防止できるのは、合成ウィンドウマネージャーであるためです。実行中のアプリケーションに関して、デスクトップとすべてのウィンドウを非同期に描画します。

つまり、Windows Vista / 7で合成を有効にすると(Windows 8では常に有効になります)、最後から最後にスワップされた最後の画像のコピーを使用してすべてのウィンドウが描画されます。コンポジター(MicrosoftはDWM、デスクトップウィンドウマネージャーと呼びます)はVSYNCを有効にしてすべてを合成します。また、各ウィンドウの最後に完全にスワップされたフロントバッファーイメージのコピーを使用して描画するため、部分的に描画されたフレームを表示しません。ただし、フロントバッファに排他的に描画するように設計された本当に古いソフトウェアが正しく動作するのを防ぐという不幸な副作用がありますが、最新のソフトウェアはこれを行いません。

一言で言えば、DWMは裂け目に対する保護層を追加します。システム上で実行されているアプリケーションが、ディスプレイのリフレッシュレートに関係なく一定の速度で描画でき、それでもティアリングを防止できるもの。そのようなシステムでは、ウィンドウモードでは、OpenGLまたはDirect3DでVSYNCを有効にする唯一の利点は、実際にCPU / GPUの使用を抑制することです。

これがアダプティブVSYNCが作成された理由です。ディスプレイのリフレッシュレートを維持することができないアプリケーションを、リフレッシュレートの低い係数(たとえば60 Hz-> 30、20、15、10、12 、6、5、4、3、2、1)が、モニターがCPU / GPU電力を過剰に使用して画像を表示できるよりも高速に描画しているアプリケーションを制限します。


5

Aeroを有効にすると、デスクトップウィンドウマネージャーはダブルバッファリングを使用します。

Windows Aero機能は、ダブルバッファリングを広く使用して画面に描画します。

ソース

ウィキペディアには、画面の破損を防ぐためにV-syncでこれをどのように使用するかについて述べています。

垂直ブランキング期間中、ドライバーはビデオカードに、オフスクリーングラフィックス領域をアクティブな表示領域にすばやくコピーするか(ダブルバッファリング)、両方のメモリ領域を表示可能として扱い、それらを単純に切り替えます(ページ反転)。


6
ダブルバッファリングは、ティアリングを防止するものではなく、レンダリングの過程でユーザーが物を見ることを防止します。ダブルバッファリングを使用している場合、画面の更新中にページフリップを行うと、まだ涙が出ます。
ワイザード

もちろん、ダブルバッファリングを間違えた場合でもティアリングを取得できますが、ポイントは、DBを使用してティアリングを防止できることです。
nitro2k01

3

ダブルバッファリング+ V-syncをオンにすると、ティアリングは発生しません。Aeroはたまたまその構成を使用しています。


2

DWM(Aero効果を有効にするテクノロジー)は、画面内のすべてをD3Dサーフェスとしてレンダリングします(これにより、ビデオをFlipで再生し続けることができます)。このレンダリング手法は自動的にティアリングを防ぎますが、ゲームメソッドは一般的なDWMメソッドよりも優れているはずです(結局のところ、独自のエンジンです)。そのため、そもそもゲームの方法があまり良くないか、あなたの設定に最適化されていません。


2
Direct3Dを単独で使用しても、画面の破損を防ぐことはできません。ダブルバッファリングです。
bwDraco
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.