Restore differential drawing to DirectWrite renderer #1066

Open
opened 2026-01-30 22:15:40 +00:00 by claunia · 0 comments
Owner

Originally created by @miniksa on GitHub (May 14, 2019).

Originally assigned to: @miniksa on GitHub.

For some reason, I turned this off in the haste to get things "working" well enough.

But it's definitely a performance hog. We should get differential drawing back inside the DirectWrite renderer.

Most of the provisions are already there with the invalid rectangle, we're just not using them.

I'm not sure if I'll be able to do cell-by-cell differential drawing like the GDI renderer because the more advanced glyphs/runs we support now (like ligatures) might necessitate that we instead just mark "invalid lines" and redraw the whole line. That would be mildly better than the whole screen.

This also would re-enable the use of the Present1 call to the DX infrastructure which is more efficient at scrolling and dirty regions.

Originally created by @miniksa on GitHub (May 14, 2019). Originally assigned to: @miniksa on GitHub. For some reason, I turned this off in the haste to get things "working" well enough. But it's definitely a performance hog. We should get differential drawing back inside the DirectWrite renderer. Most of the provisions are already there with the invalid rectangle, we're just not using them. I'm not sure if I'll be able to do cell-by-cell differential drawing like the GDI renderer because the more advanced glyphs/runs we support now (like ligatures) might necessitate that we instead just mark "invalid lines" and redraw the whole line. That would be mildly better than the whole screen. This also would re-enable the use of the `Present1` call to the DX infrastructure which is more efficient at scrolling and dirty regions.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#1066