-
Notifications
You must be signed in to change notification settings - Fork 29.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rendering issues for one eight block characters in Terminal #161323
Comments
@willmcgugan can you copy and paste the content of the terminal in this state so we can get the problem characters? |
I've attached a dump of the terminal output, escape codes and all. Hope that helps. |
Upstream fix: xtermjs/xterm.js#4134 |
- Optimize critical I/O path for input latency xtermjs/xterm.js#4145 - Add PriorityTaskQueue xtermjs/xterm.js#4144 - Use the browser's IdleDeadline to determine max task time xtermjs/xterm.js#4143 - Defer paused renderer resize to idle callback xtermjs/xterm.js#4142 - Do char atlas warmup via new IdleTaskQueue xtermjs/xterm.js#4141 - Share rgba vars throughout Color.ts, fast setTheme parseColor xtermjs/xterm.js#4140 - Optimize contexts for reading frequently xtermjs/xterm.js#4137 - Fix width of upper 1/8 block char xtermjs/xterm.js#4134 Fixes #161323
Thanks @Tyriar I gather that fixes the long top line, but there are other rendering issues in the screenshot. Here's vscode. Note the glitches at the top and bottom of the scrollbars. Screen.Recording.2022-09-29.at.12.13.03.movHere's iTerm (other terminals look much the same). Screen.Recording.2022-09-29.at.12.13.56.movI'm guessing the block characters don't quite cover the background, which is leads to this erroneous line. |
@willmcgugan what do you mean at the top of the scroll bar? I can't reproduce the bottom of the scrollbar problem: |
I should have moved the scrollbar in the txt dump. Try the following: I wonder if it related to screen resolution. It only appears at certain zoom levels, but when it does it is quite obvious. I'm also viewing this on a 4K monitor, which might be making a difference. Here's a screen capture I've blown up a bit. Hopefully it's obvious now. Here's the original. The difference is a line of one pixel in height, so it might not be clear unless you download this image and zoom in... |
I see this: @willmcgugan can you set up the xterm.js demo and see if changing these 4 lines: to: Math.round(xOffset + box.x * xEighth),
Math.round(yOffset + box.y * yEighth),
Math.round(box.w * xEighth),
Math.round(box.h * yEighth) and see if that fixes it? You'll need node installed for this so feel free to decline, but it would make it easier to iterate on this stuff. |
Reopening as it sounds like there's still some ongoing fixes to be made here |
- Optimize critical I/O path for input latency xtermjs/xterm.js#4145 - Add PriorityTaskQueue xtermjs/xterm.js#4144 - Use the browser's IdleDeadline to determine max task time xtermjs/xterm.js#4143 - Defer paused renderer resize to idle callback xtermjs/xterm.js#4142 - Do char atlas warmup via new IdleTaskQueue xtermjs/xterm.js#4141 - Share rgba vars throughout Color.ts, fast setTheme parseColor xtermjs/xterm.js#4140 - Optimize contexts for reading frequently xtermjs/xterm.js#4137 - Fix width of upper 1/8 block char xtermjs/xterm.js#4134 Fixes microsoft#161323
Type: Bug
There are a few rendering issues related to the one eight block unicode characters in the vscode terminal, as used for scrollbars and lines.
The following is a screenshot of an app in the vscode terminal. I have highlighted where the rendering isn't quite right. I suspect there is more than one issue here. It looks like their is both a sub-pixel glitch and maybe a block char renders outside of a cell.
The following is iTerm on MacOS. Other terminals look much the same.
I've zoomed in the exaggerate the effect, but the issue is present on more typical zoom levels.
VS Code version: Code 1.71.2 (74b1f97, 2022-09-14T21:07:15.900Z)
OS version: Darwin arm64 21.6.0
Modes:
Sandboxed: No
System Info
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_renderer: enabled_on
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: disabled_off
Extensions (48)
(3 theme extensions excluded)
A/B Experiments
The text was updated successfully, but these errors were encountered: