wez / wezterm

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
https://wezfurlong.org/wezterm/
Other
17.73k stars 793 forks source link

Flickering on Nightly Windows #5865

Open ChrHorn opened 3 months ago

ChrHorn commented 3 months ago

What Operating System(s) are you seeing this problem on?

Windows

WezTerm version

wezterm 20240722-080956-7e8fdc11

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

Yes, and I updated the version box above to show the version of the nightly that I tried

Describe the bug

There is some flickering/delayed drawing visible in some contexts (not only the cursor). It is especially noticeable in PowerShell, where the cursor constantly flickers while typing.

This issue is only present on nightly, stable (wezterm 20240203-110809-5046fc22) seems to be fine.

Might be the same issue as https://github.com/wez/wezterm/issues/5560

Flickering on nightly:

https://github.com/user-attachments/assets/afcf74de-5399-48fe-b0c7-acde07fc8abd

No flickering on stable:

https://github.com/user-attachments/assets/259581a9-2c17-48c8-81d2-f94b204e5dba

To Reproduce

  1. Open PowerShell/pwsh on Windows
  2. Type, or just hold space.

Notice the flickering of the cursor after some inputs.

Configuration

no config

Expected Behavior

Smooth, instant drawing like on stable.

Logs

wezterm version: 20240722-080956-7e8fdc11 x86_64-pc-windows-msvc Window Environment: Windows Lua Version: Lua 5.4 OpenGL: Intel(R) HD Graphics 520 4.5.0 - Build 31.0.101.2115

Anything else?

Recordings of launching pwsh and holding space.

Wezterm nightly (with flickering) ``` {"version":2,"width":80,"height":24,"timestamp":1722154033,"command":"pwsh","env":{"TERM":"xterm-256color","WEZTERM_VERSION":"20240722-080956-7e8fdc11","WEZTERM_TARGET_TRIPLE":"x86_64-pc-windows-msvc"},"theme":{"fg":"#b2b2b2","bg":"#000000","palette":"#000000:#cc5555:#55cc55:#cdcd55:#5455cb:#cc55cc:#7acaca:#cccccc:#555555:#ff5555:#55ff55:#ffff55:#5555ff:#ff55ff:#55ffff:#ffffff"}} [0.0109809,"o","\u001b[6n"] [0.0113523,"o","\u001b[?9001h\u001b[?1004h"] [0.0114774,"o","\u001b[m\u001b]0;C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.4.4.0_x64__8wekyb3d8bbwe\\pwsh.exe\u0007\u001b[?25h"] [0.21750861,"o","PowerShell 7.4.4\r"] [0.21758899,"o","\n"] [0.6242554,"o","PS C:\\Users\\Chris> "] [1.0643283,"o","\u001b[?25l"] [1.0791916,"o"," \u001b[?25h"] [1.542954,"o","\u001b[?25l"] [1.5557518,"o","\b \u001b[?25h"] [1.5744909,"o","\u001b[?25l"] [1.5867903,"o","\u001b[24;20H \u001b[?25h"] [1.6049469,"o","\u001b[?25l"] [1.6179333,"o","\u001b[24;20H \u001b[?25h"] [1.6388612,"o","\u001b[?25l"] [1.6577426,"o","\u001b[24;20H \u001b[?25h"] [1.6748579,"o","\u001b[?25l"] [1.6886877,"o","\u001b[24;20H \u001b[?25h"] [1.7072109,"o","\u001b[?25l"] [1.7199595,"o","\u001b[24;20H \u001b[?25h"] [1.7388108,"o","\u001b[?25l"] [1.766829,"o","\u001b[24;20H \u001b[?25h"] [1.7900028,"o","\u001b[?25l\u001b[24;20H\u001b[9X\u001b[9C\u001b[?25h"] [1.8089316,"o","\u001b[?25l"] [1.8213098,"o","\u001b[24;20H\u001b[10X\u001b[10C\u001b[?25h"] [1.8394967,"o","\u001b[?25l"] [1.8526679,"o","\u001b[24;20H\u001b[11X\u001b[11C\u001b[?25h"] [1.8743621,"o","\u001b[?25l"] [1.8837419,"o","\u001b[24;20H\u001b[11X\u001b[93m\u001b[11Ce\u001b[38;5;238mxit\u001b[24;32H\u001b[?25h"] [2.1142604,"o","\u001b[m\u001b[?25l"] [2.1255631,"o","\u001b[24;20H\u001b[11X\u001b[93m\u001b[11Cex\u001b[38;5;238mit\u001b[24;33H\u001b[?25h"] [2.2830987,"o","\u001b[m\u001b[?25l"] [2.3086631,"o","\u001b[24;20H\u001b[11X\u001b[93m\u001b[11Cexi\u001b[38;5;238mt\b\u001b[?25h"] [2.4021277,"o","\u001b[m\u001b[?25l"] [2.4200022,"o","\u001b[24;20H\u001b[11X\u001b[92m\u001b[11Cexit\u001b[?25h"] [2.5312662,"o","\u001b[m"] [2.5313416,"o","\r\n"] ```
Wezterm stable (without flickering) ``` {"version":2,"width":80,"height":24,"timestamp":1722153939,"command":"pwsh","env":{"WEZTERM_VERSION":"20240203-110809-5046fc22","WEZTERM_TARGET_TRIPLE":"x86_64-pc-windows-msvc","TERM":"xterm-256color"},"theme":{"fg":"#b2b2b2","bg":"#000000","palette":"#000000:#cc5555:#55cc55:#cdcd55:#5455cb:#cc55cc:#7acaca:#cccccc:#555555:#ff5555:#55ff55:#ffff55:#5555ff:#ff55ff:#55ffff:#ffffff"}} [0.0103393,"o","\u001b[?9001h\u001b[?1004h"] [0.2180924,"o","\u001b[?25l\u001b[2J\u001b[m\u001b[HPowerShell 7.4.4\r\n\u001b]0;C:\\Program Files\\WindowsApps\\Microsoft.PowerShell_7.4.4.0_x64__8wekyb3d8bbwe\\pwsh.exe\u0007\u001b[?25h"] [0.6399852,"o","PS C:\\Users\\Chris> "] [1.0465747,"o"," "] [1.5161676,"o","\b "] [1.578311,"o","\u001b[?25l\u001b[2;20H \u001b[?25h"] [1.5937924,"o","\u001b[?25l\u001b[2;20H \u001b[?25h"] [1.6251154,"o","\u001b[?25l\u001b[2;20H \u001b[?25h"] [1.6563406,"o","\u001b[?25l\u001b[2;20H \u001b[?25h"] [1.6875978,"o","\u001b[?25l\u001b[2;20H \u001b[?25h"] [1.7188258,"o","\u001b[?25l\u001b[2;20H \u001b[?25h"] [1.7500669,"o","\u001b[?25l\u001b[2;20H\u001b[9X\u001b[9C\u001b[?25h"] [1.781342,"o","\u001b[?25l\u001b[2;20H\u001b[10X\u001b[10C\u001b[?25h"] [1.8125587,"o","\u001b[?25l\u001b[2;20H\u001b[11X\u001b[11C\u001b[?25h"] [1.8594581,"o","\u001b[?25l\u001b[2;20H\u001b[11X\u001b[93m\u001b[11Ce\u001b[?25h"] [1.8753512,"o","\u001b[m"] [2.094533,"o","\u001b[?25l\u001b[2;20H\u001b[11X\u001b[93m\u001b[11Cex\u001b[?25h"] [2.1100736,"o","\u001b[m"] [2.2830424,"o","\u001b[?25l\u001b[2;20H\u001b[11X\u001b[93m\u001b[11Cexi\u001b[?25h"] [2.2985463,"o","\u001b[m"] [2.4072754,"o","\u001b[?25l\u001b[2;20H\u001b[11X\u001b[92m\u001b[11Cexit\u001b[?25h"] [2.4228885,"o","\u001b[m"] [2.5635185,"o","\r\n"] ```
Parsifa1 commented 3 months ago

I also encountered cursor flickering when using Neovim: recording

It seems that this problem only occurs in nightly, everything is normal in release

ChrHorn commented 2 months ago

Might be an upstream issue that has already been fixed there.

https://github.com/microsoft/terminal/issues/16093

ChrHorn commented 1 month ago

This is definitely a conpty issue. I can reproduce this behavior in Alacritty using the same conpty.dll. Should be an easy fix once Windows Terminal v1.22 is stable, and the updated files are available.