Any3DAny3D
·Any3D Team

OffscreenCanvas недоступен? Пошаговая диагностика по платформам и средам

troubleshootingbrowser-compatibilityoffscreencanvas

Наблюдаемые симптомы

Any3D выводит сообщение: «Текущий браузер не поддерживает OffscreenCanvas». Это один из ключевых компонентов для работы в фоновых потоках; без него процессы, требующие кодирования WebGL2 внутри Worker (например, сжатие текстур), не могут выполняться полноценно.

OffscreenCanvas позволяет создавать canvas и получать контекст WebGL внутри Web Worker, выполняя GPU-операции в фоне без блокировки основного потока страницы.

Основные причины

ПричинаТипичные сценарии
Устаревший браузер/WebViewChrome < 69, Safari < 16.4, старый Android WebView
Отключённое аппаратное ускорениеЭнергосберегающий режим или политика, отключающая GPU в Windows/macOS
Корпоративные политикиGPO, отключающие GPU; MDM, ограничивающие графические возможности
Встроенные WebViewWeChat, корпоративные приложения, устаревшие оболочки Electron
Сетевой уровеньВстречается редко; чаще проблема в загрузке скриптов, а не в самом API

Диагностика по платформам

Windows

  1. Chrome / Edge: Настройки → Система → Включите «Использовать аппаратное ускорение» → полностью закройте и перезапустите браузер.
  2. Видеодрайвер: В ноутбуках с двумя видеокартами убедитесь, что браузер использует дискретную (NVIDIA Control Panel / AMD Software).
  3. Групповые политики: Политики вроде «Отключить аппаратное ускорение» могут вызывать ошибку создания контекста WebGL для OffscreenCanvas.
  4. Удалённый рабочий стол (RDP): В некоторых сессиях RDP возможности GPU ограничены. Сравните с локальным входом.

macOS

  1. Safari 16.4+ или актуальная версия Chrome.
  2. Системные настройки → Батарея: Режим энергосбережения может снижать приоритет GPU. Попробуйте с включённой зарядкой.
  3. Экранное время обычно напрямую не отключает OffscreenCanvas, но если MDM ограничивает графические API, обратитесь в IT.

Linux

  1. Убедитесь, что Mesa/проприетарные драйверы работоспособны. Тестируйте актуальную версию Chrome как под Wayland, так и под X11.
  2. В безголовых серверах удалённые браузеры могут требовать виртуальный GPU (редко в потребительских сценариях).

iOS / iPadOS

  1. Safari обновляется вместе с системой (поддержка OffscreenCanvas полномерно появилась с iOS 16.4).
  2. Встроенный в приложение WebView может отставать от системного Safari — открывайте ссылки в самом Safari.
  3. Школьные iPad в管理模式 могут быть заблокированы на старых версиях — потребуется обновление администратором.

Android

  1. Обновите Chrome и Android System WebView.
  2. Некоторые китайские браузеры с нестандартным ядром не поддерживают API — переключитесь на быстрое ядро или используйте 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-политиками. Включите ускорение графики по платформе, обновите WebView или переключитесь на системный браузер — это обычно восстанавливает возможность GPU-кодирования в фоновых потоках.

Поддержите нас