リングフィットアドベンチャー

第 29 回目。ちょっと久しぶりのリングフィットアドベンチャー。

キャプチャボードの映像が映らない問題

macOS Big Sur にアップグレードしてからはじめての配信だったのだが、OBS でキャプチャボードの映像が映らなくなる問題が発生した。

まだはっきりした原因がわかっていないが、eGPU が有効になっていると映像が映らなくなる気がする。macOS Catalina のときまではそんなことなかったと思うが1

で、eGPU が有効になっているなら eGPU 側にキャプチャボードを接続すれば映るんじゃないかと思って試してみたら映った。でもやっぱりたまに映らなくなることもあって、挿し直したりするとまた映る、という不安定な感じ。

でも eGPU にキャプチャボードを接続するのは Catalina だったころ、最初にそうしていた。でもそれだと映像が乱れるという問題は発生することがわかり、Mac 側に直接挿すことにしていた。eGPU 側に挿すことになると、また映像乱れる問題が発生するんじゃないかと危惧していたら案の定、なった。配信の最初のほうは映像が乱れている。最初のほうだけだったからまだマシだが、ひどいときは常に乱れていたこともあったのでこれはやっぱり得策ではない。

eGPU、やっぱり慣れないヤツだ。何かしら問題が起こる。Windows でさんざん eGPU に苦しめられていたが、まさか macOS でもこんなことになってしまうとは思わなかった。というか Big Sur にアップグレードしてしまったのはやっぱり尚早だったかもしれない。

HDMI の映像が映らない問題

それから、Big Sur にアップグレードしてから、外部ディスプレイの映像周りがなんかおかしい。まず HDMI でディスプレイと接続しても映像が映らない。しかし OS 側で認識はしている。ただ画面が真っ暗なまま。しかもその状態でケーブルを抜いても接続した状態が保たれたままになる。再起動しないともとに戻らない。

あと、HDMI 以外にも、USB-C でディスプレイに接続する場合でも、OS 起動後に接続すると認識しなかったりする。OS 起動前に予め接続していないと映像が映らないことがある。

HDMI で映像が映らない問題といえば、Catalina (Mojave だったかも?) の初期のころにも同様の問題があった。それで Mac mini に映像が映らなくなって困った時期があった。アップデートで直ったが、Big Sur でも同じことが起きている……。

Windows で eGPU をちゃんと使ってもらうために、外部ディスプレイを eGPU 側に接続する、ということを学んだが、それと同じことが macOS 側でも言えるんじゃないかと思って、外部ディスプレイは eGPU 側に接続するようにした2

でも、eGPU の USB-C 端子は埋まってしまっているし、HDMI も映らない。それなら、ということで、はじめて DisplayPort を使ってみた。ちょうど外部ディスプレイを買ったときに付属品として DP のケーブルがあったのでそれを使った。

DP なら問題なく映った。それと、以前 Catalina で HDMI 接続したことがあってそのときに気になったのが、HDMI 接続するとなぜか色味がおかしくなる、という問題があり、また赤色 (#FF0000) の文字を表示するときにアンチエイリアシングが効いていないという問題があった。かなり細かい話だが、こういう細かいところが気になってしまい、結局 HDMI 接続はやめたんだった。

でも DP ならそういう問題は特に発生していないし、今は Big Sur のバグで HDMI 接続もできないので、外部ディスプレイは eGPU に DP 接続で良いんじゃないかという結論に至った。

Big Sur、結構バグあるな。Apple Watch でロック解除できないし。

VR できない問題、完全解決!

どちらかというとこれを今日の日記の最初に書くべきなのだが、リングフィットアドベンチャーやったあとに日記を一気に書いていいるので順番が前後してしまった。

昨日、一昨日と日記を更新できていなかったのは、ずっと Windows 10 (Boot Camp) で VR できない問題に取り組んでいたからだ。

13 日に MacBook Pro で Boot Camp して、Mac mini のときとは打って変わってあっさり eGPU 有効で動作させることに成功したものの、VR ゲームができない (HMD に映像が映らない) という別の問題が発生してしまった。

で、ここ数日いろいろ試していたのだが、ついにその原因がわかった。詳しいことは Qiita にまとめた。

MacBook Pro (2018) + Blackmagic eGPU Pro の組み合わせで Boot Camp 環境の Windows 10 を使用することができた!(おそらく)

簡単にまとめると、eGPU 側に外部ディスプレイを接続して、それをメインディスプレイにすれば良いということ。macOS のときと同じように Mac と外部ディスプレイを USB-C で接続していたので、VR ゲームを eGPU で処理しているのに、dGPU で処理しているディスプレイの映像を送ろうとしていたので何も映像が映らなくなっていた、ということだと思う。ちゃんと VR を処理する GPU とディスプレイに映像を映している GPU を揃えておかないといけないみたい。

で、VR ゲームをするときは自動的にメインディスプレイ側にフルスクリーン表示されるので、eGPU と接続したディスプレイ側をメインディスプレイにしないと、Mac 側 (dGPU 側) に VR ゲームの映像が表示されちゃって、何も映らなくなる、というわけ。

GPU が 2 つある状態 (dGPU: Radeon Pro 560X と eGPU: Radeon RX Vega 56) だったので、その 2 つがごちゃごちゃになっちゃっていたのが原因だったみたい。Boot Camp ドライバのアップデートで再起動されたときに、なぜだか eGPU のドライバが無効になっちゃって、でもそれのおかげで偶然にも dGPU 単体になったことで VR の映像が HMD に映るようになった。そこからなんとなくドライバ周りを疑って、デバイスマネージャーで片方のディスプレイドライバを無効にしたりしていてようやく原因を解決することができた。

最初に HMD に VR 映像が映ったとき、つまり偶然 eGPU のディスプレイドライバが無効になってうまくいったときには dGPU (Radeon Pro 560X) のパワーだったので 35 FPS くらいしか出ていなかったが、eGPU のパワーでやったら 70 FPS くらい出たのでちゃんと eGPU のパワーを活用しながら VR を楽しむことができた。

2 つの GPU を同時に使うことはたぶんできない (なんかタスクマネージャー見ると両方使っているような挙動をしているときもあったが) ので、A と B の 2 つの GPU があったときは、A で処理するなら A に接続されたディスプレイに表示する、B で処理するなら B に接続されたディスプレイに表示する、というふうにしないといけないということだ。いやー、eGPU はやっぱり難しい。

Windows PC なら dGPU にディスプレイをつなぐことになるし、たぶん GPU は 1 つしか使わないと思うからこんなめんどくさいことにはならなかっただろうなとは思うけど、これはこれで勉強になったから良しとしよう。

で、さっきの話にちょっと戻ると、これは macOS でも同じことが言えると思うので、macOS でも eGPU 側に外部ディスプレイをつないでおいたほうが良いかもしれない、と思ったのだった。

(this is a private diary)

SwitchBot カーテンの充電がめんどくさい

左側の SwitchBot カーテンのバッテリーが切れたので充電していた。

ただし、外したりつけたりするのがめちゃくちゃめんどくさい (カーテンレールから外したりつけたりする部分がめちゃくちゃ硬い) ので外したくなかった。なのでカーテンレールに取り付けたまま、Oculus Link 用に買った USB 3 ケーブル 3m を充電器まで伸ばして充電した。まさか Oculus Link 用の長いケーブルがここでも活躍するとは思わなかった。ちょうど Oculus Link で VR ゲームもできるようになったことだし、大活躍だ。

というか左側はソーラーパネルつけてたのになんでバッテリー切れになったんだ? というかこのソーラーパネル、つけてても全然充電できていない。これ不良品か?

(this is a private diary)

  1. いやでも原因不明でたまに映像が映らなくなることは Catalina でもあったな。でも OBS を再起動したりキャプチャボードを挿し直したりすれば解決していたので今回みたいに手こずったのはやっぱり Big Sur にしたからな気がする。 

  2. 今までは macOS では Mac と外部ディスプレイを USB-C で接続していた。