iOS: Failed to find shader map for default material WorldGridMaterial 4.7.6

Hey guys,

I’ve been trying to run our project on iOS but I am having no luck.
We were able to deploy and run successfully to the device in 4.6.1, but now in 4.7.6 (And 4.7.1) it crashes on startup with the log message:

Failed to find shader map for default material WorldGridMaterial!  Please make sure cooking was successful.

I’ve tried both fixes mentioned in the answers here:

I’ve also tried building from scratch, turning Metal support on and off and various combinations of settings with no results.

I’m attaching the relevant snippet of the iOS log, the entire build/Cooking log, and the crash ips.

I’m currently trying to run the game on an iPad Air 2 running iOS 8.1.1 (12B436) with version 4.7.6 of the sdk. I was also seeing the same issue with 4.7.1.

Any point in the right direction would be appreciated.
If there is a fix in 4.8 (Other than UE-12213 as that failed to solve the issue for me) would you be able to share the changelist number?

If there’s any further info you require, let me know.

Cheers guys.

EDIT: I just tried creating a test project using the FPS example, and it ran without any issues at all. :S

Hello FacePalm.exe,

I was looking over your information. I see that you could not get it to reproduce in a clean project. I have a couple of questions for you that will help narrow things down.

Quick questions:

  1. Could you zip down your project or a simplified version of your project that still produces the issue and sent it to us so that I can take a closer look?
  2. Could you also provide a detailed set of steps to reproduce this issue on our end?

Hey Rudy.

So our project’s repo is well over 20 GB currently, so it’s not feasible to zip it and post it, and to be honest I have no idea where to start simplifying it.

I was hoping you guys would be able to point me in a possible direction to look which would help me track down the issue and solve it.

And the set of steps to reproduce are quite literally:

  1. Open UnrealFrontend

  2. Do a full build, cook and package of the iOS project

  3. Deploy and run the app.

And then it crashes.
I know that isn’t particularly helpful, but that’s what happens.

I’ve also tried clearing all my shader caches, including disabling the DDC.

Again, could you guys give me some possibilities that could be causing this? I’m stumbling around blindly here at the moment.

Cheers.

Hello FacePalm.exe,

I know that you said you tried disableing the DDC, however did you try deleting the DerivedDataCache folder in the Engine folder and the Binaries, DerivedDataCache, Intermediate, and Saved folders in your project’s folder before starting the editor? It will take a while to start the first time since it will need to recompile all the shaders.

Yes, i have tried deleting and disabling all data caches and it unfortunately made no difference.

Hello FacePalm.exe,

I have a couple of quick questions for you.

Quick questions:

  1. if you enable “Show engine content” and search for worldgridmaterial does it come up with anything?
  2. Do you have any rapidly changing materials in your project?
  3. Could you try going through (with a copy of the project) and removing materials to see if this allows you to package out your project?

Hi Rudy,

I work at the same company and can answer your questions

  1. World Grid material is present and lives in Engine/EngineMaterials. It also is being cooked.

  2. What do you mean by rapidly changing materials? Materials with params which change often? Actors which change material often?

  3. By removing materials here you mean removing them from content all together right. This material in question is the default material.

Note we have the game running fine on PC, Xbox One and PS4.

Further update, we tried removing almost all our content and could still get the crash.

We also now have managed to get the crash with the FPS example, by just copying our config files to it (removing references to our classes and content which do not exist).

Its late here now so we will continue on that path tomorrow. Any idea what in our configs would cause the default material to stop working?

So after a bunch of commenting stuff in/out in the configs, the issue is specifically related to the r.MobileHDR option.
This was set to false in our default engine config.

Also, setting r.MobileHDR to True in the device profiles also caused the issue to occur.
Once these were removed, there was no issues loading the game on iOS.

Would it be possible to to have some sort of warning instead of it behaving in a really obscure way?

Hello FacePalm.exe,

I am happy to hear that your hard work has paid off and that you were able to find a solution to your issue. I am sure that this information will be very valuable to others if they run into this same problem. I will investigate further and rely the information found. Thank you for your time and information.

Make it a great day

Is there no working way to turn off MobileHDR? We just ran into this problem as well on 4.10.2.

It is possible turn off MobileHDR, but you need to make sure that you have no PostProcessing features switched on AT ALL.

If one of them is used, it will attempt to access the mega post processing shader, which the MobileHDR flag switches off, and then die horribly.

We now make sure that flag doesn’t get touched as it causes far too many issues.