什么是 crtc,我可以使用 xrandr 启用多少个输出?

什么是 crtc,我可以使用 xrandr 启用多少个输出?

我使用的是联想 x220i ThinkPad,运行 crunchbang Linux(使用 openbox 窗口管理器)。笔记本电脑侧面有 DP 和 VGA 插头。

连接 DP 和 VGA 电缆并运行xrandr,我注意到以下输出可用/处于活动状态:

VGA1
DP1
LVDS1  <- the laptop screen

如果我尝试启用 2 个以上(使用任意组合),则会出现错误“无法找到 [VGA1/DP1/LVDS1] 输出的 crtc”

什么是 crtc?如何知道有多少可用?是否可以通过软件或 PCI 卡添加更多?

谢谢。

答案1

CRTC 代表“阴极射线管控制器”,但维基百科更喜欢“视频显示控制器“。

它们仍然通常被称为 CRTC - 技术术语有时变化可能很慢。

总有更复杂的解释,但一个充分的总结是,每个 CRTC 对应于视频卡上的一个注定要输出的视频缓冲区。我选择了这个特定的措辞来强调一些细微差别:

  • 软件屏幕(例如用于无头 VNC 服务器的屏幕)将使用 RAM 作为视频内存,与视频卡无关,也不会从视频卡获得任何硬件加速。不需要 CRTC,因为它不在视频卡上。
  • 如果您使用视频卡渲染场景,然后将最终结果的缓冲区放回到内存/磁盘中,则不涉及 CRTC,因为它不受输出的约束,尽管使用了视频卡的渲染功能和内存。
  • 显卡可能支持将一个 CRTC 输出到多个显示器。它们必须具有相同的分辨率,并且可能或可能不是(我不知道)必须具有相同的频率。简单地使用显示设置在两个或多个显示器上“显示相同的屏幕”可能会不是利用这一点,在两个 CRTC 上镜像最终缓冲区。到目前为止,确保将单个 CRTC 克隆到两个显示器上超出了我的技术能力。

因此,回答您的其他问题:

我如何知道有多少个 [CRTC] 可用?

$ xrandr --listproviders 
Providers: number : 1
Provider 0: id: 0x4d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 10 associated providers: 0 name:Intel

请注意,像您一样,我的输出比 CRTC 多:crtcs: 4 outputs: 10,输出数量众多是有充分理由的,主要归结为视频端口具有很多便利性:

  • DisplayPort 连接器可能有 2 个或 3 个与之关联的输出是否支持菊花链连接
  • ADVI-I 连接器可以将其拆分为数字和模拟组件,以运行每种类型的一个显示器。旧的偷懒解决方案是在硬件中克隆它们,但现在视频设备通常具有与此类端口关联的 DVI 和 VGA 输出。
  • 笔记本电脑底座可以轻松将输出数量增加一倍,甚至更多,因为他们希望在底座上提供丰富的额外连接器的便利。
  • 视频设备可能具有未实现的连接器,因为它被匆忙投入生产或者是因为它是另一个设备的重新实现,但省略了一些连接器。

是否可以通过软件或 PCI 卡添加更多 [CRTC]?

由于 CRTC 由 GPU 提供,因此拥有更多 CRTC 的唯一方法是添加一个可以与现有设备同时工作的视频设备。我知道这是可能的,并且存在许多限制,但仅此而已。你必须研究多个 GPU 设置看看这对你是否可行。


PS:我今天刚刚学到了很多这方面的内容,在自己的研究过程中偶然发现了你的问题。

答案2

crtc代表阴极射线管控制器在古代,显示器使用的是CRT(由玻璃制成的重型装置)而不是LCD今天的显示器。

答案3

我担心这是显示设备的硬件限制。我遇到过类似的情况 - 笔记本电脑(t430)带扩展坞。我可以并行使用 3 个显示器 - 2*DP 和 LVDS 或 3*DP 或 LVDS 和 DP 和 HDMI。但启用任何显示器都会显示与您相同的错误。

相关内容