在连接到不同 GPU 的显示器上渲染时会发生什么

  • 本文关键字:连接 GPU 显示器 macos opengl
  • 更新时间 :
  • 英文 :


我的MAC有多个GPU,辅助显示器连接到外部GPU。在监视器之间切换应用程序时,我观察到 OpenGL 上下文的渲染器已更新以显示当前监视器的渲染器。但是,我也可以在NSOpenGLPixelFormatAttribute中指定要为应用程序选择的渲染器。在指定渲染器时,无论我将应用程序切换到何处,始终使用指定的渲染器。

那么,当我尝试绘制到连接到与指定为首选渲染器的 GPU 不同的 GPU 的显示器时,最终渲染是如何发生的?是不是像,它在创建上下文的 GPU 上渲染,然后将其复制到连接到显示器的 GPU?

是不是像,它在创建上下文的 GPU 上渲染,然后将其复制到连接到显示器的 GPU?

是的。在 OpenGL Programming Guide for Mac 中对虚拟屏幕的讨论中,它说当一个窗口跨越由不同 GPU 驱动的两个显示器时,就会发生这种情况:

当一个窗口在多个虚拟屏幕之间拆分时,帧缓冲完全由驱动包含窗口最大段的屏幕的渲染器栅格化。通过复制栅格化图像来绘制其他虚拟屏幕上的窗口区域。

(请注意,只有在"系统偏好设置">"任务控制">"显示器具有单独的空间"关闭时,才会发生这样的拆分窗口。

我希望同样的事情适用于您的情况。

最新更新