
マルチプレーンオーバーレイに関連のディスプレイの問題、Windows 11では無視されているとの指摘 8
ストーリー by nagazou
指摘 部門より
指摘 部門より
headless 曰く、
Windows 10 / 11 のディスプレイに関する問題はマルチプレーンオーバーレイ (MPO) に関連していることも多いが、Windows 11 では Microsoft や AMD、NVIDIA が問題を無視していると Neowinが指摘している (Neowin の記事)。
MPO は WDDM 1.3 以降で Windows 8.1 以降の新機能として導入されたもので、複数のフレームバッファーを実行する際にCPUとGPUのオーバーヘッドを減少させることが可能になる。しかし、MPOが原因で画面表示のカクつきやちらつき、真っ黒い画面や真っ白い画面といった問題が発生することもある。NVIDIA は 2021 年に MPO を無効化するレジストリファイルを提供しているが、現在も問題は解決していないようだ。このレジストリ設定を適用することで問題が解決したとの報告も多いという。
このレジストリ設定を適用するには「HKLM\SOFTWARE\Microsoft\Windows\Dwm」に DWORD 値「OverlayTestMode」を作成し、値のデータに「5」をセットする。MPO の設定を元に戻すには、この値を削除すればいい。
オーバレイによるコンポジットのオフロード (スコア:1)
デスクトップのコンポジット処理をグラフィクスapiからkmsのプレーンに移すのは、多くのハードウェアで
消費電力上有利だと思われる、また例えばゲームなどgpuのレンダリング作業から切り分けれるので、性能をわずかでもより引き出せるだろう。
linuxのXorgでは、プライマリプレーンとカーソル用のプレーンの2つだけしか使えない仕組みだったが、
waylandでは、コンポジターが直接ハードウェアオーバーレイをkmsを通じて扱えるので、さらなる最適化が可能である。
しかし、現状kwinもmutterもwlrootsもカーソル用以上にオーバレイを活用していない、
wlrootsのコントリビューターであるemersionはlibliftoffなどのオーバーレイ管理用のライブラリに取り組んでいるが、
まだコンポジターの作業を適切にオフロードするところまで行ってないようだ。
(ちなみに、westonは部分的にオフロードしてると聞いた)
libliftoffが取り組んでいるのはコンポジターが要求するサーフェスの要件に合うオーバーレイを探し、
なるべく効率良く使うため、どのように割り当てるのか、また再割り当ての挙動をどうするのかなどであったと思う。
また、ハードウェアによって扱えるオーバーレイに制限がそれぞれあり、オフロードできる作業が異なっている点や、
ctrtのコネクターとエンコーダーの組み合わせによってもそれぞれ制限があることだ。
ハードウェアの低レベルなアクセスなので仕方ないが、
libliftoffなどのライブラリがうまく抽象化してコンポジターから扱いやすくなり、
wlrootsなどでうまくオフロードできるようになり、消費電力が減り、ノートパソコンのバッテリー駆動時間が伸びることを願う。
(自分の理解だと、gpuのフレームバッファからエンコーダへの転送時、暗黙のメモリコピーが発生するが、
この時、読み取る順番や配置する位置などハードウェアによっていじることができるものがあって、追加のメモリコピーなしに、一部のコンポジット作業を肩代わりさせられる)
Re:オーバレイによるコンポジットのオフロード (スコア:1)
ウルトラワイドディスプレイを買え (スコア:0)
結論。
これ普通のスリムデスクトップでも出ます。
CPU,GPUはIntel、モニターデジタルとVGA条件としては
デスクトップでもノートでも発生するのかと思います。
VGA側(右)の発生時は画面上部1/3くらい白くなります。
表示がされてないだけでウインドウ上のボタンなどは機能している模様。
マウスカーソルは動くのでディスプレイの故障ではなないのはわかってました。
画面の右と左を入れ替えると表示したので、バッファー関連のトラブルであるとは思ってました。
Intelさんごめんなさい疑ってました。
Re: (スコア:0)
発生するための詳しい条件はわかりません。
メイン、サブの画面サイズ、デジタルとアナログの組み合わせ、画面の表示する位置
それ以外メモリーの仕様率。Excelのハードウェアアクセラレーションを有効にする。
も含まれるかもしれません。
ただ潜在的にバグが修正されないまま延々継承されたための不具合で
現時点では無効以外の方法がないのが実情でしょう。
一つ一つの機能が雑なのでバグの原因がどこにあるのかが分からないので直しようがなかったのですが、
今回はバグの原因が分かったので修正されることを期待します。
もしかすると、現時点で人員不足のようですしこのまま無効で手を付けられず放置かもしれませんね。
Re: (スコア:0)
> 今回はバグの原因が分かったので
どこにそんなことが書かれてる?
Re: (スコア:0)
>MPOが原因で画面表示のカクつきやちらつき、真っ黒い画面や真っ白い画面といった問題が発生することもある。
これをバグと言わず仕様すべきですか?
Re: (スコア:0)
バグだとは思うけど「原因が分かった」ではぜんぜんないですね。
懐かしのオーバーレイのトラブル (スコア:0)
その昔、パソコンでの動画再生が一般化しだした頃、映像を1フレーム毎に画面に描き続けていくのは処理がが重すぎた。ので、動画再生ウィンドウ内はOSから見ると緑一色だけど、画像出力の最終段階、グラフィックカードからディスプレイケーブルへと出る時に、その緑の部分がカード内で動画に置き換えられるという仕組みが作られた。
なので、
・動画再生中に画面のスクリーンショットを撮っても動画部分は緑色になる
・グラフィックカードには「この長方形内であって緑色のピクセルの部分を動画に置き換えろ」という指示が出ているので、動画再生中の窓の上に別の窓を載せると普通のウィンドウと同じように動画は正しく隠れる。ただし、上に置いたウィンドウにちょうどその緑の色のピクセルがあった場合は、そこだけは動画に置き換えられる。結果として緑のピクセルは透けて下のウィンドウが見えるような状態になる
・ノートPCの場合メインのディスプレイだけオーバーレイ機能が有効になるので、パワーポイントでプレゼンしてると、手元のディスプレイではちゃんと動画が再生されているけど、プロジェクターの出力側は緑一色のままになる
といったトラブルに見舞われるんだけど、特に3つ目、説明不足というかそういう仕組みになっているという説明に触れる機会が無いので知らずにハマる人が多かった。外部出力のみにすれば直るとか、メインとサブの設定を入れ替えたら直るとか何か直し方があったけどもう忘れた。動画を含むプレゼンをする場合、プレゼン前の接続確認時には動画再生を試しておくというのが基本だった。
今はパソコンの性能が上がったと言っても、動画再生というありがちなタスクを普通のウィンドウ描画と同じ方法でやるとそこだけ無駄に処理が重くなるのは変わらないので、また別の補助機能を作りましたよ、というのがMPOなんだろね。