「Windowsにおける仮想的ディスプレイ」の版間の差分
Notion-MW |
Notion-MW |
||
(同じ利用者による、間の4版が非表示) | |||
19行目: | 19行目: | ||
だが、それでもやはりちょっと素性が知れない。もう少し調べていくと、Indirect Display Driver (IDD)という技術を使うとそういうソフトウェアが書けるというMicrosoftのドキュメントが出てきた。そこからさらに調べてみるとこんなものがあった。 | だが、それでもやはりちょっと素性が知れない。もう少し調べていくと、Indirect Display Driver (IDD)という技術を使うとそういうソフトウェアが書けるというMicrosoftのドキュメントが出てきた。そこからさらに調べてみるとこんなものがあった。 | ||
[https://github.com/roshkins/IddSampleDriver | [https://github.com/roshkins/IddSampleDriver <span>https://github.com/roshkins/IddSampleDriver</span>] | ||
これを試したら無事動いたので、ついでに解像度を変えてみたら、普通に8Kくらいまで動いた(ただしその分重くなる)。↑のレポジトリでも解像度増やしてというissueがあったので、forkして公開した。さらにver0.0.1.2では"C:\IddSampleDriver\option.txt”というファイルを設定することで解像度オプションやディスプレイの個数をユーザーが設定できるように変更した。 | これを試したら無事動いたので、ついでに解像度を変えてみたら、普通に8Kくらいまで動いた(ただしその分重くなる)。↑のレポジトリでも解像度増やしてというissueがあったので、forkして公開した。さらにver0.0.1.2では"C:\IddSampleDriver\option.txt”というファイルを設定することで解像度オプションやディスプレイの個数をユーザーが設定できるように変更した。 | ||
[https://github.com/ge9/IddSampleDriver | [https://github.com/ge9/IddSampleDriver <span>https://github.com/ge9/IddSampleDriver</span>] | ||
本家のreadmeで紹介された結果、どうやらゲーム配信関係のRedditとかに載ったみたいで、実質的にはほぼ何もしていないのに800以上のstarを獲得している。 | |||
また、さらにこれをforkしたものとして[https://github.com/VirtualDrivers/Virtual-Display-Driver <span>https://github.com/VirtualDrivers/Virtual-Display-Driver</span>]が作られ、これはすでに5000starを超える大きなプロジェクトになっている。 | |||
* <strong>こちらはHDRにも対応していて積極的に開発されているので、今は基本的にはこちらを使ったほうがいいだろう。</strong>(以下の情報はIddSampleDriverなので古いかもしれない) | |||
{{Outdated}} | |||
以下、このソフトの話を主にしていく。 | 以下、このソフトの話を主にしていく。 | ||
68行目: | 74行目: | ||
* 解像度やリフレッシュレートの設定が不適切だと、デバイスマネージャで何度か再読み込みされる感じの動作をしたあと自動的に停止され警告アイコンが表示される。 | * 解像度やリフレッシュレートの設定が不適切だと、デバイスマネージャで何度か再読み込みされる感じの動作をしたあと自動的に停止され警告アイコンが表示される。 | ||
* 日付を超えるとタイムゾーン(筆者はJST=UTC+9)の関係でInf2Catが失敗する。プロジェクトのプロパティからInf2Catのメニューに行き、General → Use Local Time を「はい (/uselocaltime)」に設定する。参考: [https://monoist.atmarkit.co.jp/mn/articles/1307/26/news003_3.html https://monoist.atmarkit.co.jp/mn/articles/1307/26/news003_3.html] | * 日付を超えるとタイムゾーン(筆者はJST=UTC+9)の関係でInf2Catが失敗する。プロジェクトのプロパティからInf2Catのメニューに行き、General → Use Local Time を「はい (/uselocaltime)」に設定する。参考: [https://monoist.atmarkit.co.jp/mn/articles/1307/26/news003_3.html https://monoist.atmarkit.co.jp/mn/articles/1307/26/news003_3.html] | ||
** さらに、これを設定してもなぜか現地時間の21:00~24:00の間にビルドしたものは正常動作しなかった(ビルドは通るしデバイスマネージャでの警告アイコンも出ないのにサブディスプレイが出ない)ので、ビルド時はその範囲外になるようにPCの時計設定を適宜変更する(報告済み [https://github.com/roshkins/IddSampleDriver/issues/5 https://github.com/roshkins/IddSampleDriver/issues/5]) | ** さらに、これを設定してもなぜか現地時間の21:00~24:00の間にビルドしたものは正常動作しなかった(ビルドは通るしデバイスマネージャでの警告アイコンも出ないのにサブディスプレイが出ない)ので、ビルド時はその範囲外になるようにPCの時計設定を適宜変更する(報告済み [https://github.com/roshkins/IddSampleDriver/issues/5 <span>https://github.com/roshkins/IddSampleDriver/issues/5</span>]) | ||
自分でビルドしたやつのインストール時は、(おそらく自分のユーザー名を用いて署名が作られているため?)最初の一回のみ改めて.cerを登録する必要がある。二回目以降は、サブフォルダに生成されてるcat, dll, infをもってきて置き換えたあとデバイスマネージャから「ドライバーの更新」をすればよい。デバイスマネージャーは使ったフォルダをちゃんと覚えているようなので、頻繁に移動しなくていい安定した場所でビルドを行うのがいいだろう。 | 自分でビルドしたやつのインストール時は、(おそらく自分のユーザー名を用いて署名が作られているため?)最初の一回のみ改めて.cerを登録する必要がある。二回目以降は、サブフォルダに生成されてるcat, dll, infをもってきて置き換えたあとデバイスマネージャから「ドライバーの更新」をすればよい。デバイスマネージャーは使ったフォルダをちゃんと覚えているようなので、頻繁に移動しなくていい安定した場所でビルドを行うのがいいだろう。 | ||
75行目: | 81行目: | ||
== HDR対応について == | == HDR対応について == | ||
Virtual-Display-DriverのほうではHDRに対応している。 | |||
[https://github.com/VirtualDrivers/Virtual-Display-Driver/issues/32 https://github.com/VirtualDrivers/Virtual-Display-Driver/issues/32]や[https://github.com/roshkins/IddSampleDriver/issues/23 https://github.com/roshkins/IddSampleDriver/issues/23]で話題になっている通り、Windows 10ではHDRは動作しない。 | |||
* | * HDRの基本についてはここがよさそう? [https://zenn.dev/okuoku/scraps/ca346768627367 https://zenn.dev/okuoku/scraps/ca346768627367] | ||
[https:// | |||
=== その他参考情報 === | === その他参考情報 === | ||
このIDDというのはUser-modeで動作するやつなのだがKernel- | このIDDというのはUser-modeで動作するやつなのだがKernel-modeで動作するKMDODとかいうものもあるらしく、そっちの方が多くのことができるのかもしれない。前述の両リポジトリのHDR関連issueでも言及されている。ただし調べた感じ、ただちに使えそうなものは見つからなかった。まあWindowsのディスプレイドライバなんか趣味でそうそう書くもんではないのでしょうがない。 | ||
一応適当に調べて出てきた参考リンクなど | 一応適当に調べて出てきた参考リンクなど | ||
95行目: | 98行目: | ||
[https://community.osr.com/discussion/286843/how-to-implement-virtual-display-adapter https://community.osr.com/discussion/286843/how-to-implement-virtual-display-adapter] | [https://community.osr.com/discussion/286843/how-to-implement-virtual-display-adapter https://community.osr.com/discussion/286843/how-to-implement-virtual-display-adapter] | ||
** そこで言及されているLin JiaBang氏のソフト(動作未確認)<br /> | ** そこで言及されているLin JiaBang氏のソフト(動作未確認)<br /> | ||
[https://github.com/LinJiabang/virtual-display https://github.com/LinJiabang/virtual-display] | [https://github.com/LinJiabang/virtual-display <span>https://github.com/LinJiabang/virtual-display</span>] | ||
* WDDMで仮想ディスプレイを作れるかどうかについて(2016年)<br /> | * WDDMで仮想ディスプレイを作れるかどうかについて(2016年)<br /> | ||
[https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2d60c1c2-5198-47e2-b5d9-2ba28461e72e/how-to-implement-virtual-display-adapter-driver-on-windows-10?forum=wdk https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2d60c1c2-5198-47e2-b5d9-2ba28461e72e/how-to-implement-virtual-display-adapter-driver-on-windows-10?forum=wdk] | [https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2d60c1c2-5198-47e2-b5d9-2ba28461e72e/how-to-implement-virtual-display-adapter-driver-on-windows-10?forum=wdk https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2d60c1c2-5198-47e2-b5d9-2ba28461e72e/how-to-implement-virtual-display-adapter-driver-on-windows-10?forum=wdk] |