集成显卡可以处理一个屏幕,独立显卡可以处理另一个屏幕吗?如果可以,如何在 Manjaro 或 Arch Linux 中配置它?
我的动机是充分利用(实现最高效率)我的 Dell XPS 15 9570 笔记本电脑的硬件,该笔记本电脑装有 Linux,配有 UHD Intel® 630 集成显卡和 NVIDIA GeForce GTX 1050 Ti Max-Q 显卡。连接显示器后,总共有两个屏幕。
我意识到经典的双屏 GUI(其中桌面横跨两个屏幕,单个窗口的部分内容可能同时出现在两个屏幕上)可能不可行。我愿意接受这样一种解决方案:每个桌面(如今的系统通常支持多个桌面,甚至 Windows 也支持)都分配一张卡。不太理想的是,为同一个用户设置两个会话,将它们连接到两个屏幕,使用单个窗口系统。两个窗口系统实例 — 更糟糕,但如果没有更好的办法,我会接受。
答案1
只是为了使用而使用第二张卡是浪费电量。假设你想和伴侣一起去拜访朋友。你们会一起开一辆车还是分开开两辆车,这样另一辆车就不会闲置在车库里?
话虽如此:除了极少数例外,这不是配置问题,而是硬件的物理组成问题。在台式机上,显示器始终由其所连接的显卡驱动,这一点可能更为明显。(尽管渲染可能发生在不同的 GPU 上。)
有三种可能的设计。它们都不会影响多显示器体验。GPU 并不关心窗口是否部分显示在一个屏幕上,部分显示在另一个屏幕上 - 它们只是像素。
1. 所有视频输出连接到集成 GPU
这在配备低端到中端专用 GPU 的笔记本电脑中很常见。内部显示和视频输出连接到 iGPU。对于要求更高的程序,渲染将在 dGPU 上进行,渲染的帧(全屏或窗口)将发送到 iGPU 进行显示。此设置针对电源效率进行了优化,大多数时间仅使用 iGPU。
2. 内置显示器连接至 iGPU,输出连接至 dGPU
这对于配备高端专用 GPU 的笔记本电脑来说很常见。它存在的原因基本上只有一个:避免有限的 PCI-e 吞吐量对强大的 GPU 造成瓶颈。当渲染发生在与显示器连接的 GPU 不同的 GPU 上时,渲染的帧必须通过 PCI-e 接口发送。它实际上会占用其整个过程中的很大一部分,并且 GPU 产生的 FPS 越多,它在试图将它们推送出去进行显示时自身的瓶颈就越大。
将外部显示器直接连接到 dGPU 可以解决这个问题,因为无需将渲染的帧传递到 iGPU。整个带宽可用于生产用途,渲染的视觉效果直接发送到显示器,而无需先通过 iGPU。
这种设置的第一个缺点是,使用外接显示器需要打开 dGPU,即使您没有运行任何图形密集型程序也是如此。但是,使用外接显示器时,您很可能身边有电源插座,因此增加功耗和缩短电池寿命并不是一个大问题。
另一个缺点是,内部显示器仍与 iGPU 相连,原因如下:当不运行任何需要其性能的程序时,无需为 dGPU 供电即可使用笔记本电脑。然而,这再次引发了 PCI-e 瓶颈问题,例如在内部显示器上玩游戏时,因为帧由一个 GPU 渲染,由另一个 GPU 显示。这是一个无法轻易避免的权衡。
3. 多路复用芯片
很少有笔记本电脑型号配备内部多路复用器,可以通过更改 BIOS 设置将输出物理地重新连接到 iGPU 或 dGPU。这样,用户就可以选择放弃对电源效率要求不高的应用程序,以增加图形密集型应用程序的性能,或者优先考虑桌面应用程序的电池寿命,而不是游戏中的额外性能。使用多路复用器,甚至可以将内部显示器切换为由 dGPU 运行。
这是最罕见的设置,因为它会增加成本和复杂性,而对大多数用户没有任何价值。