glDeleteBuffers()

Moderator: Graphische Datenverarbeitung 1

Benutzeravatar
m_stoica
Kernelcompilierer
Kernelcompilierer
Beiträge: 473
Registriert: 5. Dez 2008 20:19
Wohnort: Zuhause

glDeleteBuffers()

Beitrag von m_stoica » 27. Dez 2010 02:28

was passiert eigentlich wenn man vor dem beenden eines Programms den Buffer
nicht mehr über glDeleteBuffers() freigibibt? Kann das irgendwelche bösen Konsequenzen haben?

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: glDeleteBuffers()

Beitrag von thomas_kalbe » 29. Dez 2010 14:56

ich würde den Speicher freigeben.
Im schlimmsten Fall läuft Dir der Speicher irgendwann voll und Performance geht verloren ...
Beim nächsten Neustart (des Systems) sollte wieder alles ok sein :-)
Ich denke nicht, dass die Speicherverwaltung so schlau ist, angeforderten Heap- oder GPU-Speicher nach Programmende
automatisch freizugeben (wer's besser weiss,kläre mich bitte auf).

t.

Jonathan
Mausschubser
Mausschubser
Beiträge: 47
Registriert: 10. Okt 2008 13:37

Re: glDeleteBuffers()

Beitrag von Jonathan » 30. Dez 2010 01:39

Ich habe keinen direkten Beleg dafür, aber ich gehe stark davon aus dass der GPU-Speicher nach Programmende vollständig freigegeben wird.
Der GPU-Treiber muss die GPU-Ressourcen ohnehin für jeden Prozess getrennt verwalten, und kann daher auch nach Prozessende alle benutzten Ressourcen auflisten und freigeben. In der Regel sollte der Treiber unabhängig davon ob das Programm abstürzt oder korrekt beendet wird sämtlichen Speicher freigeben können, auch wenn das natürliche im Falle von Treiber-Bugs auch theoretisch schiefgehen kann.
Die korrekte Verwendung von glDeleteBuffers/Textures/Foobar ist vor allem in aufwändigeren Programmen relevant, wenn innerhalb eines Programmlaufes Speicher freigegeben werden soll, beispielsweise wenn in einem Spiel beim Levelwechsel andere Texturen geladen werden.

thomas_kalbe
Nerd
Nerd
Beiträge: 570
Registriert: 10. Jun 2006 14:58

Re: glDeleteBuffers()

Beitrag von thomas_kalbe » 30. Dez 2010 12:46

ja, sehe ich auch so dass zumindest die GPU den Speicher vermutlich freigibt.
t.

Antworten

Zurück zu „Graphische Datenverarbeitung 1“