So, educate me.
https://www.saschawillems.de/creations/opengl-hardware-capab... claims:
“The “OpenGL hardware capability viewer” (short “glCapsViewer) a multi-platform client-side application that reads out all important hardware capabilities of the current OpenGL-implementation present on your system”
Reading its source (https://github.com/SaschaWillems/glCapsViewer/blob/85ee6ab68...), I get the impression it does that by calling either of:
- glGetIntegerv
- glGetInteger64v
- glGetIntegeri_v
- glGetProgramivARB
- glGetFloatv
- glGetString
I think
https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet.... documents all those functions.
I don’t see any occurrence of ‘hardware’ on that page. Looking at the data collected by that tool (example: http://opengl.gpuinfo.org/displayreport.php?id=10016), and checking some of the capabilities listed, I can find all I looked at on that page (https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGet....), so I don’t think that tool uses other methods to obtain information (I didn’t read its full source code, though)
Also:
1) https://registry.khronos.org/OpenGL/specs/gl/glspec46.core.p... doesn’t mention ‘capabilities’, doesn’t mention ‘hardware’ much, and even says
“While an implementation of OpenGL may be hardware dependent, the Specification is independent of any specific hardware on which it is implemented. We are concerned with the state of graphics hardware only when it corresponds precisely to GL state.”
2) https://community.khronos.org/t/determining-hardware-opengl-... asks “I am trying to find a way for my program to determine (during run time) whether the graphics card supports OpenGL hardware acceleration, and how much RAM is installed on the graphics card”
and
https://community.khronos.org/t/determining-hardware-opengl-... replies: “Sorry, there’s no way in OpenGL to do what you want. You’ll just have to trust the driver to do the right thing.”
Of course, that last reply may be incorrect, but from what I found, I think it is correct.
So, what’s going on? Is the spec unclear about the glGet functions? Am I overlooking a call that _does_ return hardware info? As I said: educate me.
(And of course, “implemented in hardware” does not guarantee anything about performance.)