以下の構成の前提。
14インチ M1Macおよび14インチ M3Mac(動作検証中に買い替え)
Belkin CONNECT Pro 12-in-1 Thunderbolt 4 Dock(INC006qcSGY)経由でモニタ1に出力(音声・映像、その他USB機器も同様)
type-cおよびHDMIポートからモニタ2に出力
TL;DR
PCの負荷が高まりパフォーマンスが必要な状況で、Macの急速充電の要求ワット数に満たない場合に発生する
給電ワット数を96W(16インチの場合140W)以上にすることで解消
もしくは、低電力モードにすると解消する(可能性がある)
Thunderbolt経由の画面出力が頻繁に途切れる
特定のタイミング(VSCodeのリロードやesbuildのビルド、vitest run、docker build等)でThunderboltケーブルからの出力が停止する問題があった。
途切れる際にアクティビティモニタを見てみると、ディスクのI/Oが跳ねており、何らかのアプリが悪さをしている可能性を考えて常駐アプリ等を全て削除したが、改善しなかった。
これはのちに、単にThunderboltケーブルの再接続時に書き込みが発生しているだけだったっぽいことがわかった。
ケーブルやポートの変更、非クラムシェル化等を試したがダメ
こういう時のありがちなトラブルシュートを大体試したがダメで、唯一ThunderboltケーブルをApple純正のtype-cケーブル(あみあみのやつ)に替えた時だけ動くようになった。が、Thunderboltドックを使っていてそれはないのでボツ。
ケーブルの変更や非クラムシェル化が有効でなく、環境を使い回しているWindows PCでは発生しないため、Macの何かがイカれている説を考えた。
瞬断を繰り返していると、たまにクラッシュしてMacが再起動するので、クラッシュレポートをみると `com.apple.iokit.IOAudioFamily` `com.apple.UVCService` 等のワードが見え、ググるとハードウェアの故障系のディスカッションがヒットした。
M1 Macを使って3年弱だったので、M3 Macへ交換したが、新品にもかかわらず同現象が発生したため、次にOSのバグを疑った(Windowsでは発生しないという事実から、ドックの不良を考えていなかった)。
もう少し調べてみると、Appleシリコンを搭載したmacで頻繁に発生する現象らしく、カラープロファイルの変更等で解消することがあるとあったので試したが、ダメだった。
問題の切り分けをおこなってきたが、いよいよわからなくなってしまったので、会社のslackに投げてみたところ2画面出力をThunderboltケーブルで行っている人が複数おり、問題ないとのことだったのでやはり自分の環境が良くないという判断をした。
自分の環境で特有なのはBelkinのドックを使っていることなので、調べてみると同じ現象に悩まされているユーザーのレビューが多数あった。
その中に、「M2 Macではワット数が要求に満たないため使えない」というものがあり、一旦低電力モードにしてみると同現象は発生しなくなった。
給電を100W電源にする
自分の環境ではドックからの給電を行っていたが90W出力なため急速充電に必要なワット数に足りていない。また、Magsafeケーブルも一応取り付けていたがこちらも60Wで、90W給電の方が優先されるため実質使われていなかった。
そこで、Magsafeからの給電ワット数を90W以上かつ、急速充電に必要な値まで引き上げることで、同現象が解消するのではと考えた。MagsafeではAnker 525 Chaging Stationを使っていたが、これを新型の100W出力のものに交換した。
これで、ThunderboltケーブルではなくMagsafeのACアダプタからの給電が優先されるようになった。
低電力モードを辞めても、同現象が起こることがなくなった。
まとめ
急速充電に必要なワット数に満たない時にPCの負荷が上がると、Thunderboltケーブルでの外部出力が途切れることがある
低電力モードにして電力消費を抑えると解決することがある
急速充電に必要なワット数を担保すれば、どの電力モードでも発生しない
別件で、当ドックを使っていてHDMI出力が安定しないという人はファームウェアのアップデートで解消する可能性があるらしいので情報を置いておきます。