A question concerning OpenGL with Intel/Nvidia Win10-notebook

#1

Hello everyone,

after i had to learn that intel-drivers might produce problems, i’ve now a new notebook with intel 630 (on-bord) and nvidia gtx1060.
After installing the latest (as i hope) versions of MingW and the libraries i use for my application (wxWidgets 3.1.2 and basic-OpenGL-libraries) and after removing some bugs detected by the new libraries, my application compiles and renders. There are still bugs in, but output is there.

Hardware: Razer RZ06 14" UHD, i7-7700HQ, Intel HD Graphics 630, NVIDIA GeForce GTX 1060
System: Win10, CodeBlocks 17.12, MingW32 8.2.0, freeglut 3.0, glfw 3.2.1, wxWidgets 3.1.2

My application needs at leat two displays. One - mostly the main-desktop is used to control and to preview the output on the others. The output is rendered on wxGLCanvas-controls (a window, only to render on). Starting the program, the UI appears on the main display and the output on the second - if there is one.

Unfortunately after starting the rendering-process, there are several issues occuring, that seem to be driver-problems:

  1. The output-window (2nd display) stays blank but the previews on the UI are work.
  2. Moving the output-window so that more then 50% of it are on the main -display, it starts working, when moving ends.
  3. If i move the UI-window to the second display before starting the rendering-process, nothing works unless minimize and restore the UI-window.
  4. After doing this, both windows work, as long they are not moved.

etc.

Concerning the drivers i found out, that the second external display uses the nvisia GPU, while the main-display uses the on-board-intel (even if the external monitor is smaller). I can configure the prefered GPU for OpenGL-rendering in the nvidia-driver, but this does not semm to make a difference (but in fact, there are - multiplied the upper four - existing so many combinations, that i did not test all of them).
As my program runs stable so far, this this seems to be a problem in how the GPUs (probably the drivers) work together.

I wonder if someone has more experience is programming OpenGL on a 2-GPU-Notebook then me and who maybe can help me to run my application on the nvidia?

Thanks for taking tim to read this…

Best,
Frank

#2

[QUOTE=art-ganseforth;1293640]i’ve now a new notebook with intel 630 (on-bord) and nvidia gtx1060.

Hardware: Razer RZ06 14" UHD, i7-7700HQ, Intel HD Graphics 630, NVIDIA GeForce GTX 1060

Unfortunately after starting the rendering-process, there are several issues occuring, that seem to be driver-problems:
[/QUOTE]

Does your laptop have Optimus? If so, have you owned a laptop with Optimus before?

With this type of laptop, the Intel GPU always owns and generates the video output (e.g. HDMI port). But when enabled, specific rendering tasks can be off-loaded and performed on the NVidia GPU and fed back through the Intel for video output.

I don’t have one of these laptops handy, but IIRC you need to tell MSWin to prefer rendering to the High-performance GPU. Here are a few links that appears to describe this for Win10:

https://answers.microsoft.com/en-us/windows/forum/windows_10-hardware/select-gpu-to-use-by-specific-applications/eb671f52-5c24-428d-a7a0-02a36e91ee2f
https://www.howtogeek.com/351522/how-to-choose-which-gpu-a-game-uses-on-windows-10/

You may also find that you need to force the High Performance power plan, and you might want to disable desktop scaling (i.e. set it back to 100%).

#3

Does your laptop have Optimus?

Yes

If so, have you owned a laptop with Optimus before?

No - before i used an older ThinkPad with Intel HD 4000 (on-board)

tell it to prefer rendering to the High-performance GPU

As said: I can configure the prefered GPU for OpenGL-rendering in the nvidia-driver, but this does not semm to make a difference.
Maybe i’ll try around a bit more with this.

You may also find that you want/need to disable desktop scaling (i.e. set it back to 100%).

Had a lot of trouble with this until i found out, how to configure this. This is why i know, that (by default) external display usees the GTX1060. But back to 100% and similar things, i can test (hope the current settings are storable). As said, i can do several settings in the nvidia-driver - globally and per application. But these are only the nvidia-settings.

There is a tab/page to setup multiple-screens in the nvidia-panel. But there is only one display available: the external one. Also in several other tabs/pages of the nvidia-driver it seems as if there is only the external dispay available. This is the point i’m wodering about. Optimized usage would wold be something else: Internel UHD-display using intel and external SXGA-display nvidia???
Very strange…

Therefore i hoped to get more information here…