Ich möchte zur Laufzeit programmgesteuert ermitteln, wie viel Grafikkartenspeicher von meinem Programm verwendet wird. Insbesondere frage ich mich, wie es auf einem Windows-Computer mit OpenGL gemacht werden soll, bin aber auch an Möglichkeiten interessiert, dies auf anderen Plattformen zu tun.
Ich weiß, dass es Dienstprogramme gibt, die mir die Speichernutzung während der Ausführung meines Programms anzeigen, aber ich möchte in der Lage sein, diese Informationen aus meinem Code abzufragen.
Antworten:
Sie finden den Videospeicher einer Nvidia-Karte mit der Erweiterung NVX_gpu_memory_info oder einer ATI-Karte mit ATI_meminfo . Hier ist ein Codeausschnitt, den ich gefunden habe, der Ihnen den Einstieg erleichtern könnte.
Paul Nettle von flipcode fragt sich jedoch, warum man den verfügbaren Videospeicher finden möchte und sagt :
Und erklärt im Wesentlichen, dass eine "Größe des Videospeichers" möglicherweise gar nichts bedeutet . Ich stimme ihm in der Begründung zu, dass beispielsweise die Größe des "freien" Speichers in einem Windows Vista / 7-Computer irrelevant ist. hoffentlich gibt es keinen freien Speicher, weil freier Speicher Speicher verschwendet wird. Es gibt jedoch immer einige Speicherbereiche für Caches, die von Windows gelöscht werden, falls eine Anwendung diese benötigt.
quelle