I’ve noticed that display performance can suffer when using the CustomRenderMeshProvider2 class. For example, merely checking an object attribute inside WillBuildCustomMeshes() can gum things up. After placing a counter inside the override, I realized that it’s being called continuously – at least in rendered display modes (or if the override ever returns true). I’m wondering if someone can clarify the logic here. Doesn’t the DocumentBasedMeshesChanged() method suggest that the WillBuild status is supposed to be persistent, and updated only when necessary?

@andy is the person who can tell you the best details of his own implementation.

He is also rewriting the system completely for Rhino 8.