Cesium causes app to seize after random amount of time

So, we had run into some issues with our app randomly locking up on cesium levels. This only occurred on the servers we are running the app on. When we used a profiler, it showed there was a large spike in GPU usage and then it would drop to 0 and the program would freeze.

This only happens on levels running cesium tiles. The only way we were able to stop the freezing is to add the command line arg “-onethread”.

I am unsure why this worked but it did. It seems like maybe there is some thread that is causing issues but when it is executed sequentially it works fine.

Please let me know if there are any logs or additional info you might need.

Hi @TeraDan!

I’m sorry that you’re experiencing issues with the Cesium plugin. From a glance, I can’t tell what could be causing the crash, but we can try to help with more information:

  • What versions of Unreal Engine and Cesium for Unreal are you using?
  • What device are you running your app on? Desktop? Mobile?
  • What tilesets are you using? For example, Cesium World Terrain? Google Photorealistic 3D Tiles?
  • Are there any common factors that occur before the freeze? For example,
    • Does the freeze happen after a certain amount of time that the level has been open?
    • Does the freeze happen in a particular area of the world?
    • Does the freeze happen after certain user inputs?
  • When the app freezes, does it eventually unfreeze? Or does the program seem to be suspended indefinitely?

Please feel free to include screenshots or add anything else that I might have missed. I know this is a long list of questions, but it’s all in the name of giving more informed help. :smile:

Once we establish some key information, we can troubleshoot from there. Thank you!

  1. We are using 5.3.2
    *Not sure what version of cesium, whatever is on the marketplace
  2. We are running on a server and connecting via pixel streaming. The server is using a T4 GPU
  3. We were initially using the google api tileset but switched to Cesium World Terrain with OSM buildings to test but it didn’t have any impact.
  4. Only common factor that we could determine is moving quickly and erratically. There wasn’t a common interval when it would freeze. Happens anywhere in the world.
  5. It freezes until the unreal thread times out and then it crashes.

Hi @TeraDan,

Thank you for the detailed information! It’s hard to say what’s going wrong. Does modifying the Cesium3DTileset settings help at all?

In particular, you could try:

  • Reducing the Maximum Simultaneous Tile Loads
  • Setting the Maximum Cached Bytes to 0 (to disable caching)
  • Disabling Forbid Holes (if you have enabled it)

Let us know if those settings make a difference for you! Especially if one setting makes more of a difference than the others.

I implemented the above changes and disabled running on a single thread.

It seems like it does not play nice with pixel streaming.

I tested by using windows remote desktop and I was able to move around fine.

As soon as I launched pixel streaming, it crashed. So it may be some combination of those 2 tools not playing nice with each other.

Hi @TeraDan,

Thanks for your response, and for looking deeper on your end! This is really helpful information. I’ve written up an issue on Github based on your description; we’ll post updates to the issue and this thread after we investigate more deeply. :pray:

Great! Thanks for all your help!