Connaître la capacité et l'utilisation de la mémoire graphique dans OpenGL

Vous développez avec OpenGL et vous avez besoin d'un moyen simple pour connaître des informations sur la mémoire graphique telles que sa capacité et son utilisation ? Alors vous êtes au bon endroit !

Commentez Donner une note à l'article (5)

Article lu   fois.

Les deux auteur et traducteur

Traducteur :

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

Il y a quelques années, ce genre d'information n'était pas disponible pour les développeurs OpenGL, mais aujourd'hui, les deux grands d'OpenGL (je parle de NVIDIA et AMD/ATI) ont ajouté quelques extensions utiles pour récupérer la capacité de la mémoire de la carte graphique ainsi que d'autres données relatives.

II. Capacité de la mémoire

II-A. Avec NVIDIA

NVIDIA a récemment publié les spécifications d'une nouvelle extension nommée GL_NVX_gpu_memory_info.

Grâce à GL_NVX_gpu_memory_info, vous pouvez récupérer la taille totale et restante de la mémoire du GPU (processeur graphique).

Voici un extrait de code qui montre comment l'utiliser. GL_NVX_gpu_memory_info renvoie les tailles en ko.

 
Sélectionnez
#define GL_GPU_MEM_INFO_TOTAL_AVAILABLE_MEM_NVX 0x9048
#define GL_GPU_MEM_INFO_CURRENT_AVAILABLE_MEM_NVX 0x9049

GLint total_mem_kb = 0:
glGetIntegerv(GL_GPU_MEM_INFO_TOTAL_AVAILABLE_MEM_NVX, 
              &total_mem_kb);

GLint cur_avail_mem_kb = 0:
glGetIntegerv(GL_GPU_MEM_INFO_CURRENT_AVAILABLE_MEM_NVX, 
              &cur_avail_mem_kb);

Cette extension est utilisée dans GPU Shark pour obtenir l'utilisation de la mémoire des cartes graphiques NVIDIA comme vous pouvez le voir sur l'image suivante :

Image non disponible

Selon le site Geeks3D OpenGL extensions DB, GL_NVX_gpu_memory_info est disponible dans les pilotes d'affichage NVIDIA depuis la version R196.xx (voir R196.21).

II-B. Avec AMD/ATI

AMD a sorti deux extensions pour s'occuper de la capacité mémoire vidéo :

  • WGL_AMD_gpu_association ;
  • GL_ATI_meminfo.

WGL_AMD_gpu_association est une extension développée pour effectuer du rendu en parallèle : vous pouvez créer un contexte OpenGL différent sur chaque GPU. Cette extension est fournie avec des fonctionnalités de requêtes matérielles. Avec WGL_AMD_gpu_association vous pouvez obtenir la quantité de mémoire graphique disponible pour le GPU.

Voici comment l'utiliser pour obtenir la taille de la mémoire GPU en Mo :

 
Sélectionnez
UINT n = wglGetGPUIDsAMD(0, 0);
UINT *ids = new UINT[n];
size_t total_mem_mb = 0;
wglGetGPUIDsAMD(n, ids);
wglGetGPUInfoAMD(ids[0], 
    WGL_GPU_RAM_AMD, 
    GL_UNSIGNED_INT, 
    sizeof(size_t),
    &total_mem_mb);

J'ai testé cette extension dans ce minioutil nommé Radeon-Z ;)

Image non disponible

GL_ATI_meminfoest utilisée lorsque vous avez besoin d'informations plus détaillées sur la mémoire disponible pour les VBO (Vertex Buffer Objects) ou pour vos textures.

III. Remerciements

Cet article est une traduction autorisée de l'article paru sur Geeks3D.com.

Je tiens à remercier LittleWhite pour sa relecture lors de la traduction de cet article, ainsi que ClaudeLELOUP pour sa relecture orthographique.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Geeks3D. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.