Spoutで「Cannot create DirectX/OpenGL interop」エラーが出たときの対処
Spoutで「Cannot create DirectX/OpenGL interop」エラーが出る、もしくは何も表示されないときの対処法です。
Spout標準アプリで動作確認
Spout標準のデモアプリがあるのでまずはこれで動作確認をしましょう。
インストール(していなければ)
ダウンロードページからインストーラーを落として実行
https://spout.zeal.co/download-spout/
デモアプリ
SpoutSender ⇒ SpoutReceiverで映像が送受信できていることを確認します。
本記事は、この組み合わせは動作するが、
・別アプリ ⇒ SpoutReceiver
・SpoutSender ⇒ 別アプリ
の組み合わせでうまくいかない場合の対処になります。
1.同じGPUを使用しているか確認する
特にゲーミングノートPCに多いのですが複数のGPUを積んでいる環境ではSpoutの送信側、受信側で同じGPUを使用している必要があります。
NVIDIA製のGPUを使用している場合、
で標準で使用するGPUを指定できます。
Spoutを使用するようなPCの用途であれば「高パフォーマンス~」で一律指定しておいてよいかもしれません。
アプリケーションごとに指定する場合は「プログラム設定」タブから行います。
また、
をチェックしておくとNVIDIA GPU上で動作しているアプリケーションがリアルタイムで確認できるので便利です。
*2023/03/30追記
デスクトップPCではiGPUとdGPUと搭載していてもNVIDIAコントロールパネルでグラフィックプロセッサを選択する項目が出てこないケースがあるようです。
このような場合は、
から各アプリケーションのオプションで個別に指定できます
リストにないアプリケーションは参照ボタンから直接実行ファイルを指定することで追加できます
参考:https://qeynos2525.blog.jp/archives/1075306046.html
2.DirectXのバージョンが同じか確認する
Spoutは、DirectX 9 か 11 で動作しますが、
DirectX 9 では 11 のテクスチャを受信できません。
同じGPUを使用していてもエラーが解消しない場合はこちらのケースが考えられます。
*OpenGLについては未検証ですがおそらく手順は同様だと思われます
■ SpoutSender、SpoutReceiverで使用しているバージョンを確認する
タイトルバーでバージョンが確認できます。
■ SpoutSender、SpoutReceiverで使用するバージョンを切り替える
Spoutの設定アプリ
Options→DirectX 9 のチェックで切り替えられます(チェックしなければDirectX 11)。
こちらを設定したのちにSpoutSender、SpoutReceiverを立ち上げなおすとDirectXのバージョンが切り替わります。
問題のアプリとこれらの組み合わせを動作確認をすることで、不具合の原因が DirectX 9 で DirectX 11 のテクスチャを受信しようとしているからかどうか調べることができます。