DisplayPort HPD ModBoardを作る
これまでのDisplayPortチャレンジ
2017-10-16 動作検証の項をアップデートしました。
いつまでもPC裏にEVBが垂れ下がってる状況はよくないなと思い、DPアダプタの中に入れてしまえと、MOD基板のようなものが出来上がったので、仕込んでしまおうと思います。
DPアダプタのケース内に入れるのを考えた結果、12x18x0.8という大きさになりました。DPのコネクタと位置がズレるとは分かっていたのですが、調子乗ってDPコネクタと同じ1mmピッチにしたため、基板とコネクタの結線がとてもめんどくさくなりましたw
実装は、LPC811にしました。EVBの開発環境のまま移植できる気軽さ
コードをマイコンに書き込んで動作検証していきます。
余談
基板に付け替えるときに、酷使してきたHPDピンがコテで触った時にパターンごと剥がれてポロリしてしまい、ピンバイスで穴開けてピンを露出させてUEW差し込んでハンダ付けして何とか復旧させました。:D
※モニターのMSTを無効にすることによりモニタースタンバイから復帰しない現象は、ほぼ無くなりました。
検証デバイスが少なくなってしまいましたが...
IntelCPUのonGPUは、Fakeモードでは一瞬モニターデバイスが外れたりします。Forceモードでもモニタースタンバイになる場合は、もう一度電源再投入で画面が出る感じ。タイミングなのか何なのか。
モニター電源再投入時に動画が一瞬途切れるのは、動画再生ソフトによって変わります。MPCHC等で高度な再生をしているやつだと反応するような気がします。Youtubeではならないですね
以下は、一様MSTを有効にした場合の結果として残しておきます。
とりあえずDPチャレンジは、これで終わります。AUXのデータを覗いてDPCDを触ったりやりたいことは残りますが、変わった挙動で少し心が折れています。自分が現在使っている状況では、ウインドウがちょっと移動するのが気になる点ですが、ウインドウをぐちゃぐちゃにされるよりかは、数倍マシだと思っています。
続く→シリアルポートでMod Adapterを制御する
- DPHPDMA - DisplayPort HPD Mod Adapter 委託販売始めました。
- DisplayPort接続でモニターの電源を切ると認識が外れるのを何とかできる?
- DisplayPortのホットプラグ検知を再考する
- Unplug/Replugしてみたらどうなる
- DisplayPort HPD ModBoardを作る
- シリアルポートでMod Adapterを制御する
2017-10-16 動作検証の項をアップデートしました。
基板を作る
いつまでもPC裏にEVBが垂れ下がってる状況はよくないなと思い、DPアダプタの中に入れてしまえと、MOD基板のようなものが出来上がったので、仕込んでしまおうと思います。
DPアダプタのケース内に入れるのを考えた結果、12x18x0.8という大きさになりました。DPのコネクタと位置がズレるとは分かっていたのですが、調子乗ってDPコネクタと同じ1mmピッチにしたため、基板とコネクタの結線がとてもめんどくさくなりましたw
実装は、LPC811にしました。EVBの開発環境のまま移植できる気軽さ
コードをマイコンに書き込んで動作検証していきます。
余談
基板に付け替えるときに、酷使してきたHPDピンがコテで触った時にパターンごと剥がれてポロリしてしまい、ピンバイスで穴開けてピンを露出させてUEW差し込んでハンダ付けして何とか復旧させました。:D
DisplayPort機器で動作検証
※モニターのMSTを無効にすることによりモニタースタンバイから復帰しない現象は、ほぼ無くなりました。
検証デバイスが少なくなってしまいましたが...
IntelCPUのonGPUは、Fakeモードでは一瞬モニターデバイスが外れたりします。Forceモードでもモニタースタンバイになる場合は、もう一度電源再投入で画面が出る感じ。タイミングなのか何なのか。
モニター電源再投入時に動画が一瞬途切れるのは、動画再生ソフトによって変わります。MPCHC等で高度な再生をしているやつだと反応するような気がします。Youtubeではならないですね
以下は、一様MSTを有効にした場合の結果として残しておきます。
■MST有効の場合
■SAPPHIRE Vapor-X Radeon HD7770
■ASUS R9 290-DC2OC-4G D5
結果: × モニター電源オフ→オン時のモニタースタンバイから復帰しない
Replug時にHPD IRQを送っても復帰しません。
■ELSA GeForce GTX 1050 Ti 4GB S.A.C
OS: Windows10
結果: 〇 問題なし
OS: Windows7
結果: △ モニター電源オフ→オン時の両方のモニターに再認識がかかってしまう
DPのモニターをオンにすると、2台とも一瞬ブラックアウトしてしまいます。DPだけのシングル接続でも挙動は一緒です。
■PowerColor Red Devil Radeon RX 480 8GB
OS: Windows7/10
結果: 〇 問題なし
■Gigabyte GA-Z87X-UD4 OnBoard DisplayPort+Core i7 4670K(Intel HD Grahpics 4600)
結果: × モニター電源オフ→オン時のモニタースタンバイから復帰しない
Replug時にHPD IRQを送っても復帰しません。さらに放って置くとモニターがHPD IRQを送信しまくる謎の現象が起きます。
モニタースタンバイから復帰しないGPUは、全部DisplayPort1.2なのですが、これが原因なのかどうか。もしかするとDisplayPort1.4は、HPD IRQを受けたときの振る舞いが変わっているのかもしれません。
1050TiとWin7の組み合わせは、ブラックアウトしますがデスクトップの内容が1つのデスクトップに集約されている様子は無いです。
Radeon RX480でも動作していることなので、今のところDP1.4のみ動作を見込んでいます。
■シャットダウン時、モニターの電源を先に落としてしまうと電源が切れるまでの時間が長い(Win7/10)
モニターからの応答を待ち続けるようです。最近PCの電源が落ちるタイミングが遅い時と早い時があるなーとは思っていたのですが、落ちる間際までOSはモニターの状況まで見てるんですね…。
(ゲフォのみ?)ラデでは特に時間が長くなるのは確認できないそうで…
■モニターの電源入れ直しで、ウィンドウが移動する(Win10)
デスクトップ画面外にウインドウが存在すると画面内に移動しようとします。解像度を変えたときの挙動に似ています。
ウインドウが全画面状態だとこれらの問題は発生しないようで、画面サイズにフィットしていない状態では、移動してしまいます。
■モニターの電源入れ直しで、動画再生が途切れる(Win7/10)
どうしようもない感じです…
■アプリケーションウインドウの解像度が1024x768になる(Win10)
Win10を新たに入れ直ししたらついに出ました。Modアダプタ使ってこれじゃ意味がないじゃんと思い、例のレジストリを見に行くとシングルディスプレイで電源切っていた時に作られるレジストリが引き金っぽいです。
HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\SIMULATED_10DE_1C82_00000001_00000000_1100^****(略)
SIMULATED_GPUVenID_GPUDevID_~ 有効なモニターデバイスがないと作られるようです。このキーがあると一瞬でも、この解像度に変えられてしまいます。消したらこの現象は改善。(OSver関係ないかも)
■SAPPHIRE Vapor-X Radeon HD7770
■ASUS R9 290-DC2OC-4G D5
結果: × モニター電源オフ→オン時のモニタースタンバイから復帰しない
Replug時にHPD IRQを送っても復帰しません。
■ELSA GeForce GTX 1050 Ti 4GB S.A.C
OS: Windows10
結果: 〇 問題なし
OS: Windows7
結果: △ モニター電源オフ→オン時の両方のモニターに再認識がかかってしまう
DPのモニターをオンにすると、2台とも一瞬ブラックアウトしてしまいます。DPだけのシングル接続でも挙動は一緒です。
■PowerColor Red Devil Radeon RX 480 8GB
OS: Windows7/10
結果: 〇 問題なし
■Gigabyte GA-Z87X-UD4 OnBoard DisplayPort+Core i7 4670K(Intel HD Grahpics 4600)
結果: × モニター電源オフ→オン時のモニタースタンバイから復帰しない
Replug時にHPD IRQを送っても復帰しません。さらに放って置くとモニターがHPD IRQを送信しまくる謎の現象が起きます。
んー、ひょっとして?
モニタースタンバイから復帰しないGPUは、全部DisplayPort1.2なのですが、これが原因なのかどうか。もしかするとDisplayPort1.4は、HPD IRQを受けたときの振る舞いが変わっているのかもしれません。
1050TiとWin7の組み合わせは、ブラックアウトしますがデスクトップの内容が1つのデスクトップに集約されている様子は無いです。
Radeon RX480でも動作していることなので、今のところDP1.4のみ動作を見込んでいます。
■シャットダウン時、モニターの電源を先に落としてしまうと電源が切れるまでの時間が長い(Win7/10)
モニターからの応答を待ち続けるようです。最近PCの電源が落ちるタイミングが遅い時と早い時があるなーとは思っていたのですが、落ちる間際までOSはモニターの状況まで見てるんですね…。
(ゲフォのみ?)ラデでは特に時間が長くなるのは確認できないそうで…
■モニターの電源入れ直しで、ウィンドウが移動する(Win10)
デスクトップ画面外にウインドウが存在すると画面内に移動しようとします。解像度を変えたときの挙動に似ています。
ウインドウが全画面状態だとこれらの問題は発生しないようで、画面サイズにフィットしていない状態では、移動してしまいます。
■モニターの電源入れ直しで、動画再生が途切れる(Win7/10)
どうしようもない感じです…
■アプリケーションウインドウの解像度が1024x768になる(Win10)
Win10を新たに入れ直ししたらついに出ました。Modアダプタ使ってこれじゃ意味がないじゃんと思い、例のレジストリを見に行くとシングルディスプレイで電源切っていた時に作られるレジストリが引き金っぽいです。
HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration\SIMULATED_10DE_1C82_00000001_00000000_1100^****(略)
SIMULATED_GPUVenID_GPUDevID_~ 有効なモニターデバイスがないと作られるようです。このキーがあると一瞬でも、この解像度に変えられてしまいます。消したらこの現象は改善。(OSver関係ないかも)
とりあえず終了
続く→シリアルポートでMod Adapterを制御する