Any3DAny3D
·Any3D Team

OffscreenCanvas 不可?プラットフォーム別トラブルシューティング

troubleshootingbrowser-compatibilityoffscreencanvas

観測される症状

Any3D が「現在のブラウザは OffscreenCanvas をサポートしていません」と表示されます。これは Worker パスの主要コンポーネントの一つであり、不足するとテクスチャ圧縮など Worker 内で WebGL2 を使用するエンコーディングフローが正常に実行できなくなります。

OffscreenCanvas は Web Worker 内でキャンバスを作成し、WebGL コンテキストを取得することを可能にし、ページをブロックせずにバックグラウンドで GPU 操作を完了します。

一般的な原因

原因典型的なシナリオ
ブラウザ/WebView が古いChrome < 69、Safari < 16.4、古い Android WebView
ハードウェアアクセラレーションが無効Windows/macOS の省電力またはポリシーによる GPU 無効化
企業ポリシーGPO による GPU 無効化、MDM によるグラフィックス機能の制限
埋め込み WebViewWeChat、企業アプリ、古い Electron シェル
ネットワーク層罕見;大半は API 自体ではなくスクリプトの読み込み失敗によるもの

プラットフォーム別のトラブルシューティング

Windows

  1. Chrome / Edge:設定 → システム → 「ハードウェアアクセラレーションを使用する」を有効に → ブラウザを完全に終了して再起動
  2. グラフィックカードドライバー:ノートパソコンのデュアル GPU 構成では、ブラウザがディスクリート GPU(NVIDIA コントロールパネル / AMD Software)を使用していることを確認。
  3. グループポリシー:「ハードウェアアクセラレーションを無効にする」クラスのポリシーは、OffscreenCanvas WebGL コンテキストの作成を失敗させます。
  4. リモートデスクトップ(RDP):一部の RDP セッションでは GPU 機能が制限される場合があります。ローカルログインで比較テストを行ってください。

macOS

  1. Safari 16.4 以降 または 最新バージョンの Chrome
  2. システム設定 → バッテリー → 低消費電力モードでは GPU スケジューリングが低下する可能性があります;電源に接続して再試行。
  3. スクリーンタイム が OffscreenCanvas を直接無効にすることは稀ですが、MDM がグラフィックス API を制限している場合は IT 部門に連絡してください。

Linux

  1. Mesa/プロプライエタリドライバーが正常であることを確認;Wayland と X11 の両方で最新の Chrome を使用してテスト。
  2. ヘッドレスサーバーのリモートブラウザには仮想 GPU が必要(個人シナリオでは珍しい)。

iOS / iPadOS

  1. Safari はシステム更新に伴って更新されます(iOS 16.4 以降で OffscreenCanvas サポートがほぼ完全です)。
  2. アプリ内 WebView はシステム Safari より遅れている可能性がある → Safari でリンクを開いてください
  3. 学校の iPad の管理モードでは古いシステムがロックされている場合があり、管理者が更新する必要があります。

Android

  1. ChromeAndroid System WebView を更新。
  2. 国産ブラウザの互換コアは非対応 → 極速コアに切替または Chrome を使用。
  3. 低スペック端末の GPU ドライバーが古い場合:「省電力モード」を無効にして再試行。

ネットワーク、VPN、企業環境

OffscreenCanvas はローカル API であり、通常 VPN から直接影響を受けません。しかし、VPN がブラウザを「セーフモード」に劣化させたり、企業拡張機能によるスクリプト注入が行われたりすると、間接的に失敗する可能性があります:

  • VPN を切断して比較;
  • 企業ブラウザが「ソフトウェアレンダリング」を強制していないか確認;
  • iframe 内埋め込み時に、外側が Worker 内の WebGL を阻止していないことを確認。

ファミリー制御と管理デバイス

  • Family Link / スクリーンタイム:OffscreenCanvas を直接無効にすることは極めて稀です;より一般的なのは、ブラウザ更新のインストールを禁止することで API が古くなること → システムの自動更新を許可してください。
  • 試験所/図書館モード:カスタマイズされたブラウザが使用される場合があり、個人デバイスへの切替をお勧めします。

段階的な修正手順(汎用)

  1. ブラウザを上記の最低バージョン以上に更新。
  2. ハードウェアアクセラレーションを有効にしてブラウザを再起動。
  3. システムブラウザで開き、アプリ内 WebView を使用しない。
  4. WebGL2 に関するエラーも同時に発生している場合は、先に WebGL2 修正ガイド を処理。

クイックセルフテスト

typeof OffscreenCanvas !== "undefined"

false を返す場合、現在の環境はこの API をサポートしていません。

まとめ

OffscreenCanvas の欠落は、古いブラウザ/WebView、ハードウェアアクセラレーションの無効化、Windows リモート接続または企業 GPU ポリシー に多く見られます。プラットフォームに応じて GPU アクセラレーションを有効にし、WebView を更新し、システムブラウザに切り替えることで、Worker 内の GPU エンコーディング機能を通常回復できます。

応援する