Krita has this setting, and I think it might help a lot for performance with large brushes or lots of dabs-per-xxx. Am I correct in my assumption that every call to stroke_to invokes a screen update? That is, every single dab is its own screen refresh?
If so I think some of my insane-o brushes that create bazillions of tiny dabs would see a huge performance benefit even limiting FPS to 60. On slower systems limiting to 30 or 10 might even useful.
I suppose the tile storage could get out-of-sync with what is on the screen, which might be really hard to reconcile without triggering a full screen refresh every once in a while. Or maybe the in-between frames just update a semi-persistent pending_dabs bounding box in a way that only grows the bounding box bigger and bigger. When we finally refresh the screen we can combine the current dab’s bounding box w/ the pending_dabs bounding box and and do the refresh. Then reset the pending_dabs bounding box and repeat.