「あのかぼ」のスピンオフサイト「ゼロかぼ」ができました。 詳しくはこちら>

OpenCore Legacy Patcher、一部のMacでGoogle ChromeやDiscordに問題発生 実験的なelectron_patcherが爆誕

Mac

OpenCore Legacy Patcher、一部のMacでGoogle ChromeやDiscordに問題発生 実験的なelectron_patcherが爆誕

OpenCore Legacy Patcher(OCLP)を開発するDortania(ドルタニア)は8月11日、GitHubにてOCLPを利用しているMacうちAMD GCN(Graphics Core Next)アーキテクチャを使用するGPUを搭載するMacで特定のバージョン以降のGoogle ChromeやElectronベースのアプリケーション (例: Discord)で発生する描画の不具合が発生することを発表しました。

また同発表の翌日にあたる8月12日にはOpenGL レンダラーを強制する実験的なスクリプトが緊急リリースされ、Google ChromeやElectronベースのアプリケーションの問題の迅速な対処が可能になりました。

問題の概要

この問題の原因は、特定のレンダリング技術に起因している可能性が高く、特にGoogle Chromeの新しいバージョンでのデフォルト設定が影響していると考えられています。現在、開発者コミュニティではこの問題に対する恒久的な解決策を模索中ですが、現時点では正式な修正パッチは提供されていません。

GitHubより

問題が発生する恐れのある環境

この問題は、特に以下のAMD製GPUを搭載したMacで確認されています。

  • AMD HD 7000シリーズ
  • FirePro D300/D500/D700 (MacPro6,1)
  • R9 M370X (MacBookPro11,5)

これらのハードウェアを使用しているユーザーは、Google Chrome 125以降やDiscordなどのElectronベースのアプリを使用中に、以下のような問題が発生する可能背があります。

  • 重度のUIグリッチ: 画面表示が乱れ、操作が困難になる。
  • アプリの完全なフリーズ: アプリケーションが応答しなくなり、再起動が必要になる。

これまでのところ、他の主要なChromiumベースのブラウザ (Microsoft Edge、Opera)は正常に動作しているとの報告がありますが、OCLPのプロジェクトリーダーであるミコラ氏(khronokernel)はこれらも将来的に同様の問題が発生する可能性があると警告しています。

この問題の暫定的な解決方法

OpenCore Legacy Patcherを開発するDortaniaは、この問題に対応するための緊急パッチをリリースしました。このパッチは、影響を受けるシステムにOpenGLレンダリングを強制することで、問題を回避する仕組みとなっています。

影響を受けているユーザーは、以下の手順に従うことで問題を回避することができます。

▼ Google Chromeの修正 (パッチを使用しない方法)

最も簡単な回避策は、Google Chromeを以下のコマンドを使ってターミナルから起動することです。

open /Applications/Google\ Chrome.app --args --use-angle=gl

このコマンドにより、Google ChromeはデフォルトのANGLEバックエンドの代わりにOpenGLを使用するようになります。また、これで問題が解決した場合Google Chromeの設定ページ(chrome://flags/#use-angle)でOpenGLをレンダリングバックエンドとして恒久的に設定することも可能です。

  • Google Chromeの起動を確認し、不具合が発生しないことを確認したらGoogle Chromeのアドレスバーに「chrome://flags/#use-angle」と入力します。
  • “Choose ANGLE graphics backend”のプルダウンメニューから「OpenGL」に切り替えます。

その他の回避策

パッチの適用以外にも、以下の方法で問題を回避することができます。

  • Google Chromeのバージョンをダウングレード: Google Chromeをバージョン124以前にダウングレードし、アップデートをブロックすることで、問題の発生を防ぐことができます。
  • 他のブラウザを使用する: Chromeの代わりに、他のChromiumベースのブラウザやSafariなどを使用することで問題を回避できます。

▼ Electronベースのアプリケーション(Discordなど)の修正 (パッチを使用しない方法)

Electronベースのアプリケーションの場合にはUIを操作できなくなる問題が発現される可能性があることがあります。

ただしDiscord やその他の Electron ベースのアプリケーションはGoogle Chromeのようなフラグの設定をサポートしていない可能性があるためmacOSに搭載されている「Automator」を使用して操作を自動化する方法が紹介されています。

Automator

Automatorを使用した主な作業

「Automator」で適切なパス (この場合は Discord) を使用してシェル スクリプトを作成し、アプリを保存して、作成したアイコンを使用して起動します。

open /Applications/Discord.app --args --use-angle=gl

▼ 実験的なパッチ (electron_patcher)を使用して解決する方法

Electronベースのアプリケーションに関しては、ミコラ氏がGitHubで配布している実験的なスクリプト「electron_patcher.py」が利用可能です。このスクリプトを使うことで、これらのアプリでもOpenGLレンダラーを強制的に使用することができます。

electron_patcherの使用方法

  • Python 3.11以上をインストール: まず、Pythonの最新版をインストールします。
  • electron_patcher.pyのダウンロード: スクリプトをGitHubのGistからダウンロードします。
  • スクリプトの実行: ターミナルを開き、以下のコマンドを実行します(パスはダウンロードした場所に応じて変更してください)
python3 ~/Downloads/electron_patcher.py
GitHubより

恒久的な解決策を模索中

現在、OpenCore Legacy Patcherの開発者コミュニティはこの問題に対する恒久的な解決策を模索中であり、正式な修正パッチの提供が待たれています。コミュニティのメンバーは、問題の発見とその対策に関して迅速に対応しており、ミコラ氏を中心に多くの有志がこの問題の解決に向けて貢献しています。

今後のアップデートでは、これらの問題に対する恒久的な解決策が組み込まれる可能性が高く、特に古いMacユーザーにとっては、安定した動作が再び実現することが期待されています。

まとめ

OpenCore Legacy Patcherを利用しているMacユーザーにとって、Google ChromeやDiscordなどのアプリケーションで発生しているUIグリッチやフリーズの問題は深刻な課題となっています。しかし、ミコラ氏を始めOpenCore Legacy Patcherの開発陣は早速対策に着手。暫定的な解決策としてelectron_patcher.pyが提供されています。

今秋に公開予定のmacOS Sequoiaサポートに向け開発が進められている中ですが、今後の開発にも注目が集まります。

弊ブログ(あのかぼ)と姉妹メディア(おんかぼ)では引き続き、OpenCore Legacy Patcherの最新情報やmacOS Sequoia関連のニュースを紹介していきます。記事の更新については、かぼしーのTwitterアカウントHumin.meで紹介しますので、ぜひフォローいただけると幸いです。