I’m developing an application with two components derived from juce::OpenGLRenderer whose contents are rendered in two separate threads in the renderOpenGL() methods.
Since I am a bit concerned about the perfomance of the whole user interface I was investigating the possibility to use the juce OpenGL interface renderer for my other components (a timeline, some trees, …).
Switching the renderer is easy so I gave it a naive try. It seemed to work well on a Intel HD GPU but I had problems with flickering in my OpenGLRenderer components on a Nvidia Quadro GPU.
I decided to test the juce demo application with different GPUs to see how the OpenGL Demo is working with the OpenGL interface renderer.
Everything seemed to work flawlessly until I realized by chance that the Demo app is silently switching to the software renderer when the OpenGL tab is openend.
I must say that I was very surprised about that. At least I would have expected a message to the user that the renderer is switched to the software version.
When forcing the Demo App to stay with the OpenGL renderer I realized that the Demo App has even more problems than I had to this point with my own app. The OpenGL Demo shows the same flickering on my Nvidia GPU but it does not show anything on the Intel GPU.
Since there is also no comment in the source code I am a bit helpless about the current situation.
Is this a known issue and the problems will be fixed and switching back to the software renderer in the demo is just a temporary hack?
Or is using the OpenGL interface renderer together with the OpenGLRenderer component not possible and won’t be possible in the near future?
I would be very thankful for an answer to these question.
Some information about the system:
Juce version 5.1.1
on a ThinkPad P70
Windows 10 Pro, 64bit
Intel HD Graphics 530 (driver 184.108.40.20678)
Nvidia Quadro M600M (driver 382.50)