Skip to content
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

Implement Metal renderer for MacVim #1262

Open
ychin opened this issue Aug 4, 2022 · 0 comments
Open

Implement Metal renderer for MacVim #1262

ychin opened this issue Aug 4, 2022 · 0 comments
Labels
Investigation Renderer Text rendering issues, including CoreText renderer
Milestone

Comments

@ychin
Copy link
Member

ychin commented Aug 4, 2022

We should implement a Metal-based text renderer for MacVim. #858 fixed a lot of the issues with the previous way MacVim rendered text and laid the grounds work by storing the buffer of the text so it could be redrawn. However, it is not as fast as it could be because it relies on software rendering and on scrolling (or other events) it needs to redraw quite a fair amount of texts, leading to scrolling not being as smooth as it could be.

Implementing a proper Metal renderer would allow us to get the native scrolling performance back as it's trivial to submit redraws.

There are also other downstream features (some in experimentation) that would need the Metal renderer to work properly. For example, if we want per-pixel scrolling (#273), we need a high-enough frame rate to be able to generate a smooth animation. Other special animation effects such as locating cursors, or cursor animations would all benefit from a Metal renderer.

Also see #1259 for performance issue with it.

@ychin ychin added the Renderer Text rendering issues, including CoreText renderer label Aug 4, 2022
@ychin ychin added this to the Backlog milestone Aug 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Investigation Renderer Text rendering issues, including CoreText renderer
Projects
None yet
Development

No branches or pull requests

1 participant