改变屏幕分辨率时为什么屏幕会闪烁?

改变屏幕分辨率时为什么屏幕会闪烁?

当我改变屏幕的分辨率时,我的屏幕会关闭并再次打开(但只是短暂的一小段时间),然后关闭再打开,最后它就达到了我想要的分辨率。

但为什么它需要闪烁?为什么它需要关闭并再次打开,甚至可能两次?

我在旧显示器和新显示器上都看到过这种情况,我不太明白为什么在改变分辨率时有必要这样做。

有人知道吗?

答案1

显示器和显卡正在协商特定的分辨率和刷新率。可能会发生以下几种情况。

显示器必须使用新设置重置。它将关闭,然后使用新设置再次打开。

更改分辨率时,显卡会暂时停止发送信号。显示器检测到信号丢失,并进入待机模式。当显卡开始发送新分辨率时,显示器会重新开启。

如果您正在运行多个显示器,显卡可能也会在活动显示器之间切换。如果显示器有多个输入,当它检测到显卡信号丢失时,它可能会在它们之间切换。

答案2

它完全取决于硬件、驱动程序和处理 GUI 环境的软件(所谓的显示管理器)以及最终显示内容的应用软件的组合。

其中每一个都可以(但不一定必须)强制重新绘制(伴随闪烁)显示。

通常(在 Windows 中),第一次闪烁发生在显示驱动程序为新分辨率重新配置硬件时。
在许多情况下,视频芯片必须停止显示。然后,在 1 个或多个显示帧之后,开始以新格式产生输出。
显示器将看到视频卡的短暂断开/重新连接,并相应地重新调整自身(另请参阅 fooot 的回答)。
在大多数情况下,显示内存的内容也不再有效,因此也会被清除。通常为黑屏。

然后,在第二步中,Windows 本身会以新的分辨率重新绘制所有显示组件。由于 Windows 此时不知道显示缓冲区中存在什么(它无法确定视频驱动程序是否清空了视频缓冲区),因此这通常从默认背景颜色的全新空白屏幕开始。然后 Windows 添加任务栏、墙纸等。
这可能会导致更多的视觉闪烁。

最后,正在运行的应用程序可能会进行额外的重新绘制,以重新调整自身以适应新的显示尺寸。(特别是当它们以最大化/全屏或贴紧显示边框运行时。)

总结一下:有些闪烁与视频硬件有关,有些闪烁与软件重绘有关。

最后但并非最不重要的一点是:
有些人对这种事情比其他人更敏感。
有时(从字面上来说)“旁观者眼中看问题”。
有些人几乎不会注意到,而其他人则觉得很烦人。

相关内容