Ich entwickle eine WebGL-Anwendung für Web und Mobile. Ich verwende häufig Hard-Refreshs, um die Ergebnisse meiner WebGL-Implementierung zu testen. Nach Ansicht versucht, erhalte ich die Fehlermeldung:Wie kann man einen WebGL-Kontext freigeben und nicht mehr speichern?
Error: WebGL: Exceeded 16 live WebGL contexts for this principal, losing the least recently used one.
Dies auf einem frischen gestartet Browser nicht erscheint, aber nach dem Standort mehrmals zu aktualisieren. Ich denke, dass die WebGL-Kontexte nicht beendet, freigegeben, zerstört, aufgeräumt und korrekt freigegeben wurden.
Wie kann ich das tun?
Khronos Group erstellt eine Testsuite für die Freigabe und Müll WebGL-Kontext zu sammeln hier: https://www.khronos.org/registry/webgl/sdk/tests/conformance/context/context-creation-and-destruction.html (Hinweis: Dies könnte Ihr Browser abstürzen!)
Der Test läuft durch mit PASS
und TEST COMPLETE
, so basicly der Test nicht erkennt irgendwelche Probleme. Um jedoch die JavaScript-Konsole öffnen, liest es 33 Fälle von:
Error: WebGL: Exceeded 16 live WebGL contexts for this principal, losing the least recently used one.
Ist das ein Fehler in wie WebGL vom Browser behandelt wird? Oder mache ich etwas falsch? Ich habe nie darüber nachgedacht, irgendwelche WebGL-Kontexte freizugeben.
Ich benutze Firefox Developer Edition 48.0a2 und Firefox 46.0.1.
Wie zu befreien und Müll sammeln Sie einen WebGL-Kontext?