Characters clipped at left edge of terminal and not invalidated beyond right edge #14693

Open
opened 2026-01-31 04:17:06 +00:00 by claunia · 1 comment
Owner

Originally created by @wqnvlz on GitHub (Jul 26, 2021).

Windows Terminal version (or Windows build number)

1.9.1942.0

Other Software

No response

Steps to reproduce

  • Occurs only when "useAcrylic": false, and "experimental.rendering.forceFullRepaint": false,
  • Affects antialiased (more noticeable with cleartype than grayscale) and italicized text--seems like it affects all text that is drawn wider than its bounding box
  • In Cascadia Code and Consolas, some wide characters often affected are %, @, and _.

In a command line or editor, or using a script:

  • in the leftmost column of the terminal, type a character that extends beyond the left edge of its bounding box; or,
  • in the rightmost column, repeatedly type and delete a character that extends past the right edge of its bounding box

PowerShell that repeatedly writes to the rightmost column:

Write-Host ("%`b " * 200000)

Script that does the same with all ASCII printable characters and erases the characters to show the artefacts more clearly:

# PowerShell needs to clear twice to remove artefacts
Clear-Host; Start-Sleep 0.1; Clear-Host
foreach ($i in 33..126) {
    [char]$c = $i
    [Console]::SetCursorPosition([Console]::WindowWidth - 1, ($i - 33) % [Console]::WindowHeight);
    Write-Host -NoNewline ("$c`b " * 200000) "`b$c "
    if (($i - 32) % [Console]::WindowHeight -eq 0) {
        Start-Sleep 1
        Clear-Host
    }
}

Expected Behavior

Text is rendered without artefacts.

Actual Behavior

Text is clipped at the left edge of the leftmost column. Text drawn past the right edge of the rightmost column is not erased when text is redrawn, causing pixels to accumulate over time.

After writing the same character to the same position many times in Cascadia Code Edit: Consolas!:

cleartype

Cropped and nearest-neighbour upscaled 400%:

leftmost column rightmost column erased leaving artefacts
aliased image image image
grayscale image image image
cleartype image image image
aliased
(italicized)
image image image

The "dead" pixels are burned in every time a character is written, the cursor blinks, or a character is scrolled in from offscreen, but not when scrolling text already on screen.

The edges where this occurs line up with the area that appears due to #5703 (#9381 seems related and is also visible here; #8993 might also be related):
image

Originally created by @wqnvlz on GitHub (Jul 26, 2021). ### Windows Terminal version (or Windows build number) 1.9.1942.0 ### Other Software _No response_ ### Steps to reproduce - Occurs only when `"useAcrylic": false,` and `"experimental.rendering.forceFullRepaint": false,` - Affects antialiased (more noticeable with `cleartype` than `grayscale`) and italicized text--seems like it affects all text that is drawn wider than its bounding box - In Cascadia Code and Consolas, some wide characters often affected are `%`, `@`, and `_`. In a command line or editor, or using a script: - in the leftmost column of the terminal, type a character that extends beyond the left edge of its bounding box; or, - in the rightmost column, repeatedly type and delete a character that extends past the right edge of its bounding box PowerShell that repeatedly writes to the rightmost column: ```ps1 Write-Host ("%`b " * 200000) ``` Script that does the same with all ASCII printable characters and erases the characters to show the artefacts more clearly: ```ps1 # PowerShell needs to clear twice to remove artefacts Clear-Host; Start-Sleep 0.1; Clear-Host foreach ($i in 33..126) { [char]$c = $i [Console]::SetCursorPosition([Console]::WindowWidth - 1, ($i - 33) % [Console]::WindowHeight); Write-Host -NoNewline ("$c`b " * 200000) "`b$c " if (($i - 32) % [Console]::WindowHeight -eq 0) { Start-Sleep 1 Clear-Host } } ``` ### Expected Behavior Text is rendered without artefacts. ### Actual Behavior Text is clipped at the left edge of the leftmost column. Text drawn past the right edge of the rightmost column is not erased when text is redrawn, causing pixels to accumulate over time. After writing the same character to the same position many times in ~~Cascadia Code~~ _Edit: Consolas!_: ![cleartype](https://user-images.githubusercontent.com/39781942/127015058-b4312aef-18aa-4b4d-8c97-3d2b2bd6ad07.png) Cropped and nearest-neighbour upscaled 400%: | | leftmost column | rightmost column | erased leaving artefacts | | ------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | | aliased | ![image](https://user-images.githubusercontent.com/39781942/126933299-6306bfa6-76b6-4f10-88a7-e33a1e8612da.png) | ![image](https://user-images.githubusercontent.com/39781942/127007408-f03cdc12-4401-4011-8160-03869a2971aa.png) | ![image](https://user-images.githubusercontent.com/39781942/126933299-6306bfa6-76b6-4f10-88a7-e33a1e8612da.png) | | grayscale | ![image](https://user-images.githubusercontent.com/39781942/126933365-280705e3-1040-405e-a5f2-c10b75ab14ea.png) | ![image](https://user-images.githubusercontent.com/39781942/127007418-8635da9f-419c-41ac-bf9a-c928863c22d2.png) | ![image](https://user-images.githubusercontent.com/39781942/126933341-78feebe5-c162-4657-a5b1-efa807db45aa.png) | | cleartype | ![image](https://user-images.githubusercontent.com/39781942/126933374-97eaa009-e654-4794-88a3-687cd60da5fc.png) | ![image](https://user-images.githubusercontent.com/39781942/127007432-0b9e892c-aab8-42c8-aed3-ae0498ca3026.png) | ![image](https://user-images.githubusercontent.com/39781942/126933385-04aae8e5-79f6-4753-a462-752c918ea00e.png) | | aliased<br />(italicized) | ![image](https://user-images.githubusercontent.com/39781942/127006320-6b0daf64-6c5b-4ecd-96db-3fcc3e967f8d.png) | ![image](https://user-images.githubusercontent.com/39781942/127007442-69f8e72c-09d7-495f-8bee-e683d9e9cde6.png) | ![image](https://user-images.githubusercontent.com/39781942/127006361-d9290e17-0691-4be8-b6dd-613c3d145f54.png) | The "dead" pixels are burned in every time a character is written, the cursor blinks, or a character is scrolled in from offscreen, but not when scrolling text already on screen. The edges where this occurs line up with the area that appears due to #5703 (#9381 seems related and is also visible here; #8993 might also be related): ![image](https://user-images.githubusercontent.com/39781942/127010585-a96bf407-b451-4bcd-8a42-b271cea26244.png)
claunia added the Help WantedArea-RenderingIssue-BugPriority-3Product-Terminal labels 2026-01-31 04:17:06 +00:00
Author
Owner

@wqnvlz commented on GitHub (Jul 26, 2021):

Also noticed:

  • Resizing the terminal window after startup sometimes causes the issue to go away temporarily
  • Most programs remove the artefacts when clearing the terminal, but PowerShell Core's Clear-Host only works if no scrollbar is displayed
@wqnvlz commented on GitHub (Jul 26, 2021): Also noticed: - Resizing the terminal window after startup sometimes causes the issue to go away temporarily - Most programs remove the artefacts when clearing the terminal, but PowerShell Core's `Clear-Host` only works if no scrollbar is displayed
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#14693