X 错误地渲染了我的鼠标指针周围的矩形

X 错误地渲染了我的鼠标指针周围的矩形

我的鼠标指针周围的方形区域渲染不正确。它似乎不是渲染它应该渲染的窗口,而是渲染下面的窗口。

这张截图非常清晰,它省略了鼠标指针本身,但您可以“通过”全白的 Konsole 窗口看到我的灰色桌面背景的一部分:

带有中间博客的 konsole 窗口

如果我注销然后再次登录,而不重新启动,问题就会消失。

这里还有一些屏幕截图,裁剪为感兴趣的区域:这里指针悬停在带有蓝色“J”的 Firefox 选项卡上;黑色弹出窗口是该选项卡的工具提示,部分内容丢失,您可以看到 Firefox 主窗口:

在此输入图像描述

这里,指针悬停在 Firefox 的“重试”按钮上,但 X 已经从 Firefox 下方的 Spectacle 窗口中渲染了一些内容:

在此输入图像描述

我的 X 服务器是:

X.Org X Server 1.19.3 Release Date: 2017-03-15 X Protocol Version 11, Revision 0 Build Operating System: Linux 4.4.0-87-generic x86_64 Ubuntu Current Operating System: Linux avocet 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.10.0-33-generic root=UUID=19f82f72-a807-4624-a7aa-8297febd0f5a ro quiet splash vt.handoff=7 Build Date: 25 July 2017 01:30:08PM xorg-server 2:1.19.3-1ubuntu1~16.04.2 (For technical support please see http://www.ubuntu.com/support) Current version of pixman: 0.33.6

操作系统是: Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial

窗口系统是KDE。硬件是 Lenovo Thinkpad T460p 笔记本电脑。

我不确定系统配置的哪些部分是相关的。这是合成器配置:

在此输入图像描述

这是看起来相关的部分输出lshw

    *-pci:1
         description: PCI bridge
         product: Sky Lake PCIe Controller (x4)
         vendor: Intel Corporation
         physical id: 1.2
         bus info: pci@0000:00:01.2
         version: 07
         width: 32 bits
         clock: 33MHz
         capabilities: pci pm msi pciexpress normal_decode bus_master cap_list
         configuration: driver=pcieport
         resources: irq:121 ioport:d000(size=4096) memory:f1000000-f1ffffff ioport:c0000000(size=301989888)
       *-display
            description: 3D controller
            product: GM108M [GeForce 940MX]
            vendor: NVIDIA Corporation
            physical id: 0
            bus info: pci@0000:02:00.0
            version: a2
            width: 64 bits
            clock: 33MHz
            capabilities: pm msi pciexpress bus_master cap_list
            configuration: driver=nvidia latency=0
            resources: irq:130 memory:f1000000-f1ffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:d000(size=128)
    *-display
         description: VGA compatible controller
         product: Intel Corporation
         vendor: Intel Corporation
         physical id: 2
         bus info: pci@0000:00:02.0
         version: 06
         width: 64 bits
         clock: 33MHz
         capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
         configuration: driver=i915 latency=0
         resources: irq:126 memory:f0000000-f0ffffff memory:e0000000-efffffff ioport:e000(size=64) memory:c0000-dffff

我应该如何继续尝试诊断和解决这个问题?

如果我应该报告错误,那么我应该向谁报告,以及如何报告?

[ 2017 年 9 月 18 日添加:这似乎是一个错误,此处描述。重新启动sddm即可sudo systemctl restart sddm解决该问题。 ]

答案1

我发现评论错误报告它帮助了我(KDE NEON + nvidia 驱动程序)

削弱你的系统(切换到 xrender 和慢得多的 nouveau 驱动程序)并不是一个解决方案。
什么对我在 KDE Neon 上完美工作了一个多星期:
在文件:
/lib/systemd/system/sddm.service
添加:
ExecStartPre=/bin/sleep 10
After [Service]
问题显然是 SDDM 需要的东西不是在启动之前初始化,因此将 SDDM 延迟 10 秒是足够的解决方法。也许它可以更少,但只要我不必手动注销/登录,它就不会打扰我。

答案2

我最近刚刚在一台新的(对我来说)Dell XPS 笔记本电脑上遇到了这个奇怪的光标框阴影问题,我正在其上安装 Fedora 30(尽管这个问题显然不是 Fedora 特有的 - 很多关于 Ubuntu 和其他一些报告出色地)。该笔记本电脑配备 NVidia GeForce GTX 1050 和 Intel 915 控制器。

我现在认为这个问题与有两个视频控制器直接相关,可能以某种方式互相争斗。这台特定笔记本电脑上的 BIOS 无法控制视频控制器,因此我不能仅禁用英特尔。

另外,在此系统上,nouveau 驱动程序完全挂起(X 服务器启动并硬锁 - 尽管事后看来,也许这是同一个问题)。无论如何,由于困难,“切换到 nouveau 驱动程序”并不是一个选择!

因此,经过一天对 Nvidia 驱动程序的试验(安装、卸载、从 Nvidia direct 构建、卸载、从 RPM Fusion 重新安装,等等 - 等等 - 呃!),我终于找到了让一切都可以工作而无需超级驱动程序的神奇咒语。烦人的光标框!

解决方案绝对不直观!而且,与所有类似的事情一样,YMMV(或更可能是“您的里程会有所不同”)!

基本上,您需要通过内核启动参数来控制视频控制器。这是有效的:

(首先,如果您使用的是 nouveau 驱动程序 - 祝您好运,并停止阅读此处)

1) 确保 xorg-x11-drv-nouveau 驱动程序不在您的系统上 - 卸载/删除它。

2) 确保 nouveau 内核模块不会通过创建黑名单 modprobe 文件来加载(即使您删除了 X 驱动程序,内核仍然有一个附带的驱动程序模块)。将以下行放入名为的文件中/etc/modprobe.d/blacklist-nouveau.conf

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

3) 然后通过将以下内容添加到内核启动参数中来额外确保 nouveau 驱动程序不会在启动时潜入:rd.driver.blacklist=nouveau modprobe.blacklist=nouveau。如果您运行 grub,那么最快的方法就是修改/etc/default/grub这些参数并将其添加到GRUB_CMDLINE_LINUX变量中,然后重新运行 grub2-mkconfig。注意:如果您安装 RPM Fusion nvidia 驱动程序,它也会添加这些行。

好的,nouveau 驱动程序正常并被禁用后,您现在只需配置以在 i915 驱动程序和 nvidia 驱动程序之间进行选择...

如果您还没有,请获取并安装 Nvidia 驱动程序(无论您想要什么 - 我最终只使用 RPM Fusion 驱动程序)。

安装 Nvidia 驱动程序后,您可能会注意到内核启动参数被修改为包含“nvidia-drm.modeset=1”,基本上告诉内核使用 Nvidia 驱动程序进行视频输出 - 这是有道理的,对吗?这就是问题

-->此时,将这些启动参数更改为nvidia-drm.modeset=0并添加i915.modeset=1.

这似乎非常这是违反直觉的,因为你想使用 Nvidia 控制器。然而,当 X 启动时可能会发生冲突。我在第四次开始卸载 Nvidia 驱动程序时意外发现了此配置。我使用 i915.modeset=1 重新启动,并在删除驱动程序时看到 X 服务器仍在针对 Nvidia 驱动程序运行并且我的光标正常。然后我完成卸载,重新启动回到英特尔,然后再次安装并破坏它。就在那时,我意识到也许内核模式集需要向后。

不管怎样,一旦你启动到这个配置,X 服务器就会启动,它应该自动检测 Nvidia 卡并使用它。如果这没有自动发生,那么你可能需要进行一个 X11 配置来配置 Nvidia 控制器(如果需要,你可以尝试使用 nvidia-xconfig 工具 - 我在整个噩梦中的某个时刻做了这一点,但在最终我什至不需要该配置)。

最后,也许可以运行 glmark2 基准测试来测试您的性能是否正确(它还会显示正在使用的 GPU)。

答案3

Launchpad 上报告了此问题:https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-384/+bug/1684240

如果您在那里有帐户,请将其标记为也会影响您并订阅通知以获取更新。更多人将其标记为影响他们,就会增加更快修复的机会。

答案4

我遇到了几乎相同的问题,但这是由缩放功能的错误引起的。当我停用它时,它就消失了。 (运行基于 Debian/Ubuntu 的 Pop 操作系统)

错误报告链接

相关内容