ITADN

Intermittent grey horizontal artefact near top of window

#10132Closedmyitcv 创建于 2026-06-10
bug
M
myitcvcommented
**Describe the bug** On a VMware Fusion Linux guest using the VMware SVGA3D virtual GPU, kitty intermittently shows what looks like a stale rendering fragment near the **top of the window**: a thin (~few px tall), roughly ~300px wide, light-grey horizontal segment that appears at varying horizontal positions. It seems to show up during rapid redraws (e.g. scrolling in neovim with `j`/`k`, or a TUI spinner animation), and I have seen it in more than one kitty window. It is intermittent and I have not found a reliable trigger. I have not found anything that reliably clears it. A focus change or a window resize *sometimes* seems to make it go away, but not reliably. Neovim's own full redraw (`Ctrl-L`) does not appear to clear it. With `kitty --config NONE` it is easier to see. With no config the background is black and there appears to be a margin at the top of the window (I believe from the default placement leaving leftover space there), and the grey segment is clearly visible rendering within that top margin region — i.e. in an area that the running program does not itself draw into. (Disclaimer: much of the framing below — about *where* in kitty's rendering this might originate — is my best hypothesis from investigation, not something I can independently confirm. I have tried to mark those as questions/hypotheses rather than assert them.) **To Reproduce** Steps to reproduce the behavior: 1. Run kitty in a VMware Fusion Linux guest using the VMware SVGA3D GPU (Mesa, X11). `kitty --config NONE` seems to give the clearest view (the segment shows against the black top margin). 2. Run a TUI that does frequent redraws, e.g. open a long file in `nvim` and scroll continuously with `j`/`k` (a spinner/progress animation also seems to trigger it). 3. Watch the top of the window. 4. Intermittently, a light-grey horizontal segment appears near the top at varying horizontal positions. (It is intermittent, so it may take some scrolling/redrawing before it appears.) **Screenshots** Screen recording attached, showing the grey segment near the top of the window appearing at different horizontal positions across frames. https://github.com/user-attachments/assets/6f9b5691-5cee-49d6-845b-148f1f09cd17 **Environment details** ``` kitty 0.47.0 created by Kovid Goyal Linux debian 7.0.10+deb14-arm64 #1 SMP PREEMPT Debian 7.0.10-1 (2026-05-27) aarch64 Debian GNU/Linux forky/sid debian /dev/tty Running under: X11 OpenGL: '4.3 (Core Profile) Mesa 26.0.6-1' Detected version: 4.3 Frozen: False Fonts: medium: GoMono: /home/myitcv/.local/share/fonts/gofont/ttfs/Go-Mono.ttf:0 Features: () bold: GoMono-Bold: /home/myitcv/.local/share/fonts/gofont/ttfs/Go-Mono-Bold.ttf:0 Features: () italic: GoMono-Italic: /home/myitcv/.local/share/fonts/gofont/ttfs/Go-Mono-Italic.ttf:0 Features: () bi: GoMono-BoldItalic: /home/myitcv/.local/share/fonts/gofont/ttfs/Go-Mono-Bold-Italic.ttf:0 Features: () Paths: kitty: /usr/bin/kitty base dir: /usr/lib/kitty extensions dir: /usr/lib/kitty/kitty system shell: /bin/bash System color scheme: no_preference. Applied color theme type: none Loaded config files: /home/myitcv/.config/kitty/kitty.conf Config options different from defaults: allow_remote_control yes confirm_os_window_close (0, False) copy_on_select clipboard cursor_blink_interval (0.0, kitty.options.utils.EasingFunction(), kitty.options.utils.EasingFunction()) cursor_text_color None detect_urls False enable_audio_bell False font_family Go Mono font_size 8.0 linux_display_server x11 listen_on unix:/tmp/kitty-myitcv placement_strategy top-left scrollback_lines 65535 select_by_word_characters !#%&*+-./:=?@_~ shell_integration frozenset({'no-cursor'}) strip_trailing_spaces smart symbol_map: U+23ea - U+23ff → Noto Color Emoji U+2600 - U+27bf → Noto Color Emoji U+2934 - U+2935 → Noto Color Emoji U+2b05 - U+2b07 → Noto Color Emoji U+2b1b - U+2b1c → Noto Color Emoji U+3030 - U+3030 → Noto Color Emoji U+303d - U+303d → Noto Color Emoji U+3297 - U+3297 → Noto Color Emoji U+3299 - U+3299 → Noto Color Emoji U+fe00 - U+fe0f → Noto Color Emoji U+1f000 - U+1faff → Noto Color Emoji term xterm-256color url_style 0 window_padding_width FloatEdges(left=1.0, top=1.0, right=0, bottom=0) Added shortcuts: alt+p → launch --stdin-source=@screen_scrollback --type=background sh -c 'cat > "$(mktemp --tmpdir kitty-screenshot.$(date +%Y%m%d%H%M%S_%N)_XXXXXXXXXX)"' alt+v → paste_from_clipboard ctrl+- → change_font_size all -1.0 ctrl+0 → change_font_size all 0 ctrl+= → change_font_size all +1.0 shift+page_down → scroll_page_down shift+page_up → scroll_page_up Colors: background #f9f5d8 color0 #1d2021 color1 #9d0006 color10 #79740e color11 #b57614 color12 #076678 color13 #8f3f71 color14 #427b58 color15 #f9f5d7 color2 #79740e color3 #b57614 color4 #076678 color5 #8f3f71 color6 #427b58 color7 #f9f5d7 color8 #1d2021 color9 #9d0006 cursor #444444 foreground #1d2021 selection_background #1d2021 selection_foreground #f9f5d8 Important environment variables seen by the kitty process: PATH (hidden as sensitive names included) LANG en_GB.UTF-8 VISUAL nvim EDITOR nvim SHELL /bin/bash DISPLAY :0 USER myitcv XDG_SEAT seat0 XDG_SESSION_TYPE tty XDG_SESSION_CLASS user XDG_VTNR 1 XDG_SESSION_ID 12 XDG_RUNTIME_DIR /run/user/1000 XDG_DATA_DIRS /usr/local/share:/usr/share:/home/myitcv/.nix-profile/share:/nix/var/nix/profiles/default/share ``` Key facts for quick reference (full debug output above): - kitty 0.47.0 (latest), built from source - Debian, Linux 7.0.10+deb14 aarch64 — guest in VMware Fusion on an Apple Silicon macOS host - OpenGL renderer string: `SVGA3D; build: RELEASE; LLVM;` - OpenGL vendor string: `VMware, Inc.` - OpenGL version string: `4.3 (Compatibility Profile) Mesa 26.0.6-1` - X11; WM: awesome; compositor: picom/compton **Additional context** Things I have observed while trying to narrow it down: - It still reproduces with `kitty --config NONE`, so it does not seem to be caused by any of my config options. - I tried `sync_to_monitor no`, `window_padding_width 0`, and `term xterm-256color` vs the native `xterm-kitty` terminfo; none of these appeared to make a difference. - It still reproduces with `LIBGL_ALWAYS_SOFTWARE=1` (llvmpipe). - alacritty, run on the same machine, has not shown this artefact for me. Open questions / hypotheses (not confirmed — would appreciate guidance): - Since it appears to render in the top margin region (where the program does not draw), could this point to kitty's painting/clearing of the top edge of the window rather than the cell contents? - Since it persists with `LIBGL_ALWAYS_SOFTWARE=1`, does that make the GL rasterizer backend an unlikely cause? - Since alacritty on the same host/X server has not shown it for me, does that make the X server / vmwgfx layer a less likely cause, and is this more likely something in kitty's rendering path on this SVGA3D setup? (I'm not certain — alacritty may simply redraw differently.) I'm happy to gather any further diagnostics that would help.
关闭于 2026-06-11 1 条评论