Three.js: Erro ao criar contexto WebGL

Criado em 16 jun. 2014  ·  64Comentários  ·  Fonte: mrdoob/three.js

estou obtendo

Erro ao criar contexto WebGL.
TypeError não capturado: não é possível ler a propriedade 'getExtension' de nulo

em http://threejs.org/examples e em meu site http://arefin.in (r58).
chrome: // gpu / mostra tudo habilitado.

O que você acha que está errado ?

Browser Issue

Comentários muito úteis

O mesmo para mim. Descobri que minha GPU (Intel HD 3000) agora está na lista negra do Chrome (verifique a sua em chrome: // gpu /). Eu fui para chrome: // flags / e habilitei o --ignore-gpu-blacklist . Agora tudo voltou ao normal.

Todos 64 comentários

Você deve compartilhar as especificações do seu sistema. (CPU, sistema operacional, modelo da placa gráfica, versão dos drivers, navegador ...)

AMD FX-4130, Win 7 build 7600, GeForce GTX 650 rodando 9.18.13.2018, Chrome 35.0.1916.153 m.
As coisas estavam bem há cerca de uma semana. Estou administrando meu site desde maio de 2013.

Drivers mais recentes? Tentou em outro navegador?

Quer dizer, se as coisas funcionavam e você não mudou o código, provavelmente é algo relacionado ao sistema operacional, navegador e / ou drivers gráficos ...

Acho que o canal dev mais recente do Chrome no Windows está fazendo algo engraçado após a atualização. Após a atualização agora, threejs não pode criar o contexto webgl em nenhum exemplo - estava funcionando bem antes da atualização.

Versão do Chrome 37.0.2054.2 dev-m (64 bits)
Windows 8.1 64 bits
ATI Radeon HD 6800 series
Versão de embalagem do driver ATI 14.10.1006-140417a-171099C

chrome: // gpu shows
"WebGL: indisponível. Aceleração de hardware indisponível"
Também mostra que o sinalizador --disable-gpu foi passado para chrome.exe!

Eliminar todos os processos do chrome.exe e executar o chrome.exe diretamente (em C: \ Arquivos de programas (x86) Google \ ChromeApplication) parece resolver isso. Verifique seus atalhos para garantir que a sinalização não seja aprovada.

Talvez este não seja o mesmo problema, mas verifique-o primeiro se você vir o problema após a atualização.

Deixe-me tentar isso e retorno para você. Também vi esse problema aqui - http://japhr.blogspot.in/2014/05/webgl-in-chrome-36-linux-is-not-working.html

Obrigado

Agora tudo voltou ao normal. Eu acho que as coisas se consertaram quando o Chrome foi atualizado. A maioria das pessoas não enfrentou esse problema, talvez apenas um punhado. Ainda assim, o Chrome deve resolver problemas como esses.
Eu acho que você pode fechar este problema.
Obrigado

Reiniciar o Chrome corrigiu isso para mim.

ainda tenho um problema depois de reiniciar o Chrome meu Chrome Versão 37.0.2062.120 (64 bits) .... por favor me ajude a resolver esse problema.

e está no Ubuntu Linux 13.04

O Chrome para Linux mais recente é 39.0.2171.95.

Tenho o mesmo problema (erro ao criar contexto WebGL.) Com a versão mais recente, 39.0.217.95 (64 bits) no Ubuntu 14.10.

Desculpe ressuscitar este tópico, mas eu tenho o mesmo problema (erro ao criar o contexto WebGL, não é possível ler a propriedade getExtension de null), Chrome 47.0.2526.106 (64), Ubuntu 15.10, nVidia Optimus em gpu dedicado (three.js não funciona se eu configurá-lo como integrado). Eu realmente não me importo porque geralmente uso o Firefox, mas outras pessoas podem e isso me impede de testar com o Chrome.

O mesmo problema aqui, no canal Dev e no Canary, está acontecendo há semanas. three.js funciona no FF, mas não no Chrome. Um grande problema porque eu uso principalmente o Chrome.

Chrome 49.0.2609.0 canário (64 bits), 49.0.2593.0 dev-m (64 bits), Windows 8.1, nVidia Optimus

@jwlarocque @GameKyuubi

Nessas situações, é melhor verificar https://get.webgl.org/. Se a página não funcionar, não há nada que o three.js possa fazer a respeito e, em vez disso, você deve relatar o problema ao Google / Chrome.

Sim, está quebrado aí. Muito estranho que um problema como este fosse
despercebido por tanto tempo.
Em 2 de janeiro de 2016, às 17h09, "Mr.doob" [email protected] escreveu:

@jwlarocque https://github.com/jwlarocque @GameKyuubi
https://github.com/GameKyuubi

Nessas situações, é melhor verificar https://get.webgl.org/. Se isso
página não funciona, não há nada que three.js possa fazer sobre isso, e você
deve relatar o problema ao Google / Chrome.

-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/mrdoob/three.js/issues/4927#issuecomment -168372764.

Gostaria de salientar que, no meu Mac, que tem uma GPU Nvidia de comutação, modificar o comportamento da chave da GPU, por exemplo, com gfxCardStatus, provavelmente fará com que o Chrome falhe na criação do contexto até que você saia do Chrome e abra-o novamente. Essa é uma maneira de tornar o problema manifesto nesta máquina em particular.

Esse é o tipo de problema que um logout / reinicialização geralmente pode resolver muito bem.

Certifique-se de que essa opção esteja selecionada nas configurações do Chrome.
screen shot 2016-02-09 at 1 59 46 pm

Sim, esse não é o problema. Ele foi verificado o tempo todo, o problema ainda persiste, mesmo com a atualização mais recente do Chrome Canary e os drivers mais recentes da NVIDIA.

Isso parece ter acontecido aleatoriamente depois de fazer alguns testes intensos de um aplicativo Three.js. Em um momento, tudo estava renderizando bem, agora não consigo carregar nenhum contexto WebGL. A aceleração de hardware está ativada nas configurações. No entanto, em chrome: // gpu :

Rasterização: apenas software. Aceleração de hardware desativada
Canvas: apenas software, aceleração de hardware indisponível

Alguma ideia?

Também estou vendo esse problema no Linux. Reiniciar o Chrome não corrige isso.

Recebo o mesmo erro "Erro ao criar contexto WebGL". no Chrome 50.0.2661.75 m (64 bits) / Windows 7.
O driver deve estar bem, pois não tenho problemas para carregar a mesma página no Firefox.

@JamesMilnerUK Mesmo problema aqui, carreguei muitos modelos Collada, congelei o navegador até que ele travou e agora não consigo mais obter um contexto WebGL. Fechar / reabrir o Chrome não corrigiu. Você conseguiu encontrar uma solução?

Edit: Found a fix - teve que desmarcar a aceleração de hardware, reiniciar, verificar novamente e reiniciar novamente

Iniciado reiniciando o Chrome e reiniciando o Mac

Mac - Chrome - Versão 52.0.2743.116 (64 bits) - OK

Mac - Chrome Canary - Versão 55.0.2850.0 canário (64 bits) - FALHA

THREE.WebGLRenderer: Error creating WebGL context.WebGLRenderer @ three.js:19571
Uncaught TypeError: Cannot read property 'getExtension' of null
    at Object.get (three.js:16906)
    at new WebGLRenderer (three.js:19577)
    at init ((index):59)
    at (index):54
                    case 'WEBGL_depth_texture':
                        extension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );
                        break;

Tentei chrome://flags/ e habilitei este:

Extensões WebGL Draft Mac, Windows, Linux, Chrome OS, Android
A ativação desta opção permite que os aplicativos da web acessem as extensões WebGL que ainda estão em status de rascunho.

Ainda sem sorte ...

Canário? Você provavelmente deve relatar a regressão para o projeto Chromium.

S ** T !!!

Meu Chrome foi atualizado automaticamente - o estável está em 53.0.2785.101 e parou de funcionar, eu também ...

EDITAR:

Relatório de bug: https://bugs.chromium.org/p/chromium/issues/detail?id=645390

O mesmo para mim. Descobri que minha GPU (Intel HD 3000) agora está na lista negra do Chrome (verifique a sua em chrome: // gpu /). Eu fui para chrome: // flags / e habilitei o --ignore-gpu-blacklist . Agora tudo voltou ao normal.

O Chrome às vezes adiciona drivers à sua lista negra entre os lançamentos. Meu Samsung Galaxy S6 não tinha o webgl 1 mês e no mês seguinte tinha porque o Chrome o removeu da lista negra. As coisas também podem acontecer de outra maneira. Você pode ignorar a lista negra por sua própria conta e risco. Eu ignorei com meu telefone, e tudo _disse_ funcionou bem.

ie + firefox funcionou, o cromo mais recente não foi um dos meus dev. sistemas, drivers Nvideo Quadro mais recentes para placa de 2011 ...
Corrigido acessando as configurações avançadas do Chrome - Use hardware Acc. GFX foi desmarcado, verificado - reiniciado e agora funcionando

Sinto falta do flash :-( - Simplesmente não posso esperar que os usuários finais tenham esse aborrecimento

Estou recebendo a mesma exceção após períodos indeterminados de tempo no Chrome. Isso acontece muito ocasionalmente e só parece quando é uma cena em tela cheia, mas a única maneira de consertar que eu encontrei até agora é reiniciar o navegador, o que não é bom o suficiente em um site público! Posso criar contextos por um bom tempo, mas de repente ele vai falhar quando tento new THREE.WebGLRenderer() novamente, então não pode ser devido a cartões gfx na lista negra. Não consigo reproduzi-lo ad-hoc, o que o torna virtualmente impossível de corrigir. Alguém tem alguma ideia de como rastrear a causa raiz?

A aceleração de hardware está ativada.

Error creating WebGL context.
Uncaught TypeError: Cannot read property 'getExtension' of null

sim, acontecendo comigo também a partir de agora - Chrome no Macbook Pro OS 10.11.5

@deejbee @cindyloo seria útil se vocês pudessem compartilhar suas informações de hardware.

@mrdoob É Intel HD Graphics 530 rodando Win10. A versão do driver é 4.4.0 Build 10.18.15.4279. É um Dell Optiplex 7040

Relatório GPU Caps Viewer v1.31.1.0

mesmo aqui

Talvez um fallback no CanvasRenderer nesse caso?

Que diabos, isso está acontecendo no Win10 com o Chrome atual, alguma nova dica sobre como resolver isso? Funciona até no Internet Explorer :)

@ alberto2000 qual GPU você tem?

@mrdoob era uma placa Radeon e reinstalar os drivers resolveu.

recebendo isso também, não com frequência, mas ocasionalmente.

SO
Mac OS 10.11.6
Navegador
Chrome 54.0.2840.98

Para qualquer um que tenha lido isso em 2017, eu consertei no meu MacBook Pro no final de 2011, desativando a troca automática da placa de vídeo do economizador de energia para forçar a GPU de alto desempenho a assumir o controle o tempo todo.

Ainda estou vendo isso vindo de nossos logs de servidor. Mais recente foi de:
SO: Windows 10
Navegador: Chrome 55.0.2883.87

Observação: estamos executando a versão r74 (até que o problema de névoa que foi resolvido recentemente seja incorporado em uma nova versão 👍)

Observação: estamos executando a versão r74 (até que o problema de névoa que foi resolvido recentemente seja incorporado em uma nova versão 👍)

Qual problema de névoa?

Ah, entendo!

Ativar "usar aceleração de hardware quando disponível" nas configurações avançadas do Chrome corrigiu meu problema

Eu vi esse erro aparecer no sistema de rastreamento de erros que uso. Caso seja útil, aqui estão as informações do sistema para o usuário que teve um bug, conforme capturado pelo rastreador:

Agente do usuário: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 56.0.2924.87 Safari / 537.36
SO: Mac OS X 10.12.3
Navegador: Chrome 56.0.2924

E aqui está o que o rastreador de erros detectou no console:

THREE.WebGLRenderer 84
THREE.WebGLRenderer: Error creating WebGL context.
TypeError: Cannot read property 'getExtension' of null

Essas informações do sistema não contêm os detalhes da placa gráfica para serem totalmente úteis.

Placa de vídeo: Intel HD Graphics 4000 1024 MB

Consegui falar com o usuário que encontrou esse erro e ele passou as informações da placa de vídeo acima. Espero que ajude! Obrigado!

@kenrussell O Intel HD Graphics 4000 é baclkisted? Na verdade, existe uma lista pública de placas gráficas na lista negra?

@mrdoob Não, o Intel HD 4000 não está na lista negra.

Precisa do conteúdo de about: gpu (texto simples é preferível, basta copiar / colar) para diagnosticar problemas como este.

Se o cartão estiver na lista negra, o motivo será descrito nessa página.

Esses dois arquivos descrevem quais GPUs estão na lista negra e quais têm soluções alternativas para bugs de driver aplicadas.

https://cs.chromium.org/chromium/src/gpu/config/software_rendering_list_json.cc

https://cs.chromium.org/chromium/src/gpu/config/gpu_driver_bug_list_json.cc

Observe, porém, que uma refatoração está em andamento, portanto, esses dois arquivos provavelmente serão substituídos por arquivos .json no mesmo diretório nas próximas duas semanas. Consulte http://crbug.com/691703 .

Eu tenho o mesmo erro...
Parece que o Intel HD 2000 está na lista negra do Chrome 58.0.3029.81 (64 bits), Ubuntu 14.04
Eu defino chrome: // flags / --ignore-gpu-blacklist; e funciona bem.

Se for de alguma ajuda para alguém olhando para isso de um ângulo diferente. Recebo este erro ao tentar montar um componente de reação contendo TRÊS bits e bobs ao tentar testá-lo.

Estou tornando-o não testável por enquanto.

@YoneMoreno Não vejo Error creating WebGL context. em seu problema. O que o faz pensar que está tendo o mesmo problema?

Por que está fechado? Parece que muitas pessoas ainda estão enfrentando esse problema.

@nicolethenerd Infelizmente, não há nada que possamos fazer na biblioteca.

Você pode adicionar uma mensagem de erro mais útil. Folheando este tópico, é difícil ter uma noção de qual era realmente a resolução - as pessoas afirmam ter resolvido isso mudando alguns sinalizadores diferentes.

Se a solução for mais complicada do que pode caber em uma mensagem de erro, fazer o link da mensagem para uma página de perguntas frequentes que explica o problema e recomenda quais sinalizadores definir, dependendo do seu navegador.

Se este é um erro comum que não pode ser resolvido corrigindo a biblioteca, talvez adicione-o a uma seção de perguntas frequentes do site de demonstração.

@nicolethenerd Se bem me lembro, era o sinalizador de aceleração de hardware do Chrome que precisava ser ativado no meu MacBook Pro 2012.

A placa de vídeo é apenas um dos motivos pelos quais o contexto não pode ser criado. Não queremos adicionar uma mensagem que possa ser enganosa.

Talvez pudéssemos começar a coletar motivos.

No entanto, não devemos recomendar aos usuários a desativação da lista negra. Se essas placas gráficas foram colocadas na lista negra é devido a bugs e / ou razões de segurança.

Eu vi essa resposta quando tinha muitas guias com cenas WebGL abertas ao mesmo tempo.

Mesmo erro para mim com Version 72.0.3626.121 (Official Build) Arch Linux (64-bit) . Funciona com Firefox 65.0.1 no mesmo sistema operacional.

GPU: NVidia 2080TI.

Certifique-se de que essa opção esteja selecionada nas configurações do Chrome.
screen shot 2016-02-09 at 1 59 46 pm
Depois de reiniciar a configuração do chrom, o WebGL funciona corretamente como antes.
Boa resposta.

Erro: falha ao criar o contexto WebGL: falha na criação do WebGL:

  • GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0 é <8!

Estou recebendo isso agora, no Firefox 74. Forcei webgl.force-enabled = true na configuração, habilitei a aceleração de hardware, nada. Funcionou muito bem para mim em 66, mas acho que sua atualização "quântica" quebrou quase tudo, incluindo o webgl para mim.

Certifique-se de não chamar o inicializador de contexto WebGL de um ouvinte (por exemplo, tente escrevê-lo em sua função init com um sinalizador booleano para interromper o loop ou declarando gl como variável global). O primeiro funcionou para mim e exibe o contexto corretamente.

EDITAR: Na verdade, acabei encontrando a tela WebGL dentro do renderizador (THREE.WebGLRenderer). Usei o método canvas renderer.getContext (). Canvas e adicionei o listener webglcontextlost, que por sua vez chamou a função handleContextLost com init ().

function handleContextLost() {
    event.preventDefault();
    cancelAnimationFrame(requestId)
    init();
}

canvas.addEventListener("webglcontextlost", handleContextLost, false)

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jlaquinte picture jlaquinte  ·  3Comentários

donmccurdy picture donmccurdy  ·  3Comentários

Horray picture Horray  ·  3Comentários

fuzihaofzh picture fuzihaofzh  ·  3Comentários

boyravikumar picture boyravikumar  ·  3Comentários