2
votes

My setup includes on-board Intel integrated GPU for everyday tasks and a high-performance Nvidia GPU for graphics-intensive applications. I'm developing an OpenGL 3.3 (core profile) application (using shaders, not fixed-function-pipeline). By default, my app runs on Intel GPU and works just fine. But should I try to run it on Nvidia, it only shows the black screen.

Now here's the interesting part. OpenGL context gets loaded correctly, and world coordinate axes I draw for debugging actually get drawn (GL_LINE). For some reason, Nvidia doesn't draw any GL_POLYGONs or GL_QUADs.

Has anyone experienced something similar, and what do you think is the culprit here?

1
Are you using a core profile? - see OpenGL GL_POLYGON Not Functioning Properly - Rabbid76
I am using core-profile OpenGL 3.3. I didn't set forward compatibility bit. - Drinkwater
It appears GL_POLYGON, GL_QUADS and GL_QUAD_STRIP are deprecated in OpenGL 3.3 core profile. For some reason Intel draws them regardless, but Nvidia started drawing as well, as soon as I substituted those with GL_TRIANGLES etc. Thanks a lot! - Drinkwater

1 Answers

2
votes

It appears GL_POLYGON, GL_QUADS and GL_QUAD_STRIP are removed from OpenGL 3.3 core profile. For some reason Intel draws them regardless, but Nvidia started drawing as well, as soon as I substituted those with GL_TRIANGLES etc. Always check for removed features if problems like this arise.