[PR #16219] AtlasEngine: Minor bug fixes #30868

Open
opened 2026-01-31 09:43:28 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/16219

State: closed
Merged: Yes


This commit fixes 4 minor bugs:

  • Forgot to set the maximum swap chain latency. Without it, it defaults
    to up to 3 frames of latency. We don't need this, because our renderer
    is simple and fast and is expected to draw frames within <1ms.
  • ClearType treats the alpha channel as ignored, whereas custom shaders
    can manipulate the alpha channel freely. This meant that using both
    simultaneously would produce weird effects, like text having black
    background. We now force grayscale AA instead.
  • The builtin retro shader should not be effected by the previous point.
  • When the cbuffer is entirely unused in a custom shader, it has so far
    resulted in constant redraws. This happened because the D3D reflection
    GetDesc call will then return E_FAIL in this situation.
    The new code on the other hand will now assume that a failure
    to get the description is equal to the variable being unused.

Closes #15960

Validation Steps Performed

  • A custom passthrough shader works with grayscale and ClearType AA
    while also changing the opacity with Ctrl+Shift+Scroll
  • Same for the builtin retro shader, but ClearType works
  • The passthrough shader doesn't result in constant redrawing
**Original Pull Request:** https://github.com/microsoft/terminal/pull/16219 **State:** closed **Merged:** Yes --- This commit fixes 4 minor bugs: * Forgot to set the maximum swap chain latency. Without it, it defaults to up to 3 frames of latency. We don't need this, because our renderer is simple and fast and is expected to draw frames within <1ms. * ClearType treats the alpha channel as ignored, whereas custom shaders can manipulate the alpha channel freely. This meant that using both simultaneously would produce weird effects, like text having black background. We now force grayscale AA instead. * The builtin retro shader should not be effected by the previous point. * When the cbuffer is entirely unused in a custom shader, it has so far resulted in constant redraws. This happened because the D3D reflection `GetDesc` call will then return `E_FAIL` in this situation. The new code on the other hand will now assume that a failure to get the description is equal to the variable being unused. Closes #15960 ## Validation Steps Performed * A custom passthrough shader works with grayscale and ClearType AA while also changing the opacity with Ctrl+Shift+Scroll ✅ * Same for the builtin retro shader, but ClearType works ✅ * The passthrough shader doesn't result in constant redrawing ✅
claunia added the pull-request label 2026-01-31 09:43:28 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#30868