web-dev-qa-db-ja.com

Xがマウスポインターの周りの四角形を誤ってレンダリングしている

マウスポインターの周りの正方形の領域が正しくレンダリングされません。レンダリングすることになっているウィンドウをレンダリングする代わりに、その下のウィンドウをレンダリングしているようです。

このスクリーンショットでは、マウスポインター自体が省略されていますが、灰色のデスクトップの背景の一部が、すべて白いKonsoleウィンドウから「透けて」見えています。

konsole window with midding blog

再起動せずにログアウトしてから再度ログインすると、問題は解消します。

以下は、関心のある領域にトリミングされたスクリーンショットです。青いポインター「J」が付いたFirefoxタブの上にポインターが置かれています。黒いポップアップはタブのツールチップで、一部が欠けており、代わりにメインのFirefoxウィンドウが表示されます。

enter image description here

ここで、ポインターはFirefoxの[再試行]ボタンの上に置かれていますが、XはFirefoxの下にあるSpectacleウィンドウから少しレンダリングしました。

enter image description here

私の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

OSはDistributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenialです。

ウィンドウシステムはKDEです。ハードウェアは、Lenovo Thinkpad T460pラップトップです。

システム構成のどの部分が関連しているかわかりません。これがコンポジター構成です:

enter image description here

以下は、関連があると思われる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-SEP-18を追加:これはバグのようです ここで説明sddmSudo systemctl restart sddmで再起動すると、問題を回避できます。 ]

4
Mark Dominus

NVidiaドライバーからNouveauドライバーに切り替えると、問題が解決しました。 Nouveauドライバーは実際に回転モニターをサポートしています。

NVidiaドライバーがNouveauで必要な特定のカーネルモジュールをブラックリストに登録するため、切り替えを行うのは少し手間がかかりました。 https://wiki.archlinux.org/index.php/nouveau#Keep_NVIDIA_driver_installed または類似の指示に従っていたと思います。

0
Mark Dominus

バグレポート に関するコメントを見つけました(KDE NEON + nvidiaドライバー)

システムを壊す(xrenderに切り替えて、はるかに遅いnouveauドライバーに切り替える)ことは、解決策ではありません。
KDEネオンで1週間以上完璧に機能するもの:
ファイル:
/lib/systemd/system/sddm.service
追加:
ExecStartPre =/bin/sleep 10
[サービス]後
明らかに問題は、SDDMが必要とするものは、開始前に初期化されていないため、SDDMを10秒遅らせることで十分です。おそらくそれは少なくなるかもしれませんが、手動でログアウト/ログインする必要がない限り、私を悩ませることはありません。

2
RedEyed

この問題はLaunchpadで報告されています: https://bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-384/+bug/168424

そこにアカウントをお持ちの場合は、自分にも影響があるものとしてマークを付け、更新を受け取るための通知をサブスクライブします。影響があるとマークする人が増えると、より迅速に修正できる可能性が高くなります。

1
int_ua

私は最近、Fedora 30をインストールしていた新しい(私にとっての)Dell XPSラップトップで、この奇妙なカーソルボックスシャドウの問題に苦労しました(この問題は明らかにFedoraに固有のものではありません。Ubuntuに関するレポートや他のいくつかのレポート)上手)。ラップトップには、NVidia GeForce GTX 1050とIntel 915コントローラーの両方が搭載されています。

私は今、この問題は2つのビデオコントローラがあり、おそらく何らかの方法で互いに戦っているという事実に直接関係していると考えています。この特定のラップトップのBIOSはビデオコントローラーを制御できないため、Intelを無効にすることはできません。

また、このシステムでは、nouveauドライバーが完全にハングします(Xサーバーが起動してハードロックされますが、後から考えると、おそらく同じ問題です)。とにかく、「nouveauドライバーに切り替える」というのは、ハードハングのために選択肢になりませんでした。

だから、Nvidiaドライバーを使った実験(インストール、アンインストール、Nvidia directからのビルド、アンインストール、RPM Fusionからの再インストールなど-UGH!)でいっぱいの一日を過ごした後、スーパーなしですべてを機能させる魔法の呪文を見つけました迷惑なカーソルボックス!

解決策は間違いなく直感的ではありません!そして、このようなすべてのものと同様に、YMMV(またはより可能性が高いのは「あなたのマイレージは変化します」)です!

基本的に、カーネルブートパラメーターを介してビデオコントローラーを制御する必要があります。これがうまくいきました:

(まず、nouveauドライバーを使用している場合-良い運、そしてここで読むのをやめる)

1)xorg-x11-drv-nouveauドライバーがシステムにないことを確認してください-アンインストール/削除してください。

2)ブラックリストmodprobeファイルを作成してnouveauカーネルモジュールが読み込まれないことを確認します(Xドライバーを削除しても、カーネルにはドライバーモジュールが付属しています)。次の行を/etc/modprobe.d/blacklist-nouveau.confというファイルに入れます。

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

3)次に、カーネルブートパラメーターにrd.driver.blacklist=nouveau modprobe.blacklist=nouveauを追加して、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ドライバーを使用するように指示することに気付くでしょう。 これIS問題

->この時点で、これらのブートパラメータをnvidia-drm.modeset=0に変更し、i915.modeset=1を追加します。

Nvidiaコントローラーを使用したいので、これは[〜#〜] very [〜#〜]直観に反するようです。ただし、Xの起動時に競合が発生している可能性があります。 4回目のNvidiaドライバーのアンインストールを開始しているときに、誤ってこの構成を発見しました。 i915.modeset = 1で再起動しましたが、XサーバーがまだNvidiaドライバーに対して実行されていて、カーソルが正常だったので、ドライバーを削除していました。その後、アンインストールを完了し、再起動してIntelに戻し、再度インストールして破壊しました。そのとき、おそらく、カーネルモードセットは逆方向である必要があることに気付きました。

とにかく、この設定で起動すると、Xサーバーが起動し、Nvidiaカードを自動的に検出して使用します。それが自動的に行われない場合は、Nvidiaコントローラーを構成するX11構成を作成する必要がある場合があります(必要な場合は、nvidia-xconfigツールを試すことができます。これは、この悪夢全体のある時点で行いましたが、最後に、その設定も必要ありませんでした)。

最後に、おそらくglmark2ベンチマークを実行して、パフォーマンスが正しいように見えることをテストします(使用されているGPUも表示されます)。

1
Hans