2017-02-15 5 views
4

Je voudrais savoir le nom du modèle de carte graphique dans OpenGL ou dans Win32 cuz J'ai un bug de fuite de mémoire sur un type spécifique de carte graphique (seulement Intel HD pas tous Intel).Comment obtenir le nom du modèle de carte graphique dans OpenGL ou Win32?

C'est le bug: https://software.intel.com/en-us/forums/developing-games-and-graphics-on-intel/topic/280679

Le nom du fournisseur en OpenGL ne suffit pas. Est-ce que quelqu'un connaît un moyen d'obtenir le nom de la carte graphique différente de celle de Direct3D? Ou pensez-vous que je peux utiliser D3D et OpenGL ensemble? Get the graphics card model?

+0

La méthode infaillible pour déterminer le type de GPU installé est d'énumérer directement le matériel. Sous Linux, vous appelez 'lspci' et analysez sa sortie ou parcourez'/sys/bus/pci/devices/* 'à la recherche de tous les périphériques de la classe' 0x030000' (contrôleurs graphiques). Mon Google-Fu m'a échoué à trouver les bonnes API pour ce faire sur les machines Windows modernes. Il ne fait certainement pas partie de l'API Win32 et change avec chaque bump du modèle de programmation de pilote Windows. – datenwolf

+2

Cette méthode n'est pas infaillible, car il n'est pas garanti que le périphérique installé est utilisé par l'application et dans le contexte demandé. Des problèmes de pilote ou des commutateurs logiciels peuvent empêcher cela. Et il est assez commun sur les ordinateurs portables avec plus d'une carte graphique, qu'une carte puissante est installée mais pas utilisée. – OutOfBound

+0

Sans rapport, mais euhhhhh .... est-ce que deux personnes sur le forum d'Intel ont pris le temps d'essayer un robot SEO? –

Répondre

4

Vous pouvez obtenir toutes les informations via OpenGL Api.

https://www.khronos.org/opengl/wiki/Get_Context_Info

const GLubyte* vendor = glGetString​(GL_VENDOR); // Returns the vendor 
const GLubyte* renderer = glGetString​(GL_RENDERER); // Returns a hint to the model 

Dans mon cas, le moteur de rendu retourne la chaîne suivante: "GeForce GT 750M/PCIe/SSE2"

Je ne sais pas, ce qu'il retournerait pour Intel ou Amd cartes. À ma connaissance, le format de la chaîne et son contenu dépendent de la mise en œuvre.

+0

Je n'ai pas la carte vidéo ici. Je vais vérifier la semaine prochaine! –

+0

L'avez vous essayé? Je suis intéressé, comment il se révèle sur les cartes non NVIDIA. – OutOfBound

+1

J'ai essayé sur une carte vidéo Intel HD et j'ai Glrender = "Intel HD quelque chose" –