How to get the Graphics Card Model Name in OpenGL or Win32?
Asked Answered
C

1

10

I would like to know the Graphics Card Model Name in OpenGL or in Win32 cuz I have a memory leaks bug on a specific kind of Graphics Card (only Intel HD not all Intel).

This is the bug : https://software.intel.com/en-us/forums/developing-games-and-graphics-on-intel/topic/280679

The Vendor Name in OpenGL is not enough. Does someone know a way to get the name of the graphical card different than using Direct3D ? Or do you think that I can use D3D and OpenGL together? Get the graphics card model?

Cashandcarry answered 15/2, 2017 at 9:51 Comment(3)
The foolproof method for determining the installed GPU type is to directly enumerate the hardware. In Linux you'd either call lspci and parse its output or traverse /sys/bus/pci/devices/* looking for all devices being of the class 0x030000 (graphics controllers). My Google-Fu failed me finding the right APIs for doing this on modern Windows machines. It's certainly not part of the Win32 API and changes with each bump of the Windows driver programming model.Groundmass
That method is not foolproof, since it is not guaranteed, that the installed device is used by the application and in the requested context. Driver problems or software switches may prevent this. And it is quite common on laptops with more than one graphics card, that a powerful card is installed but not used.People
Unrelated, but uhhhhh.... did two people in the Intel forum post actually take the time to try and help an SEO bot?Absorptance
P
16

You can get all the information via the 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

In my case the renderer returns the following string: "GeForce GT 750M/PCIe/SSE2"

I don't know, what it would return for Intel or Amd cards. To my knowledge the format of the string and it's content is up to the implementation.

People answered 15/2, 2017 at 12:32 Comment(6)
I dont have the Video Card here. I will check it the next week !Cashandcarry
Have you tried it out? I am interested, how it turns out on non NVIDIA cards.People
I tried on a intel hd video card and I have glrender = "Intel HD something"Cashandcarry
I tried on my Intel card and I´ve got ..VENDOR: Intel ... MODEL: Intel(R) HD Graphics 620 ... thanksTandratandy
For anyone coming here from a search engine and wondering what to do with the strange GLubyte* type returned by glGetString, it seems sufficient to just cast it to char* if you want to supply it to printf or construct an std::string from it.Incandesce
As far as I understand, I need to setup a context to retrieve more than an empty string from this function. Can someone help we on how to set up such a context?Bustup

© 2022 - 2024 — McMap. All rights reserved.