I'm filing this issue to track the known scrolling performance regression from #757 (see that thread for more details). Although it's known already, this way I can subscribe to the issue and hopefully get notified when it's fixed. :)
Here's a first pass at a change which significantly improves performance for me. I'm not quite ready to make a PR, but please try it out:
https://github.com/s4y/macvim/tree/stateful-render
All feedback is welcome.
Two notes re. the above:
Some of the new rendering code is just copied and pasted from MMCoreTextView's three other rendering paths. Since it seems to do as well as them, I'd love to delete the other paths in my PR instead of trying to make them all work at the same time.
I'm not done making rendering faster 馃槈. If this works out, I know what I want to do next.
Omg, this is night and day faster!
I have a very fast keyboard repeat rate and so scroll performance is super noticeable when it chugs!
Great work so far, excited for what's to come!
(I'm on vacation right now - so won't have a ton of opportunity to test)
Performance looks great but UltiSnips stopped working with this patch. Otherwise great work!
@juliuszint How does UltiSnips not work? Please file another issue for that. Also there's a new version coming out that fixes Ctrl-C not working but it's hard to tell if it's related without more info.
@ychin Sorry, that was just meant as a feedback for the patch that @s4y provided. Since he explicitly wrote that this code is not ready for a pull request and not merged into master i think filing a issue would be a little bit early. I never encountered this problem with a official MacVim release.
@juliuszint Ah ok. Cool good to know. One less bug for me to fix.
@s4y if you feel like it I would recommend making a pull request with "[WIP]" as a prefix to the title so conversations and discussions on your fix can be focused there. It's up to you though.
One small thing I have noticed:

Every once in a while, a tiny artifact will appear, in roughly the same-ish location. It looks like a dead pixel but I can confirm its not since (a it comes through on screenshots) and be it follows the window when I move it around. If I scroll the document it goes away
@ychin et. al: See #858!
@amadeus Let's continue on the PR? The current patch might affect this, but might also not.
@juliuszint If there's any more detail you can share (on the PR), please do!
Just in case it's helpful, for me it's also affecting how fast the caret travels.
I have a really high key repeat rate, with really low delay, so the effect is really noticeable.
@nuc exactly same here. however, there is an open PR #858 which fixes the issue
Could someone share build here for test. I cant build it locally due to Error 65 which should be resolved by installing Xcode - but it doesn't help me.
MacVim.app.zip
Configured with ./configure --enable-python3interp. Hope this works for you.
MacVim.app.zip
Configured with./configure --enable-python3interp. Hope this works for you.
Better to make it with python3 dynamic
Most helpful comment
MacVim.app.zip
Configured with
./configure --enable-python3interp. Hope this works for you.