Hi,
There are a ton of console commands you can use both to tune the font cache and to print out stats for current usage, I’d take a look at the top of FontCache.cpp for the full list of options. Slate.DumpFontCacheStats could be especially useful for logging the current usage, and Slate.MaxFontAtlasPagesBeforeFlush will let you allocate more pages for the font atlas instead of flushing.
As for whether there’s an issue here, it can depend. Any time a new glyph appears (which could be either a new letter or an existing letter at a new size) it’ll be added to the font cache, so a lot of new text appearing at once could cause a pretty big hit to the atlas. There could also be a problem, such as animating the size of a text block, which causes new glyphs to be cached at every single size between the beginning and end of the animation and triggers one or more flushes directly. It’ll probably be useful to look at what is happening at the moment when the flush occurs to see if it’s easily explained (in which case you could tweak cvars to avoid the hitch) or if it’s caused by a bug that should be fixed.
Another useful tool for debugging in the editor, the widget reflector has a Font atlas visualizer which lets you see all of the things currently in the font atlas pages, so if you know where the flush is occurring you could use that to inspect what is being added prior to the flush. If it turns out that you just have a lot of things that need to go in there (very large glyphs, multiple characters/fonts, etc) then giving it more pages will save you the hitch from the flush.
Note that we do automatically increase the allowed page count to avoid thrashing if we see that it’s being flushed multiple times in succession (since that indicates it simply can’t hold all of the things we need to show right now), you can use Slate.GrowFontAtlasFrameWindow to set the interval in which it’ll grow vs. flushing if it continues to receive new glyphs.
Best,
Cody