Chcę programowo określić w czasie wykonywania, ile pamięci karty wideo jest używane przez mój program. W szczególności zastanawiam się, jak to zrobić na komputerze z systemem Windows za pomocą OpenGL, ale interesują mnie sposoby, jak to zrobić na innych platformach.
Wiem, że istnieją narzędzia, które pokażą mi użycie pamięci podczas działania mojego programu, ale chcę mieć możliwość zapytania tych informacji z mojego kodu.
Odpowiedzi:
Możesz znaleźć pamięć wideo karty Nvidia za pomocą rozszerzenia NVX_gpu_memory_info lub karty ATI za pomocą ATI_meminfo . Oto fragment kodu , który znalazłem i który może pomóc Ci zacząć.
Jednak Paul Nettle z flipcode zastanawia się, dlaczego ktoś chciałby znaleźć dostępną pamięć wideo, mówiąc :
I wyjaśnia dalej, że „ilość pamięci wideo” może w rzeczywistości nic nie znaczyć . Zgadzam się z nim z rozumowaniem, że na przykład ilość „wolnej” pamięci w komputerze z systemem Windows Vista / 7 jest nieistotna; mam nadzieję, że nie ma wolnej pamięci, ponieważ wolna pamięć to zmarnowana pamięć. Ale zawsze są obszary pamięci przeznaczone na pamięci podręczne, które są czyszczone przez system Windows, jeśli aplikacja ich potrzebuje.
źródło