Three.js: Fehler beim Erstellen des WebGL-Kontexts

Erstellt am 16. Juni 2014  ·  64Kommentare  ·  Quelle: mrdoob/three.js

ich bekomme

Fehler beim Erstellen des WebGL-Kontexts.
Nicht abgefangener TypeError: Die Eigenschaft 'getExtension' von null kann nicht gelesen werden

auf http://threejs.org/examples und meiner Website http://arefin.in (r58).
chrome:// gpu / zeigt alles aktiviert an.

Was denkst du ist falsch?

Browser Issue

Hilfreichster Kommentar

Gleiche für mich. Ich habe herausgefunden, dass meine GPU (Intel HD 3000) jetzt in Chrome auf der schwarzen Liste steht (prüfen Sie Ihre unter chrome://gpu/). Ich ging zu chrome://flags/ und aktivierte das --ignore-gpu-blacklist Flag. Jetzt ist alles wieder normal.

Alle 64 Kommentare

Sie sollten Ihre Systemspezifikationen teilen. (CPU, OS, Grafikkartenmodell, Treiberversion, Browser...)

AMD FX-4130, Win 7 Build 7600, GeForce GTX 650 mit 18.09.2018, Chrome 35.0.1916.153 m.
Vor einer Woche war noch alles in Ordnung. Betreibe meine Website seit Mai 2013.

Neueste Treiber? In einem anderen Browser probiert?

Ich meine, wenn die Dinge früher funktioniert haben und Sie den Code nicht geändert haben, hat es wahrscheinlich etwas mit dem Betriebssystem, dem Browser und / oder den Grafiktreibern zu tun ...

Ich denke, der neueste Entwicklerkanal Chrome unter Windows macht nach dem Update etwas Lustiges. Nach dem Update kann Threejs in keinem Beispiel den Webgl-Kontext erstellen - hat direkt vor dem Update gut funktioniert.

Chrome-Version 37.0.2054.2 dev-m (64-Bit)
Windows 8.1 64-Bit
ATI Radeon HD 6800-Serie
ATI-Treiberpaketversion 14.10.1006-140417a-171099C

chrome://gpu zeigt
"WebGL: Nicht verfügbar. Hardwarebeschleunigung nicht verfügbar"
Es zeigt auch, dass das Flag --disable-gpu an chrome.exe übergeben wurde!

Das Beenden aller chrome.exe-Prozesse und das Ausführen durch direktes Ausführen von chrome.exe (in C:\Program Files (x86)Google\ChromeApplication) scheint dies zu lösen. Überprüfen Sie Ihre Verknüpfungen, um sicherzustellen, dass die Flagge nicht überschritten wird.

Möglicherweise ist dies nicht dasselbe Problem, aber überprüfen Sie dies zuerst, wenn dieses Problem nach der Aktualisierung auftritt.

Lass mich das versuchen und melde mich wieder. Ich habe dieses Problem auch hier gesehen - http://japhr.blogspot.in/2014/05/webgl-in-chrome-36-linux-is-not-working.html

Vielen Dank

Jetzt ist alles wieder normal. Ich denke, die Dinge haben sich beim Chrome-Update von selbst behoben? Die meisten Leute hatten dieses Problem nicht, vielleicht nur eine Handvoll. Dennoch sollte Chrome solche Probleme beheben.
Ich denke, Sie können dieses Thema schließen.
Vielen Dank

Ein Neustart von Chrome hat dies für mich behoben.

Ich habe immer noch ein Problem nach dem Neustart von Chrome My Chrome Version 37.0.2062.120 (64-Bit)....Bitte helfen Sie mir, dieses Problem zu beheben.

und es ist unter ubuntu linux 13.04

Das neueste Chrome für Linux ist 39.0.2171.95.

Ich habe das gleiche Problem (Fehler beim Erstellen von WebGL-Kontext.) mit der neuesten Version 39.0.217.95 (64-Bit) unter Ubuntu 14.10.

Sorry, dass ich diesen Thread wiederbeleben muss, aber ich habe das gleiche Problem (Fehler beim Erstellen von WebGL-Kontext, Cannot read property getExtension of null), Chrome 47.0.2526.106 (64), Ubuntu 15.10, nVidia Optimus auf dedizierter GPU (three.js läuft nicht) überhaupt, wenn ich es auf integriert stelle). Es ist mir egal, weil ich im Allgemeinen Firefox verwende, aber andere Leute könnten und es hindert mich daran, mit Chrome zu testen.

Dasselbe Problem hier, sowohl auf dem Dev-Kanal als auch auf Canary, es passiert seit Wochen. Three.js funktioniert auf FF, aber nicht auf Chrome. Ziemlich großes Problem, da ich hauptsächlich Chrome verwende.

Chrome 49.0.2609.0 Canary (64-Bit), 49.0.2593.0 dev-m (64-Bit), Windows 8.1, nVidia Optimus

@jwlarocque @GameKyuubi

In dieser Situation ist es am besten, https://get.webgl.org/ zu überprüfen

Ja, da ist es kaputt. Wirklich seltsam, dass so ein Problem gehen würde
so lange unbemerkt.
Am 2. Januar 2016, 17:09 Uhr, schrieb "Mr.doob" [email protected] :

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

In dieser Situation ist es am besten, https://get.webgl.org/ zu überprüfen
Seite funktioniert nicht, Three.js kann nichts dagegen tun, und du
sollte das Problem stattdessen an Google/Chrome melden.


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/mrdoob/three.js/issues/4927#issuecomment -168372764.

Ich möchte darauf hinweisen, dass auf meinem Mac, der über eine wechselnde Nvidia-GPU verfügt, das Ändern des GPU-Umschaltverhaltens z. B. mit gfxCardStatus wahrscheinlich dazu führt, dass Chrome den Kontext nicht erstellt, bis Sie Chrome beenden und erneut öffnen. Dies ist eine Möglichkeit, das Problem auf diesem bestimmten Computer zu manifestieren.

Dies ist die Art von Problem, die ein Abmelden/Neustart oft recht gut beheben kann.

Stellen Sie sicher, dass diese Option in Ihren Chrome-Einstellungen ausgewählt ist.
screen shot 2016-02-09 at 1 59 46 pm

Ja das ist überhaupt nicht das Problem. Es wurde die ganze Zeit überprüft, das Problem besteht auch mit dem neuesten Chrome Canary-Update und den neuesten NVIDIA-Treibern weiterhin.

Dies scheint zufällig passiert zu sein, nachdem eine Three.js-App intensiv getestet wurde. In einem Moment war alles in Ordnung, jetzt kann ich keine WebGL-Kontexte laden. Die Hardwarebeschleunigung ist in den Einstellungen aktiviert. Allerdings in chrome://gpu :

Rasterung: Nur Software. Hardwarebeschleunigung deaktiviert
Canvas: Nur Software, Hardwarebeschleunigung nicht verfügbar

Irgendwelche Ideen?

Ich sehe dieses Problem auch unter Linux. Ein Neustart von Chrome behebt es nicht.

Ich erhalte die gleiche Fehlermeldung "Fehler beim Erstellen des WebGL-Kontexts". unter Chrome 50.0.2661.75 m (64-Bit) /Windows 7.
Der Treiber sollte in Ordnung sein, da ich keine Probleme beim Laden derselben Seite in Firefox habe.

@JamesMilnerUK Gleiches Problem hier, viele Collada-Modelle geladen, den Browser eingefroren, bis er abgestürzt ist und jetzt kann ich keinen WebGL-Kontext mehr abrufen. Das Schließen/Neuöffnen von Chrome hat das Problem nicht behoben. Konnten Sie eine Lösung finden?

Bearbeiten: Fix gefunden - musste die Hardwarebeschleunigung deaktivieren, neu starten, erneut überprüfen und erneut starten

Begonnen mit dem Neustart von Chrome und dem Neustart von Mac

Mac – Chrome – Version 52.0.2743.116 (64-Bit) – OK

Mac - Chrome Canary - Version 55.0.2850.0 Canary (64-Bit) - FAIL

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;

Ich habe chrome://flags/ ausprobiert und dieses aktiviert:

WebGL Draft Extensions Mac, Windows, Linux, Chrome OS, Android
Durch Aktivieren dieser Option können Webanwendungen auf die WebGL-Erweiterungen zugreifen, die sich noch im Entwurfsstatus befinden.

Immer noch kein Glück...

Kanarienvogel? Sie sollten die Regression wahrscheinlich dem Chromium-Projekt melden.

NS!!!

Mein Chrome hat sich automatisch aktualisiert - der Stall ist bei 53.0.2785.101 und funktioniert nicht mehr, also habe ich ...

BEARBEITEN:

Fehlerbericht: https://bugs.chromium.org/p/chromium/issues/detail?id=645390

Gleiche für mich. Ich habe herausgefunden, dass meine GPU (Intel HD 3000) jetzt in Chrome auf der schwarzen Liste steht (prüfen Sie Ihre unter chrome://gpu/). Ich ging zu chrome://flags/ und aktivierte das --ignore-gpu-blacklist Flag. Jetzt ist alles wieder normal.

Chrome fügt zwischen den Veröffentlichungen manchmal Treiber zu seiner schwarzen Liste hinzu. Mein Samsung Galaxy S6 hatte 1 Monat kein Webgl und im nächsten Monat war es so, weil Chrome es von der Blacklist entfernt hat. Es kann auch anders laufen. Sie können die Blacklist jedoch auf eigene Gefahr ignorieren. Ich ignorierte es mit meinem Telefon, und alles _hat_ gut funktioniert.

dh + firefox funktionierte, Chrome neueste hat keiner meiner Entwickler. Systeme, neueste Nvideo Quadro-Treiber für 2011-Karte...
Behoben durch Aufrufen der erweiterten Einstellungen von Chrome - Verwenden Sie Hardware Acc. GFX wurde deaktiviert, überprüft - neu gestartet und funktioniert jetzt

Ich vermisse Flash :-( - Ich kann einfach nicht erwarten, dass Endbenutzer diesen Ärger durchmachen

Ich erhalte die gleiche Ausnahme nach unbestimmter Zeit in Chrome. Es passiert nur sehr gelegentlich und es scheint nur so zu sein, wenn es sich um eine Vollbildszene handelt, aber die einzige Möglichkeit, das Problem zu beheben, die ich bisher finden kann, besteht darin, den Browser neu zu starten, was auf einer öffentlichen Website nicht gut genug ist! Ich kann eine ganze Weile lang Kontexte erstellen, aber plötzlich wird es fehlschlagen, wenn ich erneut versuche, new THREE.WebGLRenderer() zu erstellen, also kann es nicht an einer schwarzen Liste der gfx-Karten liegen. Ich bin jedoch nicht in der Lage, es ad-hoc zu reproduzieren, was es praktisch unmöglich macht, es zu beheben. Hat jemand eine Idee, wie man der Ursache auf die Spur kommt?

Die Hardwarebeschleunigung ist aktiviert.

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

ja, passiert mir ab sofort auch - Chrome auf Macbook Pro OS 10.11.5

@deejbee @cindyloo es wäre hilfreich, wenn ihr eure Hardware-Informationen teilen könntet .

@mrdoob Es ist Intel HD Graphics 530 mit Win10. Die Treiberversion ist 4.4.0 Build 10.18.15.4279. Es ist ein Dell Optiplex 7040

Bericht zum GPU-Caps-Viewer v1.31.1.0

Ich auch

Vielleicht in einem solchen Fall auf CanvasRenderer zurückgreifen?

Was zur Hölle passiert das unter Win10 mit aktuellem Chrome, gibt es einen neuen Hinweis, wie man das lösen kann? Funktioniert sogar im Internet Explorer :)

@alberto2000 welche GPU hast du?

@mrdoob es war eine Radeon-Karte und eine Neuinstallation der Treiber hat es gelöst.

bekomme dies auch, nicht oft, aber gelegentlich.

Betriebssystem
Mac OS 10.11.6
Browser
Chrom 54.0.2840.98

Für alle, die dies im Jahr 2017 gelesen haben, habe ich dies auf meinem MacBook Pro Ende 2011 behoben, indem ich die automatische Umschaltung der Grafikkarte im Energiesparmodus deaktiviert habe, um zu erzwingen, dass die Hochleistungs-GPU die ganze Zeit übernimmt.

Ich sehe immer noch, dass diese aus unseren Serverprotokollen eingehen. Zuletzt war von:
Betriebssystem: Windows 10
Browser: Chrome 55.0.2883.87

Hinweis: Wir führen Release r74 aus (bis das kürzlich behobene Nebelproblem in einem neuen Release zusammengeführt wird 👍)

Hinweis: Wir führen Release r74 aus (bis das kürzlich behobene Nebelproblem in einem neuen Release zusammengeführt wird 👍)

Welches Nebelproblem?

Ah ich sehe!

Das Aktivieren von "Hardwarebeschleunigung verwenden, wo verfügbar" in den erweiterten Einstellungen von Chrome hat mein Problem behoben

Ich habe gesehen, dass dieser Fehler in dem von mir verwendeten Fehlerverfolgungssystem auftaucht. Falls es hilfreich ist, hier sind die Systeminformationen für den Benutzer, der einen vom Tracker erfassten Fehler hatte:

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/56.0.2924.87 Safari/537.36
Betriebssystem: Mac OS X 10.12.3
Browser: Chrome 56.0.2924

Und hier ist, was der Error Tracker in der Konsole abgefangen hat:

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

In diesen Systeminformationen fehlen die Grafikkartendetails, um vollständig nützlich zu sein.

Grafikkarte: Intel HD Graphics 4000 1024 MB

Ich konnte mit dem Benutzer sprechen, der auf diesen Fehler gestoßen ist, und er hat die obigen Grafikkarteninformationen weitergegeben. Ich hoffe, das hilft! Dankeschön!

@kenrussell Wird Intel HD Graphics 4000 gesperrt? Gibt es tatsächlich eine öffentliche Liste von Grafikkarten auf der schwarzen Liste?

@mrdoob Nein, die Intel HD 4000 steht nicht auf der schwarzen Liste.

Benötigen Sie den Inhalt von about:gpu (Klartext wird bevorzugt, nur kopieren/einfügen), um Probleme wie dieses zu diagnostizieren.

Wenn die Karte auf der schwarzen Liste steht, wird der Grund auf dieser Seite beschrieben.

In diesen beiden Dateien wird beschrieben, welche GPUs auf der schwarzen Liste stehen und auf welche Problemumgehungen für Treiberfehler angewendet wurden.

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

Beachten Sie jedoch, dass eine Umgestaltung im Gange ist, sodass diese beiden Dateien wahrscheinlich in den nächsten ein oder zwei Wochen durch .json-Dateien im selben Verzeichnis ersetzt werden. Siehe http://crbug.com/691703 .

Ich habe den gleichen Fehler...
Es scheint, als ob Intel HD 2000 in Chrome 58.0.3029.81 (64-Bit), Ubuntu 14.04 . auf der schwarzen Liste steht
Ich setze chrome ://flags/ --ignore-gpu-blacklist ; und es funktioniert gut.

Wenn es jemandem hilft, der das aus einem anderen Blickwinkel betrachtet. Ich erhalte diesen Fehler, wenn ich versuche, eine Reaktionskomponente zu mounten, die DREI Bits und Bobs enthält, wenn ich versuche, sie zu testen.

Ich mache es vorerst als nicht testbar.

@YoneMoreno Ich sehe in deinem Problem kein Error creating WebGL context. . Was lässt Sie glauben, dass Sie das gleiche Problem haben?

Warum ist das geschlossen? Es sieht so aus, als ob viele Leute dieses Problem immer noch haben.

@nicolethenerd Leider gibt es in der Bibliothek nichts, was wir tun können.

Sie könnten eine hilfreichere Fehlermeldung hinzufügen. Wenn man diesen Thread durchblättert, ist es schwer, ein Gefühl dafür zu bekommen, was die Auflösung tatsächlich war - die Leute behaupten, dies gelöst zu haben, indem sie ein paar verschiedene Flags geändert haben.

Wenn die Lösung komplizierter ist, als in eine Fehlermeldung hineinpasst, können Sie die Nachricht zu einer FAQ-Seite verlinken, die das Problem erklärt und empfiehlt, welche Flags je nach Browser zu setzen sind.

Wenn dies ein häufiger Fehler ist, der nicht durch das Reparieren der Bibliothek behoben werden kann, fügen Sie ihn vielleicht zu einem FAQ-Bereich der Demo-Site hinzu?

@nicolethenerd Wenn ich mich richtig erinnere, musste das Hardwarebeschleunigungs-Flag von Chrome für mein MacBook Pro 2012 aktiviert werden.

Die Grafikkarte ist nur einer der Gründe, warum der Kontext nicht erstellt werden kann. Wir möchten keine Nachricht hinzufügen, die irreführend sein könnte.

Vielleicht könnten wir anfangen, Gründe zu sammeln.

Wir sollten Benutzern jedoch nicht empfehlen, die Blacklist zu deaktivieren. Wenn diese Grafikkarten auf die schwarze Liste gesetzt wurden, liegt dies an Fehlern und/oder Sicherheitsgründen.

Ich habe diese Antwort gesehen, als ich zu viele Registerkarten mit gleichzeitig geöffneten WebGL-Szenen hatte.

Gleicher Fehler bei mir mit Version 72.0.3626.121 (Official Build) Arch Linux (64-bit) . Funktioniert mit Firefox 65.0.1 auf demselben Betriebssystem.

GPU: NVidia 2080TI.

Stellen Sie sicher, dass diese Option in Ihren Chrome-Einstellungen ausgewählt ist.
screen shot 2016-02-09 at 1 59 46 pm
Nach dem Neustart der Chrom-Einstellung funktioniert das WebGL wie zuvor.
Gute Antwort.

Fehler: WebGL-Kontext konnte nicht erstellt werden: WebGL-Erstellung fehlgeschlagen:

  • GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS: 0 ist < 8!

Ich bekomme das jetzt in Firefox 74. Ich habe webgl.force-enabled=true in der Konfiguration erzwungen, Hardwarebeschleunigung aktiviert, nichts. Bei mir hat es in 66 gut funktioniert, aber ich denke, ihr "Quantum" -Update hat verdammt fast alles kaputt gemacht, einschließlich Webgl für mich.

Stellen Sie sicher, dass Sie den WebGL-Kontextinitialisierer nicht von einem Listener aufrufen (zB versuchen Sie, ihn in Ihre init-Funktion mit einem booleschen Flag zu schreiben, um eine Schleife zu verhindern, oder geben Sie gl als globale Variable an). Ersteres hat bei mir funktioniert und zeigt den Kontext korrekt an.

BEARBEITEN: Tatsächlich habe ich die WebGL-Leinwand im Renderer (THREE.WebGLRenderer) gefunden. Ich habe die Canvas-Methode renderer.getContext().canvas verwendet und den webglcontextlost-Listener hinzugefügt, der wiederum die handleContextLost-Funktion mit der init() aufruft.

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

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen