Page 1 of 1

Temporary streaming memory pool out of budget!

Posted: Wed Jul 24, 2019 9:20 am
by guzzo
Hi,

I'm testing my game with "launch game" on 5.4 with the assets in .pak files.
The problem is that the loading time for levels is very very long and when the level is loaded I have for a long time the error "Temporary streaming memory pool out of budget!". The textures appears very slowly, and even some objects are missing and they are loaded after minutes. Sometimes also the character doesn't have the animations loaded, so you see the legs floating above the ground.

All this is not happening if I use the assets unzipped in folders instead of using .pak.
Here is a screenshot with the problem:
GameLauncher_2019_07_24_11_06_58_701.jpg
GameLauncher_2019_07_24_11_06_58_701.jpg (269.75 KiB) Viewed 3455 times

This is my game assets folder:
paks.png
paks.png (30.03 KiB) Viewed 3455 times
Can someone help me to understand what is happening?

Re: Temporary streaming memory pool out of budget!

Posted: Thu Jul 25, 2019 9:28 am
by guzzo
Update:
I've checked with sys_streaming_debug=1 and I've found that the texture "read" value is much higher with the assets in *.pak files.

For example look at this example scene:
no pak.jpg
no pak.jpg (249.18 KiB) Viewed 3374 times
with pak.jpg
with pak.jpg (248.75 KiB) Viewed 3374 times

I can't understand why is happening this.
The more objects there are in the scene, the more this difference increases. The consequence is that the Hard Disk has to read a lot of data and so the textures takes many minutes to appear. Even some objects take time to appear.

Please is there anyone that can help me to solve this?

Re: Temporary streaming memory pool out of budget!

Posted: Thu Aug 22, 2019 3:05 pm
by Cry-Flare
You can try to split the PAK files into smaller chunks, try to keep objects local to a scene in a single pak, shared object in another single pak etc.
You can increase the texture streaming pool, it will try to load the PAK file into memory, if you run out of streaming pool I believe it will de-allocate a previously loaded PAK file and load another. So you may be trashing between different PAK files. If you make them more localized and smaller, this should happen less and less thrashing should occur.

sys_streaming_memory_budget is the CVar you will need to adjust memory pool size.

Re: Temporary streaming memory pool out of budget!

Posted: Sat Aug 24, 2019 8:53 am
by guzzo
You can try to split the PAK files into smaller chunks, try to keep objects local to a scene in a single pak, shared object in another single pak etc.
You can increase the texture streaming pool, it will try to load the PAK file into memory, if you run out of streaming pool I believe it will de-allocate a previously loaded PAK file and load another. So you may be trashing between different PAK files. If you make them more localized and smaller, this should happen less and less thrashing should occur.

sys_streaming_memory_budget is the CVar you will need to adjust memory pool size.
Thank you for your help.
I've increased the sys_streaming_memory_budget to 512000 so that warning message disappeared. However it didn't solve the problem as the level load time is similar and the game is still suffering from massive textures pop-up when the game is loaded. Splitting the PAKs in smaller chunks helped a little bit but it is barely noticeable.

In my RC job that I've used for creating the paks, I've now set the zip_compression from 6 to 0. This helped a lot by reducing the pop-ups and the level load time by 3 times (from 90 to 30 seconds).
However the paks are now uncompressed so the game will require a lot more GB.

Is there a way to load the textures before the gameplay begins? I prefer to have a longer level load time instead of all those textures and objects that appear when the gameplay begins.

Re: Temporary streaming memory pool out of budget!

Posted: Sun Aug 25, 2019 5:23 am
by lavizh
There are system preload cvars you can try out. This will ofcourse increase level loading times.

Try searching for "preload" in console variable.

If i remember correctly particles, materials etc... can be preloaded.

Re: Temporary streaming memory pool out of budget!

Posted: Thu Aug 29, 2019 10:02 am
by guzzo
Yes I tried the preload commands, but they don't solve the tetxture appearing. It seems to do nothing noticeable.
The only command I found that solves the problem is "r_TexturesStreaming=0"
The loading time will be longer but it removes the texture pop-up when the gameplay starts or if the player is teleported to another location.

I've tested the game with texture streaming disabled and it seems to work fine. However I'd like to know if disabling textures streaming is safe or can it cause some problems?