xterm.js icon indicating copy to clipboard operation
xterm.js copied to clipboard

WebGL renderer flashes content with command that updates the screen a bunch

Open npezza93 opened this issue 2 years ago • 9 comments

Details

  • Browser and browser version: electron 14
  • OS version: macOS BigSur
  • xterm.js version: latest

Steps to reproduce

  1. enable webgl
  2. find a repo with a bunch of dependencies
  3. run yarn

(i also have ligatures enabled which is the cause of the weird conjoining #'s. Not entirely sure if its the cause of the flash) See attached video for a more concrete example:

https://user-images.githubusercontent.com/5059927/137319771-67e4485e-8583-42f8-b32b-774658115603.mov

npezza93 avatar Oct 14 '21 12:10 npezza93

I've never seen a report of this 🤔

Tyriar avatar Oct 20 '21 16:10 Tyriar

Any more steps on the repro as I do this every day in VS Code, maybe related to Electron 14 as we're still on 13?

Tyriar avatar Oct 20 '21 16:10 Tyriar

Did a little more testing and looks to caused by some interaction with the ligature addon. If i dont load the ligature addon the flashing never happens

npezza93 avatar Oct 20 '21 17:10 npezza93

Also not seeing anything show up in the console when the flash happens. My hunch was something was erroring out and then recovering but that doesnt seem to be the case.

npezza93 avatar Oct 20 '21 17:10 npezza93

Maybe related: https://github.com/xtermjs/xterm.js/blob/4222dfb69db98be5b3db65ea135b52d2326b643f/addons/xterm-addon-ligatures/src/index.ts#L57

Note that this happen in a thenable, such might get eval'ed late after the inital drawing forcing a second re-rendering.

jerch avatar Oct 20 '21 17:10 jerch

Maybe related:

https://github.com/xtermjs/xterm.js/blob/4222dfb69db98be5b3db65ea135b52d2326b643f/addons/xterm-addon-ligatures/src/index.ts#L57

Note that this happen in a thenable, such might get eval'ed late after the inital drawing forcing a second re-rendering.

This issue is fixed to use the actual rows (getOption('rows') was always the initial rows). Let me know if this still happens in the latest v5 beta/stable

Tyriar avatar Jul 30 '22 13:07 Tyriar

@Tyriar Sweet! I'll check it out and report back.

P.S. Do you mind triggering a package build of the web-links add-on? npm only has a version from around 12 days ago even though there are new commits since then.

npezza93 avatar Jul 30 '22 13:07 npezza93

@npezza93 new versions should only get published when the addon has changes. Also because of the v5 changes just merged in there might be some breaking changes that issues when updating to beta builds atm

Tyriar avatar Jul 30 '22 14:07 Tyriar

@Tyriar Unfortunately this looks to still be present. I think it might be happening a little less frequently but is still happening. For what it's worth, I've been experiencing this even without using ligatures but just in the webgl renderer(even before v5).

It's almost like the content the doesn't get updated/changed is the text that disappears. For example, opening a new split in vim hides any chrome like status lines and any existing splits but the split that was just open stays present.

npezza93 avatar Jul 30 '22 17:07 npezza93

Also looks like this is only happening inside the alt buffer(like using tmux for example).

npezza93 avatar Oct 09 '22 19:10 npezza93

duplicate of https://github.com/xtermjs/xterm.js/issues/4480

Tyriar avatar May 21 '23 15:05 Tyriar