会话锁定时应用程序窗口内容显示(颠倒!)

会话锁定时应用程序窗口内容显示(颠倒!)

我最近经历了一个非常奇怪的现象。当我将计算机从挂起状态解冻时,我回到了会话管理器的锁定屏幕。然而,会话中当前运行的应用程序窗口的内容间歇性地显示,并且旋转了 180°。

图片胜过千言万语,这里是我的屏幕的照片(不是屏幕截图),显示了 Thunderbird 窗口的内容(出于明显的隐私原因,后来添加了镶嵌图案): 显示 KDE 锁定屏幕和 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 窗口当时正在运行(它有时会显示伪影,因此这可能是相关的)。

答案1

我暂时将其归类为从挂起恢复时无法恢复 GPU 状态。更具体地说,似乎显示成分信息没有得到正确的恢复。

有可能一个间歇性硬件故障(例如 GPU 内存中的不可靠点)也可能涉及其中。闪烁以及您所说的 Steam 有时出现显示伪像的事实也暗示了这种可能性。

由于您使用的是 NVidia 的专有驱动程序,这应该只报告给 NVidia。如果您想了解更多,可以发帖到NVidia 的 Linux 驱动程序开发论坛: 你可能会得到更详细的答案。

据我所知,现代 GPU 通常具有足够的视频 RAM,可以将大多数或所有窗口(甚至当前隐藏的窗口)保存为单独的位图,并具有单独的位图显示成分信息告诉它窗口应该如何放置在屏幕上(可能相互重叠)以及在任何给定时刻应该显示哪些窗口,不应该显示哪些窗口。由于窗口位图与纹理没有太大区别,因此用于镜像/调整大小/旋转/以其他方式扭曲纹理的 GPU 硬件选项同样适用于它们。

在我看来,您的情况很可能是由显示合成信息损坏引起的,导致 GPU 硬件半随机渲染当时应该在屏幕外的各种窗口位图,并应用了不正确的镜像/旋转他们。

关闭并重新打开会话会导致 X 显示服务器重置,这应该会导致 GPU 状态进行相当大的重新初始化,因此这可能可以解释问题消失的原因。

相关内容