我最近经历了一个非常奇怪的现象。当我将计算机从挂起状态解冻时,我回到了会话管理器的锁定屏幕。然而,会话中当前运行的应用程序窗口的内容间歇性地显示,并且旋转了 180°。
图片胜过千言万语,这里是我的屏幕的照片(不是屏幕截图),显示了 Thunderbird 窗口的内容(出于明显的隐私原因,后来添加了镶嵌图案):注意屏幕的底部, 其中任务栏将消失,不受影响,并正确显示(而不是颠倒)锁定屏幕的背景。另请注意,Thunderbird 并不是唯一显示的应用程序。整个东西都会闪烁,有时显示给定窗口的时间不到一秒钟。
系统在其他方面是有响应的。然而,解锁会话并没有结束这种行为。事实上,我几个月前就已经经历过这种情况,没有涉及会话锁定:这在当时是一件烦恼,但在会话锁定时发生它是一个更重要的隐私问题。
关闭然后重新打开会话(无需重新启动整个计算机)可以结束这种现象。
我很茫然,因为我很难用英语简洁地描述这个现象,因此很难去寻找那个话题;考虑到涉及的许多因素,我也不知道在哪里报告该错误。
即:
- 操作系统是 KUbuntu 22.04(最新),内核 5.15.0-82-generic、KDE Plasma 5.24.7、KDE Frameworks 5.92.0、Qt 5.15.3、Xorg-server 21.1.4、
- GPU 为 NVIDIA GeForce GTX 1650/PCIe/SSE2,
- GPU驱动程序是nvidia 525.125.06。
此外,Steam 窗口当时正在运行(它有时会显示伪影,因此这可能是相关的)。
我暂时将其归类为从挂起恢复时恢复 GPU 状态失败。更具体地说,显示构图信息似乎没有得到正确恢复。
也可能涉及间歇性硬件故障(例如 GPU 内存中的不可靠点)。闪烁以及您所说的 Steam 有时出现显示伪像的事实也暗示了这种可能性。
由于您使用的是 NVidia 的专有驱动程序,因此应仅向 NVidia 报告此情况。如果您想了解更多信息,您可以在NVidia 的 Linux 驱动程序开发论坛上发帖:您可能会在那里得到更详细的答案。
据我所知,现代 GPU 通常具有足够的视频 RAM,可以将大多数或所有窗口(甚至当前隐藏的窗口)保存为单独的位图,并有单独的显示组成信息告诉它窗口应如何放置在屏幕(可能彼此重叠)以及它们中的哪些应该和不应该在任何给定时刻显示。由于窗口位图与纹理没有太大区别,因此用于镜像/调整大小/旋转/以其他方式扭曲纹理的 GPU 硬件选项同样适用于它们。
在我看来,您的情况很可能是由显示合成信息损坏引起的,导致 GPU 硬件半随机渲染当时应该在屏幕外的各种窗口位图,并应用了不正确的镜像/旋转他们。
关闭并重新打开会话会导致 X 显示服务器重置,这应该会导致 GPU 状态进行相当大的重新初始化,因此这可能可以解释问题消失的原因。