Completely Unused Textures Sitting in Memory (NonStreaming mips)

Hey folks! I’m running up against a very odd situation that’s affecting a couple of my games. Basically, it seems like every single texture I add to the content browser gets loaded into the texture pool.

I noticed this when we kept hitting texture pool size warnings basically everywhere in our game–even menus where very little was getting rendered. When I ran Stat Streaming, I saw that the number in NonStreaming mips was huge. That seemed weird to me, so I ran ListTextures and the output log filled up with literally every texture I’ve added to the game.

To further test this, I created a completely blank level and ran it again. Same thing. This is my Stat Streaming from a level that has literally nothing in it.

To further test this, I added a very large texture to the game content browser and ran ListTextures. It came up as loaded into the texture pool even though I use it nowhere in the game. I have no sprites or materials that reference it at all.

I have Texture Streaming turned on and only a few of my UI textures are set to “Never Stream”. I realize I could just bump up my texture pool and solve this problem, but this feels like something that I should be able to fix. Thanks!

edit: all my textures are Power of 2 sizes so that’s not the problem either.

Your post reminded me of the ListTexture command, thank u. >(

ListTexture actually has to be executed in standalone or packaged game to actually show you currently used textures and the second last argument shows u if it streams or not. Mostly lightmaps and reflection cube maps will show up as non streamable.

Did you find out how to clear out unused textures in memory?

I’m having the exact same issue… NonStreaming Mips seems to be loading the entire content browser’s cubemap and HDR textures, despite having no references to the current level. I see nearly 12GB NonStreaming Mips in a blank level. Did you ever sort this out, @gyrobaal ?

Can anyone say if this NonStreaming Mips metric working as intended?

1 Like

Having the same problem, did you ever figure it out ? I audit my textures, there is 500 mb only, many of those textures are not even used in the scene anymore, but still that 500 mb is enough to cause the texture pool over budget error, makes no sense.

So, I’m not 100%… it’s been a minute but I never found much of anything, definitive, to help. What I did learn is that this kind of profiling, in the editor, is not entirely reliable for a number of reasons and I THINK, at least as far as cubemaps go, is a reporting error.

Yeah makes no sense, I guess it won’t behave like that in the build.