web-dev-qa-db-ja.com

ある種のWindows7の基本テーマ「フレームラグ」

Windows 7 Ultimate Basicテーマを使用しているときに、コンピューター(ラップトップ)で問題が発生しました。
私が抱えている問題は、このテーマがアクティブで、あるウィンドウを別のウィンドウに移動すると、この「フレームラグ」が発生することです。それは私がそれを説明できる限り近いです、ここにスクリーンショットがあります:

enter image description here

基盤となるアプリケーションに「遅れる」アプリケーションのフレームの量は異なります。例:2つのメモ帳Windowsを使用している場合、取り残されるフレームはごくわずかであり、ウィンドウが移動してエクスプローラーウィンドウに移動すると、フレームが多くなります。 「取り残された」フレームは0.8秒ごとにクリアされますが、これもプログラム間で常に異なります。

これは基本的なテーマでのみ発生します。 Aeroで正常に動作します。私のビデオカードはこれを完全にレンダリングすることができます。 Crysisは問題なく実行できます。これは、512MBのRAM(Mはもちろん、ラップトップの場合と同じように「モビリティ」を意味します)を備えたnVidia 9600M GSです。)現在、2台のFullHDモニターも接続されていますが、ネイティブラップトップでも発生します。 1440 x900の中程度の解像度の画面。すべての最新のnVidiaドライバーがインストールされています。

3
René

あなたが経験していることは「窓の引き裂き」と呼ばれています。これは、Windows Aeroがないため、WindowsBasicテーマでのみ発生する現象です。

Aeroは、Windows Vistaで導入されたDWM(Desktop Window Manager)を使用します。これは、DWMなしのコンピューターを使用する場合と比較して、グラフィックカードとハードウェアアクセラレーションにより密接に関連しています。

つまり、Aeroは実際には見栄えが良くなりますが、CPUではなくGPUによってレンダリングされる割合がはるかに高くなります。 Windows Basicテーマでは、すべてのアプリケーションにWM_Paintメッセージを個別に送信することにより、画面の大部分がソフトウェアで高速化されます。

さらに、DWMはダブルバッファリングを使用して、ちらつきやウィンドウのティアリングを防ぎます。

ウィキペディアは次のように述べています。

MILはコンポジションツリーをキャッシュすることで保持モードのグラフィックシステムを提供するため、ウィンドウが移動したときに画面を再描画および更新するジョブはDWMおよびMILによって処理され、責任の適用が解放されます。バックグラウンドデータはすでにコンポジションツリーとオフスクリーンバッファーにあり、Vista以前の場合のようにバックグラウンドアプリケーションがWM_Paintメッセージを送信して再レンダリングすることなく、バックグラウンドをレンダリングするために直接使用されます。 WindowsOS。 DWMは、ウィンドウの移動中にちらつきや裂けを防ぐために、ダブルバッファグラフィックスを使用します。合成エンジンは、カリングなどの最適化を使用してパフォーマンスを向上させ、変更されていない領域を再描画しません。コンポジターはマルチモニターに対応しているため、DWMはそれもネイティブにサポートしています。

さて、なぜそれが起こっているのかという私の理論は、GPUのせいではありません。それはあなたのCPUのせいです。 Windows Basicテーマで複数のモニターを接続している場合、グラフィックカードのパフォーマンスによっては、Aeroの使用が実際には高速になる場合があります。