What happens when rendering on monitors connected to various GPUs

I have several GPUs with my MAC, and the secondary display is connected to an external GPU. When switching my application between monitors, I see that the renderer for the OpenGL context is updated to show the renderer for the current monitors. But I can also specify the renderer that I want to choose for my application, in NSOpenGLPixelFormatAttribute. When specifying a renderer, the specified visualizer is always used, regardless of where I switch my application.

So, when I try to attract a monitor that is connected to a GPU other than the one indicated as the preferred visualization tool, how does the final rendering work? Does it look like it displays on the GPU on which the context is executed, and then copies it to the GPU connected to the monitor?

+4
source share
1 answer

It looks like it displays on the GPU on which the context is running, and then copies it to the GPU connected to the monitor?

Yes. The discussion of virtual screens in the OpenGL Programming Guide for Mac says that what happens when a window spans two displays that are controlled by different GPUs:

, , , . .

( , , > > " " ).

, .

+2

Source: https://habr.com/ru/post/1695096/


All Articles