LogSlate: Warning: FontCache flush requested. Reason: Large atlases out of space; 2/1 Textures;

Hi there,

Our project is getting this message, and we believe it could also be causing hitching.

Does Epic have any information around this warning and issue?

Would it be ok to simply enlarge the FontCache, if such a thing exists.

How/Where would one find the Config/Settings that control this.

Is this warning indicative of some kind of problem, or do we just need to increase the cache.

Are there any ways to see the stats on the font cache memory usage?

Appreciate your help!

[2025.06.17-04.38.08:780][505]LogSlate: Warning: FontCache flush requested. Reason: Large atlases out of space; 2/1 Textures; frames since last flush: 18415500063529199855 [2025.06.17-04.38.09:108][507]LogInstabilityTrackingDetails: Error: Local Framerate Threshold critically exceeded! Current: 3.22, Threshold: 5.00

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

Hi there.

What is the best way to force a flush of the font cache?
Calling the Cvar Slate.FlushFontCache 1 ?

We have noticed that in-game, 2 pages seems to be enough… If the cache hasn’t been pre-filled with junk in the pre-game main-menu.

It seems that if even if we expanded the initial pages to
Slate.MaxFontAtlasPagesBeforeFlush=2
, we would still run into at-least one flush in-game, due to the cache not being cleared beforehand.

Any suggestions here?
I will to look into the cache contents via Slate.DumpFontCacheStats=true shortly.