OffscreenCanvas indisponível? Solução por plataforma e ambiente
Sintomas que você vê
O Any3D exibe a mensagem "O navegador atual não suporta OffscreenCanvas". Isso é um dos três componentes essenciais para o caminho do Worker; sem ele, fluxos que precisam de codificação WebGL2 no Worker (como compressão de texturas) não podem ser executados completamente.
O OffscreenCanvas permite criar um canvas em um Web Worker e obter um contexto WebGL, realizando operações de GPU em segundo plano sem bloquear a página.
Causas comuns
| Cenário típico | Descrição |
|---|---|
| Navegador/WebView antigo | Chrome < 69, Safari < 16.4, Android WebView antigo |
| Aceleração de hardware desativada | Windows/macOS em modo de economia ou política desabilita a GPU |
| Política corporativa | GPO desativa GPU, MDM restringe capacidades gráficas |
| WebView embutido | WeChat, aplicativos corporativos, shell antigo do Electron |
| Camada de rede | Raro; geralmente é falha no carregamento do script, não na API em si |
Solução por plataforma
Windows
- Chrome / Edge: Configurações → Sistema → Ativar "Usar aceleração de hardware" → Feche completamente e reinicie o navegador.
- Driver da placa de vídeo: Em notebooks com placa dupla, garanta que o navegador use a GPU dedicada (Painel de Controle NVIDIA / AMD Software).
- Política de grupo (GPO): Políticas do tipo "Desativar aceleração de hardware" podem impedir a criação do contexto WebGL do OffscreenCanvas.
- Área de Trabalho Remota (RDP): Algumas sessões de RDP têm capacidades de GPU limitadas; faça um teste comparativo com login local.
macOS
- Safari 16.4+ ou Chrome na versão mais recente.
- Configurações do Sistema → Bateria → O modo de baixa energia pode reduzir o agendamento da GPU; tente novamente conectado à corrente.
- Tempo de Tela geralmente não desativa o OffscreenCanvas diretamente, mas se o MDM restringir APIs gráficas, entre em contato com o setor de TI.
Linux
- Confirme que o driver Mesa/proprietário está funcionando; teste com o Chrome mais recente tanto no Wayland quanto no X11.
- Em servidores headless com navegador remoto, é necessária uma GPU virtual (raro em cenários pessoais).
iOS / iPadOS
- O Safari é atualizado com o sistema (a partir do iOS 16.4, o suporte ao OffscreenCanvas é mais completo).
- O WebView dentro do aplicativo pode estar desatualizado em relação ao Safari do sistema — abra o link no Safari.
- iPads escolares em modo supervisionado podem ter o sistema travado; peça ao administrador para atualizar.
Android
- Atualize o Chrome e o Android System WebView.
- Navegadores nacionais com núcleo de compatibilidade não suportam → mude para o modo rápido ou use o Chrome.
- Drivers de GPU antigos em dispositivos de baixa categoria: tente desativar o "Modo de economia" e repita.
Rede, VPN e ambiente corporativo
O OffscreenCanvas é uma API local e, geralmente, não é afetada diretamente por VPNs. No entanto, se a VPN fizer o navegador entrar em "modo seguro" ou carregar extensões corporativas que injetam scripts, pode indiretamente falhar:
- Desconecte a VPN para comparar;
- Verifique se o navegador corporativo força "renderização por software";
- Se estiver embutido em um iframe, confirme que o nível superior não bloqueia o Worker que usa WebGL.
Controles parentais e dispositivos supervisionados
- Family Link / Tempo de Tela: Raramente desativam o OffscreenCanvas diretamente; o mais comum é impedir a instalação de atualizações do navegador, tornando a API obsoleta — permita que o sistema seja atualizado automaticamente.
- Modo de biblioteca/exame: Pode usar um navegador personalizado; recomenda-se usar um dispositivo pessoal.
Correção passo a passo (geral)
- Atualize o navegador para a versão mínima ou superior da tabela acima.
- Ative a aceleração de hardware e reinicie o navegador.
- Use o navegador do sistema, não o WebView dentro de aplicativos.
- Se houver também erros com WebGL2, trate-os primeiro com o Guia de correção do WebGL2.
Autoverificação rápida
typeof OffscreenCanvas !== "undefined"
Retorna false significa que o ambiente atual não suporta essa API.
Resumo
A ausência do OffscreenCanvas é comum em navegadores/WebView antigos, aceleração de hardware desativada, acesso remoto no Windows ou políticas corporativas de GPU. Habilitar a aceleração de GPU por plataforma, atualizar o WebView e usar o navegador do sistema geralmente restaura a capacidade de codificação via GPU no Worker.