有没有人觉得 DisplayPort “关显示器就相当于拔线”的设计很脑瘫?

195 天前
 einsdisp

电脑通过 DisplayPort 接显示器,一旦按显示器关闭按钮,就等效于强制拔线,这个不是 Bug ,是 DP 标准就是这么设计的。对于其他任何接口( VGA DVI HDMI )都没有这个脑瘫的设计,通过操作按钮关闭显示器,仅关闭显示输出,但显示器的信号仍然被电脑识别,电脑仍然可以输出信号,除非直接关闭显示器电源插座(有些显示器也自带切断电源的开关,等效于拔插头)。只有 DP 协议如此“标新立异”。

DP 的脑残设计有可能给用户导致包括但不限于如下问题:

网上随便一搜,大量用户深受其害,苦不堪言。制定标准的人到底是如何考虑的,非要标新立异?

2500 次点击
所在节点    硬件
29 条回复
Archeb
195 天前
遇到过,我就是情况三的多显示器……

但是在我的理解中,这个情况似乎不仅仅是 “关显示器就相当于拔线”

我有两台显示器,一台 ViewSonic ,一台飞利浦。我在关闭飞利浦显示器的时候,所有窗口都会自动跑到 viewsonic 显示器上。但是我关闭 viewsonic 显示器的时候,窗口不会有变化。我甚至可以把鼠标移动到原来 viewsonic 显示器的位置上,并摸索着把窗口拖动出来。

这两台显示器均使用 DisplayPort 连接,所称的“关闭”均为使用显示器电源按钮关闭显示器。

所以我觉得这可能不仅仅是 DP 标准的问题,还取决于显示器厂商的实现。
Archeb
195 天前
另,这也有可能是 Windows 显示器管理的原因,因为飞利浦显示器( 4K )被我设置成了主显示器,而 ViewSonic ( 1080P ,竖放)是被设置成副显示器的。

我在使用 Linux 的 xrandr --query 命令列出显示器时,即使任意一个显示器被关闭了,也仍然能列出两台显示器

Screen 0: minimum 8 x 8, current 4920 x 2160, maximum 32767 x 32767
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 connected 1080x1920+0+110 right (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 59.93*+ 60.00 59.94 50.00 29.97 25.00 23.98
1680x1050 59.95
1600x900 60.00
1440x900 59.89
1440x240 60.05
1400x1050 59.98
1280x1024 75.02 60.02
1280x960 60.00
1280x720 60.00 59.94 50.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
720x576 50.00
720x480 59.94
640x480 75.00 72.81 59.94 59.93
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 connected primary 3840x2160+1080+0 (normal left inverted right x axis y axis) 600mm x 340mm
3840x2160 60.00 + 143.98* 119.99 97.98
2560x1440 143.91 120.00
1920x2160 59.99
1920x1080 119.88 60.00 59.94 50.00
1280x1024 75.02 60.02
1280x720 59.94 50.00
1024x768 119.99 99.97 75.03 70.07 60.00
800x600 119.97 99.66 75.00 72.19 60.32 56.25
720x576 50.00
720x480 59.94
640x480 119.52 99.77 75.00 72.81 59.94 59.93
DP-5 disconnected (normal left inverted right x axis y axis)

以上输出在任意一台显示器关闭的情况下,都是一致的。

并且,我也可以一样的摸黑移动窗口、窗口不会被自动调整大小或者转移位置(我使用的窗口管理器是 i3wm )

所以综合以上的调查,表明这很可能是一个 Windows 显示器管理机制的问题。
Archeb
195 天前
再补充清晰一点:#1 中描述的是使用 Windows 11 的体验, #2 主要描述的是在 ArchLinux 上的体验
einsdisp
195 天前
@Archeb

我也使用 Linux 桌面,AMD 的显卡。打开桌面环境的“显示器设置“,可以看到里面有两个显示器可供设置(分辨率/方位等),关闭任意显示器,设置里马上就只剩一个显示器。

使用 xrandr 命令输出也是同样情况,关闭一个显示器后,只剩一个显示”connected“。

以上,只有连接 DP 接口才会出现,连接其他接口均不会如此。

可见,这个问题跟操作系统无关,就是 DP 的 bug 。
当然,也不排除有显示器厂商不遵守标准的 DP 协议,而是”自行优化“,关闭显示器后仍然输出信号。
或者某些操作系统或桌面环境或显卡驱动也”自行优化“,检测到 DP 连接的显示器断开后,强制各个窗口仍然保存原位置不变。
einsdisp
195 天前
@einsdisp

例如 Linux 桌面( Gnome Cinnamon )都可以通过命令禁止桌面环境的“auto-plug”功能,不再检测显示器关闭,这样关闭 DP 显示器后,再开启,窗口不会错乱。但这样的话,也就没法区分拔线、拔插头了。总之,DP 的设计很脑瘫,需要用户自行费尽心机去解决问题。
Archeb
195 天前
@einsdisp 那还真是神奇,我也没有更多的设备可以测试了。
terence4444
195 天前
关闭显示器相当于拔线应该也属于正常操作吧,DP 不可能猜到关闭显示器的目的是想让它离线还是省电。再说 DP 关闭显示器以后只是给操作系统发送了一个信号,具体实现是在 OS 里实现的,和 DP 的关系不是很大。

这个信号有点像“按下电源按钮”的信号一样,每个人会有不同的需求。
einsdisp
195 天前
@terence4444

恰恰相反。DP 无法区分“临时省电/免打扰”vs“彻底断连”,dp 关显示器后,连信号都没有了(触发显示器厂商自行优化,关闭后仍然输出信号),对于 OS 而已,根本无法区分,OS 恰恰相反是给 DP 擦屁股的。

其他接口就不操作这个问题,要区分也很容易:显示器按关闭按钮就是想临时省电/免打扰关闭一下,关闭插座按钮就是断连,甚至有些显示器有两个关闭按钮,区别很明显。
einsdisp
195 天前
@einsdisp 触发 -> 除非
jhdxr
195 天前
『显示器按关闭按钮就是想临时省电/免打扰关闭一下,关闭插座按钮就是断连』
我怕是对『关闭按钮』的『关闭』两字有啥误解,有啥电器的『关闭』按钮是用来临时省电/免打扰关闭一下的吗?
m1nm13
195 天前
本来 DP 就很蠢.各种问题,
包括你说的图标混乱问题,
也包括关闭显示器之后,试图远程这台电脑会被提示没有显示器,得上 HDMI 欺骗器(部分远程软件自带虚拟显示器,不会问题.但是类似 parsec 之类的就不行) ,
也包括某些主板/显卡 用 DP 会导致没有 bios 的显示.你以为是 win10 快速启动跳过了 bios 画面,其实是显示不出来 XD
SkywalkerJi
195 天前
@m1nm13 显示不了 bios logo 是显卡 bug ,刷 vbios 可以解决。
qsmd42
195 天前
试了试我的 HDMI 显示器按了电源按钮窗口就切到另一个显示器了 这才应该是正常设定吧
我的小米电视可能就是你说的 关机不断 HDMI 导致我还要手动进设置断开输出 我机都关了 还要把信号传过去干嘛 一不小心开个窗口找不到哪去了 原来是忘了手动断开视频输出 什么智障设定
插拔显示器窗口错乱的问题用 PersistentWindows 完全可以解决
DOLLOR
195 天前
确实是这样的,能用 HDMI 就尽量 HDMI 。
因为 DP 显示器唤醒后,窗口、桌面经常全都乱了,非常难受。
ruimz
195 天前
原来是这个原因…我之前还在想为什么我两个显示器关闭电源导致的行为不一样
zanyzephyr
195 天前
我的个人感受恰恰相反,关闭等于拔线,这个设计太优雅了简直。

显示器都关闭了还在那儿输出信号,给鬼看呢?
关闭了还不让断信号,用户想断信号了,还非得去拔连接线、拔电源?

你列出的问题,我这边都没遇到或被困扰过,用起来就挺符合预期、符合直觉的。
环境:MBP 外接 dell 2720QM 、dell 2718D
leonshaw
195 天前
难道不是操作系统处理显示器布局的问题?
Greendays
195 天前
如果分屏使用时,把某个显示器关掉了。如果不识别为拔线的话,岂不是有一部分窗口会“显示”在断电的显示器上?
Jamy
195 天前
@zanyzephyr 你没试过远程连接你电脑的时候,关闭显示器的情况下, 重启之后有什么问题.
我试过用向日葵把 windows 重启了,然后分辨是 648x480 的最低分辨率,并且修改分辨率无效.
而家里当作 nas 的 linux 电脑,ssh 连上去 reboot 之后,直接无法开机,经过一番 google 之后,发现在 grub 的默认配置下,检测不到显示器,直接不开机.非要搬一台显示把线给他插上才可以.
浪费大把时间来查找这种本应该不是问题的问题真的很烦.
billlee
195 天前
这个现象产生的原因大概是 displayport 要支持菊花链,所以每台显示器都相当于一个交换机,有多少显示器接入都是要通过协议握手才能得知的,再也不能想以前那样只检测有没有插上线了。

感觉还是操作系统的问题,没有实现在某个显示器离线的时候保留对应的 framebuffer.

有些显示器支持把 displayport 设置成不支持菊花链的低版本,一定程度上可以避免类似的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/986160

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX