[vim/vim] #18002 wayland gtk redraw slow on `:version` and `:highlight` (PR #19062)

11 views
Skip to first unread message

dezza

unread,
Jan 2, 2026, 7:44:28 AMJan 2
to vim/vim, Subscribed

Closes: #18002

Since patch 9.1.1585: Wayland: gvim still needs GVIM_ENABLE_WAYLAND,
the message window has been slow at drawing especially :version and
:highlight.

Since wayland redraws entire screen between updates (contrary to X11),
there are most likely- many more gains in perf in other paths not
discovered.

The issue is easily reproduced on;
Fullscreen, fractionally scaled, HiDPI displays (4K)


You can view, comment on, or merge this pull request online at:

  https://github.com/vim/vim/pull/19062

Commit Summary

  • 5f788cb refactor: gui.is_wayland for checking display
  • 907f675 perf: gtk-wayland slow redraw

File Changes

(4 files)

Patch Links:


Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062@github.com>

dezza

unread,
Jan 2, 2026, 7:55:12 AMJan 2
to vim/vim, Push

@dezza pushed 1 commit.


View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/907f675e371c499e7bda507c6e41d001fa73cd3a/after/bddabb3141e7bb3d0f40e30cab09f3e3d8ada1ab@github.com>

Christian Brabandt

unread,
Jan 2, 2026, 8:16:05 AMJan 2
to vim/vim, Subscribed

@chrisbra commented on this pull request.


In src/gui.c:

> @@ -9,6 +9,9 @@
  */
 
 #include "vim.h"
+#if defined(FEAT_GUI_X11) && GTK_CHECK_VERSION(3,0,0)

I think this should be:
#if defined(FEAT_GUI_X11) && defined(GDK_WINDOWING_WAYLAND) && GTK_CHECK_VERSION(3,0,0)

according to https://docs.gtk.org/gdk4/wayland.html


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/review/3623108486@github.com>

dezza

unread,
Jan 2, 2026, 8:31:35 AMJan 2
to vim/vim, Subscribed

@dezza commented on this pull request.


In src/gui.c:

> @@ -9,6 +9,9 @@
  */
 
 #include "vim.h"
+#if defined(FEAT_GUI_X11) && GTK_CHECK_VERSION(3,0,0)

You linked the gdk4 docs, I will look into it, thanks.

Made PR into a draft, see the tests failing and now it seems its back to slow for me since editing it.

Will continue trying- I was sure I had it.


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/review/3623131296@github.com>

dezza

unread,
Jan 7, 2026, 10:42:21 PMJan 7
to vim/vim, Push

@dezza pushed 2 commits.

  • 4d641f7 refactor: gui.is_wayland for checking display
  • ba6fef5 perf(wayland): skip compositing, use direct blit

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/bddabb3141e7bb3d0f40e30cab09f3e3d8ada1ab/after/ba6fef598f4869bc42de70854a28f6204229c00b@github.com>

dezza

unread,
Jan 8, 2026, 5:34:22 AMJan 8
to vim/vim, Push

@dezza pushed 1 commit.

  • 977270e lint: vim codestyle brace after paren

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/28deee6fc00f47c2495d2dfd5b04938e65290e48/after/977270ec812926781e706a9f7acefe4e7c9a65ad@github.com>

dezza

unread,
Jan 8, 2026, 3:13:15 PMJan 8
to vim/vim, Push

@dezza pushed 1 commit.

  • 2e822fd fix: scroll-up was buggy and repeated same lines down- need clip, save, restore

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/977270ec812926781e706a9f7acefe4e7c9a65ad/after/2e822fdb9904bf2ed7bf715f0724f709d7733cd6@github.com>

dezza

unread,
3:35 AM (8 hours ago) 3:35 AM
to vim/vim, Push

@dezza pushed 4 commits.

  • cab909c refactor: gui.is_wayland for checking display
  • 719dd78 perf(gtk-wayland): avoid early redraws; compositor does redraw
  • ec87708 perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • 3434019 perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/2e822fdb9904bf2ed7bf715f0724f709d7733cd6/after/34340197781b2596ba3bf8b5c77141673c5959d6@github.com>

dezza

unread,
4:18 AM (7 hours ago) 4:18 AM
to vim/vim, Push

@dezza pushed 2 commits.

  • 3673452 perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • 3ed531a perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/9e41886f394b6bf7a577b41587f0314838bcda01/after/3ed531afe83eac0d657cfc13c390b38aac70b86f@github.com>

dezza

unread,
4:21 AM (7 hours ago) 4:21 AM
to vim/vim, Push

@dezza pushed 2 commits.

  • 21f245a perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • 5a41d82 perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/3ed531afe83eac0d657cfc13c390b38aac70b86f/after/5a41d826c87691d2faece189905f6559c845faaa@github.com>

dezza

unread,
4:36 AM (7 hours ago) 4:36 AM
to vim/vim, Push

@dezza pushed 2 commits.

  • d71f5a2 perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • a691f41 perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/5a41d826c87691d2faece189905f6559c845faaa/after/a691f41afe771bb2c1988c3d794eff7921fe64fe@github.com>

dezza

unread,
4:52 AM (7 hours ago) 4:52 AM
to vim/vim, Push

@dezza pushed 4 commits.

  • 8baecba refactor: gui.is_wayland for checking display
  • 4e7f06e perf(gtk-wayland): avoid early redraws; compositor does redraw
  • c0e0710 perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • 8f9a305 perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/a691f41afe771bb2c1988c3d794eff7921fe64fe/after/8f9a305533cb71556d5e744c54f2648383b099ff@github.com>

dezza

unread,
6:09 AM (6 hours ago) 6:09 AM
to vim/vim, Push

@dezza pushed 4 commits.

  • 7821040 refactor: gui.is_wayland for checking display
  • 2ee8f2c perf(gtk-wayland): avoid early redraws; compositor does redraw
  • 0c3cab4 perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • c69b160 perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/8f9a305533cb71556d5e744c54f2648383b099ff/after/c69b1600a7e02be5627d21905bd93dc5ee6d17ed@github.com>

dezza

unread,
7:08 AM (5 hours ago) 7:08 AM
to vim/vim, Push

@dezza pushed 4 commits.

  • 68528ad refactor: gui.is_wayland for checking display
  • b542ec0 perf(gtk-wayland): avoid early redraws; compositor does redraw
  • 9c2ddbf perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • 55e824c perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/c69b1600a7e02be5627d21905bd93dc5ee6d17ed/after/55e824cf17f880b9e8e399d74ff63f309eb694fc@github.com>

dezza

unread,
7:21 AM (4 hours ago) 7:21 AM
to vim/vim, Push

@dezza pushed 2 commits.

  • c97633d perf(gtk-wayland): avoid reallocs, optimize scroll copy
  • 80db39b perf(gtk-wayland): don't block input loop

You are receiving this because you are subscribed to this thread.Message ID: <vim/vim/pull/19062/before/55e824cf17f880b9e8e399d74ff63f309eb694fc/after/80db39b7b9aab2c89c1a45678e0976f402d07871@github.com>

Reply all
Reply to author
Forward
0 new messages