I make a test to load and unload several streaming levels once 5s.After 15 min or more,it will carsh and report LogGarbage: Warning: Spent more than 10.00s on routing FinishDestroy to objects (objects in queue: 29) LogGarbage: Warning: [0]: Texture2D None.None, IsReadyForFinishDestroy: false LogGarbage: Warning: [1]: Texture2D None.None, IsReadyForFinishDestroy: false LogGarbage: Warning: [2]: Texture2D None.None, IsReadyForFinishDestroy: false LogGarbage: Warning: [3]: Texture2D None.None, IsReadyForFinishDestroy: false LogOutputDevice: Error: Spent to much time waiting for FinishDestroy for 29 object(s) (last object: Texture2D None.None), check log for details
The engine still logs after crash and it’ll make a hug log file, even 50GB if i do nothing.
Any helps for this? I have no idea about it.
it really depends on your code.
what are those t2d doing?
by that “is ready for finish destroy false” gives me the idea that the texture might still be in a state waiting for something.
do you use them to draw? there’s a function to finish a drawing after starting one i cant remember the name. i think it’s " end draw" and it exists on the drawing “context” object. Begin Draw Canvas to Render Target | Unreal Engine 5.2 Documentation?
are you keeping references to the texture? do you pass them around?
are you using cpp or bp?
i don’t know much about it. with no context of your code all i have are really just guesses.
it would really help to see some of your code or what you actually are doing with these things.
my guess is you are keeping a reference to one of those textures, either on a material or in cpp or in bp. and hence can’t unload it.
specially since you are unloading dynamically.
the size of the log and spam is just unreal spin-lock waiting for it to be freed.
I don’t have the code either.I’m just using others’ paks to load and unload their levels.Only a few paks will make this.
And the loading code is in a big module, I can’t show it in a few codes.But i actually do nothing on textures.
maybe there’s some problem with the asset lifecycle inside those paks, or maybe some inter-dependency. i wouldn’t know for sure.
or maybe a deadlock when trying to un/load and something triggers a flush.