I’m testing on an MSI laptop that has an Intel HD 5600 + NVIDIA GTX960M. When the laptop is configured to automatically choose a video card, it chooses the Intel card for my game.
The bug happens when the game is running on the Intel card in dual screen clone mode. On exiting the application, some threads linger and keep the process from closing all the way (eventually preventing a new launch of the game because it thinks its already running). When debugging, I found that the lingering thread is stuck in ig8icd32.dll - Intel’s shader compiler according to this forum post https://software.intel.com/en-us/forums/graphics-driver-bug-reporting/topic/591322
Any ideas how to fix this?
Note: If I switch to the NVIDIA card on the same laptop, there are no problems.
See the section on Windows specific cmake options and GLFW_USE_HYBRID_HPG for forcing your app to use the discrete card and not an integrated GPU on such systems.
As for the Intel issue, the best place for that is the forum you linked to.
oh wow… thanks for pointing that out.
Any reason it’s defaulted to OFF? Is there a risk with enabling it?
Because everybody doesn’t need to use most powerful GPU in system. Example would be laptop users where it sometimes matters to conserve battery and use integrated GPU.
You can easily make your application use Nvidia GPU without changing glfw code.
Just add these two exports (one for nvidia, one for amd) to your main executable: https://github.com/glfw/glfw/blob/e6a32db7b9553d835931673203602b9f657bd922/src/win32_init.c#L38
And OS will prefer to use Nvidia or Amd if system has one together win Intel GPU.
Thanks for the tip @mmozeiko