gnome-terminalのレスポンスが遅くなる問題にここ2ヶ月くらい悩まされていましたが、それがようやく解決できたので共有程度に記事を書きました。
issueやコミュニティフォーラムなどを調査すると、NVIDIAグラフィックボードが搭載されたPC上でUbuntu 22.04を動かしかつWindow ManagerにMutterを使っている場合に生じるということが分かりました。
https://askubuntu.com/questions/1509058/input-delay-on-terminal-ubuntu-22-04-4
原因
mutterのSyncオブジェクトの実装が不足していたようです。
journalctlでブートID 0のログを参照してみるとMetaSyncRingのアラートが出ていることが分かります。
$ journalctl -b0 | grep MetaSyncRing May 26 03:31:34 oxygen gnome-shell[293854]: Window manager warning: MetaSyncRing: Sync object is not ready -- were events handled properly?
ソースコードの変更部分を見るとmeta_sync_ring_insert_waitという関数内でring->current_sync->stateがMETA_SYNC_STATE_READYでない場合はwarningを出し、meta_sync_ring_rebootをかけています。
おそらくこのmeta_sync_ring_rebootで最インスタンス化などをしており、そのせいでレスポンスが遅くなっていたと思われます。
今回の変更ではMETA_SYNC_STATE_WAITINGの場合、gpu_fenceというものを0にしてMETA_SYNC_STATE_READYをstateに入れ込んでいますが、ここらへんは追いきれていないです。
(gpu_fenceとかはなんだろうカーネルとかx11の実装とかを見ておけばよいのでしょうか?)
gpu_fenceについてはあまりよく分かりませんでしたが、とにかくこれが原因で、すでに修正コミットがMutterのメインブランチにマージされていますのでリリースを気長に待ちましょう。
といってもUbuntuの公式リポジトリに入るのはだいぶ先ですので、この不具合の修正コミットをあてたmutterを開発者の方がPPAで公開(https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/2059847/comments/25)しているのでこちらをインストールして凌ぐことにしましょう。
対処方法
sudo add-apt-repository ppa:vanvugt/mutter sudo apt update sudo apt upgrade sudo apt-get install gir1.2-mutter-10=42.9-0ubuntu7vv1 mutter-common=42.9-0ubuntu7vv1 libmutter-10-0=42.9-0ubuntu7vv1
一部コンポーネントは古いバージョンのものとなっているため、apt updateで更新されてしまいます。
このため以下のコマンドで更新を抑制しておきます。
sudo apt-mark hold gir1.2-mutter-10 libmutter-10-0 mutter-common