Shaderlab causing iOS freezes

Hi,

We have a game running on 24 iPads as part of an installation in a museum. The app basically has to run as stably as possible, 24/7 for seven months. We’ve been live for three days, and while the app runs without issues while idle (just showing a logged out screen), we’ve been encountering freezes while it is in use.

It happens fairly infrequently, but too often to be workable (1 freeze on day one, 4 on days two and three respectively). We collected some crash logs from two devices, they both show a similar stack trace (see below). We get an 0x8badf00d, so I initially thought it would have something to do with a network call freezing up the main thread, but the stack trace seems to point towards a rendering issue. We are using a couple of special shaders (this one, this one, and we’re using ARKit which also has some).

My question is twofold: 1) are we correct in assuming this is a rendering issue, meaning to fix it we need to look at that part of our app and not the networking code, or am I reading the logs wrong? and 2) If so, how do we determine which shaders are causing the problem? I can’t figure it out from the log.

Some more info about our setup:

  • iPad Pro 2018
  • iOS 12.2
  • Unity 2018.3.0f2

Thanks in advance!

Anyone who can help us interpret the logs? It’s a time-critical issue, since the installation is live at the moment.

Update: it turns out these logs are not actually saved when the application hangs, but rather when we shut it down manually to restart it. Does this mean the logs don’t actually contain information about what caused the freeze? Am I correct in assuming the logs are just telling me “the app was trying to do something and it was still doing this when you killed it, so that’s how I know it took too long”? I.e., the root of the issue is that there is just some error in our code that causes the app to freeze, rather than it begin terminated because a process took too long?

Please submit a bug-report as described in this document:

It’s important that you report these issues together with a reproduction project if you want them to get fixed. If you don’t do it, it might be a long time until someone else reports them or until Unity Technologies find them.

After you submitted the bug-report, you receive a confirmation email with a bug-report Case number. You can post the Case number (number only, not the link) in this forum thread for Unity staff to pick up, in case they see it.

I’m not yet convinced the issues we are encountering are due to a bug in Unity. For now, I still consider it more likely that our issues are due to problems in our own code. The problem is we are having a hard time tracking down the root of issues, since they occur very infrequently (relatively speaking, in absolute terms they represent a major problem to the use of our application) and don’t seem to generate any informative logs.

If anyone has any suggestions on how to approach the search, they would be welcome.

We meet same problem with yours, any solution?