「NVIDIA GPUを搭載するゲーミングノートPC」や「CPU内蔵グラフィックスを搭載するデスクトップPC」などでPICO Connectが接続できない(デスクトップ画面が出ずに切断される)場合の対処方法です。
内蔵グラフィックスを「Intel Iris Xe Graphics」、ディスクリートGPUを「NVIDIA GeForce Laptop」という前提で解説をします。AMD RyzenやAMD Radeon環境の場合は読み替えてください。
他人の環境でのトラブルシューティングや複数の動作検証に基づいて執筆していますが、手元に検証環境がないものについては詳細な確認が取れていません。
その時の状況からの推測が含まれており、情報が正確ではない場合があります。予めご了承ください。
目次から該当する環境を選んで読んでください。
はじめに
PICO Connectのログを確認する
現在起きているトラブルが本記事の内容と当てはまるかを確認します。
PICO Connect(Streaming Service)のログは以下の場所にあります。まずはそちらを確認してみましょう。
"C:\Program Files\Streaming Service\ps_server.log"
この「ps_server.log」をメモ帳などで開いて「編集>検索する(Ctrl+F)」から「no active display」と検索して引っ掛かるようであれば、本記事の内容に該当します。
大まかな処理の流れとしては、「start display streaming(ディスプレイのストリーミングを開始)」の後に「failed to start capture(キャプチャの開始に失敗)」となり、その原因として「no active display(アクティブなディスプレイが存在しない)」と記録されます。
【ps_server.logを一部抜粋】
[PSS] [info] [6444|8452]switch_pico_connect_external.cpp:637 ProcessClientStartDisplayStreamingResponse: start display streaming,~
中略
[PSS] [info] [6444|8452]streaming_session_external.cpp:38 StartDisplayStreaming: start display_streaming {{display_id: "XXXXXXXXX" resolution { width: 1920 height: 1080 } frame_rate: 60 bitrate_kbps: 10240 reason { result_code: -1 description: "failed to start capture, id: XXXXXXXXX" }}}, this= 0x1bccf691060
中略
[PSS] [info] [6444|8452]switch_pico_connect_external.cpp:1155 ProcessPeerDisconnectFromPeerDeviceRequest: disconnect from peer, {hmd_device_info { PICOのデバイス情報 } external_device_info { PC情報 } connection_type: kConnectionUsb reason { description: "no active display" }}, this= 0x1bccc343ce0PICO Connectは接続時に「メインディスプレイに指定されたディスプレイ」を参照する
PICO Connectがどのグラフィックボードで動作しているかに関係なく、Windowsでメインディスプレイとして設定されているディスプレイを参照するようです。
そのため、内蔵グラフィックス(Intel Iris Xe GraphicsやIntel UHD Graphicsなど)で接続されているディスプレイがメインディスプレイとなっていると、ディスクリートGPU上(NVIDIA GeForceなど)で動作するPICO Connect(ps_server)からGPUを跨いだディスプレイのキャプチャが行えず最終的に接続に失敗します。
手元のデスクトップPCではこの状況を再現できませんでしたが、特定環境下(特にノートPC環境)では起こりうる問題のようです。
すべてを同一のグラフィックボード処理すること
「PICO Connect」「SteamVR」「VRChat」を実行するグラフィックボードは同一である必要がありますので、このメインとなるグラフィックボードにディスプレイを接続してください。
複数GPUを跨いだ処理をしようとするとデスクトップのキャプチャに失敗したり、SteamVRがHMDを検出できずにエラーとなったりします。SteamVRダッシュボード(vrdashboard.exe)が内蔵グラフィックスで動作しているときに黒画面になるのも似たような問題のようです。
ディスプレイが接続されていないGPUは基本的に使用されない
Windowsのグラフィック設定に「アプリケーションのカスタム設定」はありますが、PICO Connectのストリーミングサービス部分(ps_server.exe)はここで指定したGPUを使用してくれるわけではないようです。
例えば「GPU 1」だけにディスプレイが接続されている状況では、ps_server.exeを「GPU 2」で実行するように指定しても「GPU 1」で動作します。CPU内蔵グラフィックスを有するデスクトップPCの場合はps_server.exeが使用するGPUを完全に固定する事はできませんでした。
例外として、ディスクリートGPUとしてNVIDIA GeForceを搭載するゲーミングノートPCでは、GPUにGeForceを使用しつつIntel Iris Xe Graphicsに接続された内蔵ディスプレイを参照してしまう問題がありました。こちらについての詳しい状況は確認できませんが、基本的にはディスプレイの接続されていないGPUはPICO Connectで使用されません。
以上の内容を踏まえたところで、問題の対処を行ってみましょう。
ゲーミングノートPCでの対処方法
「NVIDIA GeForce RTX 4060 Laptop」「RTX 5070 Ti Laptop」などのディスクリートGPUを搭載するPCでの対処方法です。ハードウェア構成により対応が異なります。
安易にデバイスマネージャーで内蔵グラフィックス(Intel Iris Xe Graphicsなど)を無効にしないでください。ディスプレイが表示できなくなり、復旧困難となる可能性があります。
MUXスイッチ搭載・Advanced Optimus対応機種の場合
内蔵ディスプレイを、NVIDIA GeForce経由で表示するように変更すると解決できるはずです。(※手元に実機がないため未検証)
方法1:NVIDIAコントロールパネルから変更する
デスクトップを右クリックし、「その他のオプションを確認>NVIDIA コントロール パネル」と押してください。
「ディスプレイ モードを管理する」から「NVIDIA GPUのみ」に切り替えてください。
方法2:専用アプリから変更する
PCに付属するパフォーマンス管理用アプリケーションやBIOS設定から変更できる場合があります。
「Control Center(Fn hotkey and OSD)」などのアプリケーションから「ディスクリートGPUのみ」に指定してください。プリインストールアプリについての詳細は、取扱説明書やメーカーのウェブサイトなどをご確認ください。
iiyama PC ノートパソコンで、グラフィックス出力をディスクリートGPU(dGPU)に固定する方法(対応機種のみ) | パソコン工房 NEXMAG
MUXスイッチを搭載しない機種の場合
以下に該当する場合、MUXスイッチを搭載しない機種の可能性があります。
- NVIDIAコントロールパネルに「ディスプレイ モードを管理する」が存在しない
- Control Centerなどの制御アプリのバージョンが古く、ディスクリートGPUを指定する項目がない
この場合、WindowsのCASO(Cross Adapter Scan-Out)でディスクリートGPUの描画内容を内蔵グラフィックスのフレームバッファにコピーしているようですが、結局のところ内蔵グラフィックス(Intel Iris Xe GraphicsやAMD Radeon Graphics)を経由してしまうので問題を回避できません。少なくとも、Windowsのグラフィック設定やNVIDIAコントロールパネルで、アプリをディスクリートGPUで動作するように指定しても上手くいかないようでした。(※手元に実機がないため検証不十分)
内蔵ディスプレイだけで動かしていてトラブルが生じている場合、何らかのソフトウェア的手段で問題を回避できるかもしれませんが手元で検証できないので不明です。
但し、外部ディスプレイを接続可能で、尚且つ物理的にディスクリートGPU(NVIDIA GeForce)を経由して接続できれば解決できます。
1, 外部ディスプレイを接続する
ゲーミングノートPCの側面あるいは背面に「HDMI」「DisplayPort」「USB-C(Thunderbolt)」などの画面出力用コネクタがあるはずですので、その何れかにディスプレイを接続してください。
2, ディスプレイの接続先を確認する
「システム>ディスプレイ>ディスプレイの詳細設定」を開いてください。
右上のメニューから接続した外部ディスプレイを指定し、どのGPUに接続されているかを確認してください。
外部ディスプレイがNVIDIA GeForceに接続されているなら、ひとまずOKです。
外部ディスプレイがIntel Iris Xe Graphicsなどに接続されている場合はNGです。他のポートに接続してNVIDIA GeForceと接続される場所を探してください。
3, 外部ディスプレイをメインディスプレイに変更する
外部ディスプレイがNVIDIA GeForce経由で接続可能なことを確認できたら、「システム>ディスプレイ」に戻ってください。外部ディスプレイ側を選択して「これをメイン ディスプレイにする」と設定します。
デスクトップPCでの対処方法
デスクトップPCの場合、PICO Connectで接続できないというトラブルは別の問題である可能性が高そうに思えます。とはいえ、様々な環境や設定の違いはありますので、念のため起こりうる可能性がある問題について書いておきます。
よくありがちなミスとして、マザーボード側のHDMIにディスプレイを繋いでしまっているパターンが考えられます。PCの背面を確認してください。
ディスプレイが1枚だけの場合
ディスプレイがグラフィックボードのHDMI・DisplayPortに接続されていることを確認してください。マザーボード側のHDMIに接続されているとNGです。
この場合はPICO Connectが接続できないのではなく、内蔵グラフィックスでSteamVRやVRChatが動作してしまって困るという状況になっているはずです。
いずれにせよディスプレイが1枚だけであれば、これだけで解決するはずです。
ディスプレイが2枚以上ある場合
ディスプレイがグラフィックボード側に接続されていることを確認する
全てのディスプレイがグラフィックボードのHDMI・DisplayPortに接続されていることを確認してください。マザーボード側のHDMIに接続されているものがあれば、グラフィックボード側のHDMIに接続してください。
グラフィックボード側に接続されているディスプレイを「メインディスプレイ」に指定する
複数のディスプレイのうちのひとつをマザーボード側に接続しなければならない事情がある場合は、グラフィックボード側に接続したディスプレイを「メインディスプレイ」に指定してください。
「システム>ディスプレイ>グラフィック>グラフィックスの詳細設定>規定の高パフォーマンス GPU」がIntel Iris Xe GraphicsやAMD Radeon Graphicsになっている場合があるので、メインディスプレイを切り替えても既定のGPUが変わらないようであれば変更しておいてください。
GPUが3種類ある場合
タスクマネージャーを開いたときに、「GPU 0」「GPU 1」「GPU 2」といった感じで3つ以上のGPUが存在する場合も、ディスプレイの接続先を確認してください。
例えば上の画像の場合は、「GPU 1」がメインのグラフィックボード(Radeon RX7900XT)となります。PICO ConnectとSteamVR、VRChatを全てGPU 1で動作させるという感じです。
「メインのグラフィックボードに全てのディスプレイを接続する」か、「メインのグラフィックボードに接続されているディスプレイのうち何れかをメインディスプレイに指定」してください。
尚、この状況下においては全ての処理をRX7900XTで行えますが、PICO Connectのパフォーマンスパネル(メニューボタン長押しで表示)がGTX1660を見に行ってしまう問題がありました。ゲームプレイ等に支障はありませんが、PICO ConnectのパフォーマンスパネルでRX7900XTの使用状況を確認できません。これがGPU 0~2の並び順に起因しているのかどうかは検証できないので不明ですが、そういう事も起こりうるとだけ覚えておけば十分でしょう。(fpsVRなどのアプリから確認は可能なのであまり問題にはならない)




















