Compatibility issue openGL 3.2 and 4.6

Hi everyone!

I’ve been working on making shaders for a plugin for a while without issues on macOS, but when testing on Windows, the shaders appear for a single frame and disapear immediately…

After some digging I found out that the plugin is using the Intel integrated graphics card if I don’t explicitly specify the NVIDIA control panel to use my main graphics card, which displays the shaders just fine.

After some more digging I realized that the NVIDIA card was indeed using openGL 3.2, as I specified in “setOpenGLVersionRequired (juce::OpenGLContext::openGL3_2)”, but the Intel one is using 4.6.

I understand that the version required by JUCE is a minimum requirement, and that any later OGL version should be compatible. So my question is: Does anybody know of any compatibility issues/breaking changes between 3.2 and 4.6, or if there’s a way to force my Intel card to use 3.2?

As additional info, I get these debug messages when in 4.6:
“OpenGL DBG message: Buffer detailed info: Buffer object 1 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
OpenGL DBG message: Buffer detailed info: Buffer object 3 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
OpenGL DBG message: Buffer detailed info: Buffer object 2 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.
OpenGL DBG message: Buffer detailed info: Buffer object 2 (bound to GL_ARRAY_BUFFER_ARB, usage hint is GL_STATIC_DRAW) will use VIDEO memory as the source for buffer object operations.”

But from what I understood these are just informative and should not break the shader.

Thanks a lot if anybody has a clue on what’s happening!

Best,

Charles

(I should add that the NVIDIA card is showing the exact same behaviour as the integrated Intel when “setOpenGLVersionRequired” is set to default and thus choosing 4.6,:one frame of shader and then nothing)