问题:
在 X 中,我在几分钟或几小时(甚至几天!)前关闭的一个旧应用程序窗口(或多个)将突然出现在当前活动窗口的顶部。有时,整个旧的虚拟桌面会覆盖我当前打开的应用程序。
当我将鼠标移到这个旧的重叠显示上时,实际运行的活动程序将逐渐重绘其窗口。例如,如果我的鼠标移到某些小部件(例如文本字段、按钮)上,这些小部件将被重新绘制并再次覆盖旧的错误绘制的帧缓冲区。
如果我在 XFCE 中的两个虚拟桌面之间来回切换,整个屏幕通常会正确重绘。
尽管这种方法可以快速解决问题,但通过切换虚拟桌面,问题可能会在一秒钟后多次重复出现。这使得整个桌面在很多时候几乎完全无用。
软件/硬件:
我有一个运行 XFCE 的 Debian 9.8 系统。我在相同硬件上使用 Windows 时没有这个问题。
01:00.0 VGA compatible controller: NVIDIA Corporation GK208 [GeForce GT 710B] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] GK208 [GeForce GT 710B]
Kernel driver in use: nouveau
Kernel modules: nouveau
我尝试过的:
切换到 nvidia 而不是 nouveau。
升级内核。
多次更新系统(我已经遇到这个问题很长时间了),重新安装软件包。
重新安装操作系统。
答案1
很抱歉没有对此提供答案,但也许这些信息还是有帮助的。
我在 MX Linux 18.3(基于 Debian 9)上也遇到这个问题,尤其是 Firefox。使用“htop”,我注意到关闭窗口后,来自主 Firefox 进程的分叉似乎没有被正确清理。因此,即使我关闭窗口,该进程仍保留在内存中。当然,在不知道哪个进程属于哪个窗口的情况下,在我准备好完全停止整个应用程序运行(即关闭最后一个窗口)之前终止该进程并不明智。
也许 Firefox 是这种现象最明显的应用程序之一,因为它使用大量内存,并且自为阻止选项卡中的错误导致整个应用程序崩溃而进行的重大检修以来,它使用了大量内存,并且较新的版本分叉了更多内存。
总之,这似乎与内存管理问题有关,而不是图形驱动程序故障。
PS:在我即将发布时,我有一个旧的 Firefox 窗口,其中显示了一个相关的打印对话框,尽管该对话框至少几天前已经使用过。