Hi all,
Is there a way to query the GPU vendor and type using the LWJGL?
My problem are IntelHD graphics chips. The ContextCapabilities say these support ARBVertexArrayObject and ARBFramebufferObject. However, vertex arrays have rendering problems and even a single use of glGenerateMipMaps results in less than 1fps.
Basically, I don't want to use the extensions if the graphics chip is from Intel.
Cheers,
Michael
We have a best-effort in the Display.getAdapter() and Display.getVersion() methods. If you've initialised the Display as well you can get the OpenGL vendor etc. using normal OpenGL queries. Snippet of my code for this:
String glvendor = GL11.glGetString(GL11.GL_VENDOR);
String glrenderer = GL11.glGetString(GL11.GL_RENDERER);
String glversion = GL11.glGetString(GL11.GL_VERSION);
String gldriver = null;
int i = glversion.indexOf(' ');
if (i != -1) {
gldriver = glversion.substring(i + 1);
glversion = glversion.substring(0, i);
}
Cas :)
thanks a lot! that's exactly what I was looking for.
(and how obvious.. now I feel ashamed to have bothered)
Thats a neat bit of code.
While on the topic of hardware vendors, can anyone please list problems with each vendor, things to watch out for.
currently from the forum threads I have gathered that DisplayLists are the way to go with Intel cards.
and VBO's are the way with S3.
any other variations need noting/correcting?
yes, matrox g400 works even worse than S3.
cas, thats pretty nice. does the space split always give driver + version ?
Display lists should probably be avoided at all costs anywhere. VBOs are the right way to do things. Immediate mode is right out. 99% of cards out there seem to be handling VBOs ok for me.
That code seems to work reliably to get driver + version.
Cas :)