2016-05-13 13 views
1

Also habe ich eine Bibliothek erstellt, um mit webgl gepufferte Daten zu managen, weiß, wie man Speichersegmentierung auf der Grafikkarte vermeidet, indem man nur einen einzigen Puffer benutzt, und weiß, wie man den engsten passenden Teil des freien Speichers findet, wenn er neu ist Objekte werden hinzugefügt und wissen, wie es geht, lassen Sie mich sagen, wie groß ein Puffer sein muss, wenn nötig, wie ein Teil des Speichers an einen anderen Platz kopiert wird, wo mehr Platz ist, wenn neue Werte in den Vektor eingefügt werden. So von außen kann ich über Garbage Collection komplett vergessen und ich kann eine Funktion wie append (um nur neue Werte in ein Array hinzuzufügen), und eine andere Funktion, um den Speicher freizugeben. Allerdings Webgl unterstützt derzeit nicht copyBufferSubData. Mit webgl2 können Sie dies tun. Ich weiß, dass eine naheliegende Lösung darin bestehen würde, den Vektorinhalt sowohl im Hauptspeicher als auch im Grafikkartenspeicher zu behalten, aber ich fragte mich, ob jemand eine weniger verschwenderische Lösung kennt.webgl Verschieben von gepufferten Daten im Grafikkartenspeicher?

Wenn nicht, werde ich einfach die Vektoren im Hauptspeicher speichern, wenn alt webgl verwendet wird und es für jeden Typ anders machen.

Antwort

0

Nein, in WebGL (und GLES 2.0 für diese Datei) gibt es keine Möglichkeit, den Inhalt eines Puffers in den Hauptspeicher oder in einen anderen Puffer zu kopieren. Sie können jedoch eine Erweiterung mit einer solchen Fähigkeit vorschlagen.