DisplayPortでデュアルモニター利用時、モニター休止状態から復旧するとウィンドウがずれてしまっている問題を直した

2021/09/30

Windows10 雑記

t f B! P L
↑問題にぶつかってるときのワイ

今のモニターに変えた時からそうだったんですが、モニターが休止状態から復帰すると休止前に並べていたブラウザやらアプリがモニターの左端に移動している現象に遭遇していましまして。

あんまり気にしてなかったんですが、最近またPC使うようになって気になってきたので調べて直しました。

自分のPCの環境

  • メインモニター
    • 4Kディスプレイ PCとの接続は「Display Port」
  • サブモニター
    • フルHDディスプレイ PCとの接続は「HDMI」
のデュアルディスプレイ体制。
(内部のスペックはしょぼしょぼだし今回は省略)

原因

どうもメインモニターの接続方法である「Display Port(以下DP)」で尚且つデュアルディスプレイ時にしか起こらない問題らしい。

DPには「プラグアンドプレイ」という仕様があり、モニターの電源が休止状態になるor切れると、DP側ではないモニターのみの認識をされてしまい結果ウィンドウがサブモニターに寄ってしまって、復帰したときにサブモニター側の解像度に合わせた配置になる……という有名な問題との事。

どうやって直す?

ではどうやって直そうか。調べてみたところ
  1. シングルモニターにする
    • デュアルモニターにしたいので却下
  2. DPケーブルに細工をして、信号が途切れないようにする
  3. HDMIからDPに変換するコネクタ端子を用意する
  4. DPケーブルとHDMIケーブルの2本差し
    • 冷静に考えて2本差し出来るならHDMI一本で十分なのでは?
      それとも、DPケーブルを絶対刺さないといけない理由がある……?
  5. DPケーブルからHDMIケーブルに入れ替える
    • というわけで手元にHDMIケーブルがあり、グラボ側のHDMI端子も空いていたのでこれを試すことにした

HDMIケーブルに変更したが……?!

早速DPからHDMIケーブルに変更し、再起動!
モニターの電源も休止状態にして復帰して試してみる。

がっ…だめ………!移動してしまっている………!なぜ……………!

……そういえば調べている途中でレジストリ値の値を変更する方法が乗っていたのを思い出した。
もしかしたらそこに変な値が入っているのかも?(入っていないかもだけど)

レジストリの値を変更してみる

※レジストリの値をいじるときは必ずバックアップを取ってからやりましょう。

まずレジストリの該当のキーを確認してみる。
コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration
上記キーに入っているどれかの値を規定値に変更すればよいらしい。

ありすぎィ!
いやいや数多すぎ。なんかネットの記事調べた時に出てきた値(NOEDID_xxxxとかSIMULATED_)もあるにはあるけどどれか分からない……ので、一旦キーをバックアップ後削除してまっさらにする。
バックアップはキーを右クリックして「エクスポート」

削除はキーを右クリックして「削除」

そして再起動。

すっきり

とりあえず設定は1つだけになった。
あとは内部の値を確認する。
見てみる限りは「00」はディスプレイ1、「01」はディスプレイ2の設定のようだ。
00が4Kモニターなので、以下の設定になっていればOK(フルHDディスプレイはカッコ内)
赤下線部両方とも修正する必要があるので注意

  • PrimSurfSize.cx
    • 3840(1980)
  • PrimSurfSize.cy
    • 2160(1080)
  • DwmClipBox.right
    • 3840(1980)
  • DwmClipBox.bottom
    • 2160(1080)
  • ActiveSize.cx
    • 3840(1980)
  • ActiveSize.cy
    • 2160(1080)
これで再度再起動して、モニター休止からの起動……成功!

1週間ほど同じ設定のまま置いて試してみて今の所問題なさそうなので、とりあえずDP問題に困っててHDMIポートが余っているのであれば上記の方法を試してみるといいかもしれないです。

DPポートしかどうしても使えん……って時は以下の記事とかも参考になるかもしれないです。
参考:DisplayPort電源オフ問題!ウィンドウのずれを完全解決できる方法まとめ

あとがき

というわけで現状は快適に動くようになりました。

とはいえ、標準で搭載されている接続のDisplayPortの不具合とも仕様とも言えるこの挙動は正直あんまりいい感じはしない……

一応、Windows Insider Program Build 21287に
Windows 10 ビルド21287、マルチディスプレイのアプリ再配置の問題を修正
といったWindows側で対応したパッチが含まれたという事なので、もしかしたらどこかのwindowsアップデートで来るかもしれないのでちょっと期待。

その他参考にしたサイト

QooQ