microsoft / microsoft/terminal

[MEGATHREAD] AtlasEngine bugs and missing features (`experimental.useAtlasEngine`)

Open
#9,999 8 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-AtlasEngine Issue-Scenario Priority-1 Product-Terminal
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

Bugs

  • Desktop stutters on Nvidia GPUs due to G-SYNC switching on/off when two MPO planes are active (MSFT:37283316)
  • Zooming (font changes in general) are much slower than DxEngine
    👉 Doesn't occur with a local dev build. What's wrong with our release builds? 🤔
  • Atlas acts like IntenseIsBold is always on
  • Remaining gridlines (left, right, top, bottom, double underline)
  • Missing cursor when experimental text rendering engine is enabled in HDR enabled monitor #12507
  • Changing transparency from the command palette doesn't change the transparency until committed / pressing enter

Missing features

  • ClearType
  • Links not underlined with experimental.useAtlasEngine enabled #11871
  • A more conservative GPU memory usage
  • Shrinking the backing texture if possible
  • Double-height and double-width line support
  • #13853

New features

  • Raster fonts
  • Soft fonts
  • Investigate alternative ways to handle box drawing/block elements #5897
    • Closes: experimental.useAtlasEngine breaks draw-box rendering #12512
    • Possibly also #6161
  • Arrow (➜) character in prompt is rendered small #6864

Cleanup

  • Deduplicate font fallback selection during UpdateFont(). Both DxEngine and AtlasEngine fall back to Consolas, etc. separately.

Things we think were fixed by this renderer...

...Or at least, this renderer got out of the way so that these can be fixed now.

  • #800 Ligatures do not render under cursor column in Vim
  • #3075 Processing large data is extremely slow (in VMware)
  • #3515 Extremely sluggish behavior when in full screen on a 4K monitor
  • #4974 [v0.10] When two characters are ligatured, the first one becomes invisible
  • #6738 Some of the extended Unicode characters are rendered with incorrect size and placement
  • #6974 Extremely lower performance when displaying too many box-shading glyphs
  • #7147 Support renderer fast presents
  • #7927 Frames and special characters from bitmap TTF font are not visible
  • #10462 Extremely slow performance when processing virtual terminal sequences
  • #13527 Unicode Box drawings characters not rendered correctly (disappear) with Japanese fonts
  • MSFT-38159826

Not really a bug

  • #12349

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files, tests, or implementation entry points are named. Start by choosing one unchecked AtlasEngine item from the megathread and use its linked issue where available; done would require a separately scoped change with a reproducible result and focused validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, desktop, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.