Desejo determinar programaticamente em tempo de execução quanta memória da placa de vídeo está sendo usada pelo meu programa. Especificamente, estou pensando em como fazê-lo em uma máquina Windows usando o OpenGL, mas também estou interessado em maneiras de fazê-lo em outras plataformas.
Eu sei que existem utilitários por aí que me mostrarão o uso de memória enquanto meu programa está sendo executado, mas eu quero poder consultar essas informações do meu código.
Respostas:
Você pode encontrar a memória de vídeo de uma placa Nvidia usando a extensão NVX_gpu_memory_info ou uma placa ATI usando ATI_meminfo . Aqui está um trecho de código que encontrei que pode ajudar você a começar.
No entanto, Paul Nettle no flipcode se pergunta por que alguém iria querer encontrar a memória de vídeo disponível, dizendo :
E continua explicando, em essência, que uma "quantidade de memória de vídeo" pode não significar nada . Concordo com ele no raciocínio de que, por exemplo, a quantidade de memória "livre" em uma máquina com Windows Vista / 7 é irrelevante; espero que não haja memória livre, porque memória livre é memória desperdiçada. Mas sempre há algumas áreas de memória dedicadas aos caches que são limpas pelo Windows, caso um aplicativo precise delas.
fonte