Depth of Field 4.14 not working on iOS

So, for my project, I added a post processing volume, unbound, to my scene. My viewport is in mobile iOS preview (not shader5). I was able to get vignette working, as well as bloom both in editor and on the iphone 7. However, depth of field is being a royal pain.

According to the documentation, I don’t need to enable tonemapping unless I enable the High Quality Mobile Guassian setting for DoF. So I left tonemapping disabled. Also, the documentation said Scale was only needed if I was using Bokeh DoF, which I am not. I am using Gaussian DoF. In the editor viewport, DoF was not working. I later discovered that I had to enable Scale and set it from 0 to 1, then the Gaussian DoF worked.

Once I installed the build on my iphone7, DoF wasn’t working at all. I tried going into the Device Profiles (there is currently no entry for the iPhone7, so I assume it is defaulting to the iPhone6SPlus that we have present), and in t he iPhone6SPlus, under Rendering, I added r.DepthOfFieldQuality (set to 4), r.DepthOfField.DepthBlur.Amount (set to 2) and r.DepthOfField.DepthBlur.Scale (set to 1). But these had no effect.

Does anyone have any thoughts on how to get Gaussian DoF post processing to work on the iPhone7? Anything I might have overlooked or not thought of?

There was a bug in 4.14, if you find PostProcessDOF.cpp and look for:

OutEnvironment.SetDefine(TEXT(“FORWARD_SHADING”), IsFeatureLevelSupported(Platform, ERHIFeatureLevel::SM4) ? 0u : 1u);

and change it to:

OutEnvironment.SetDefine(TEXT(“MOBILE_SHADING”), IsFeatureLevelSupported(Platform, ERHIFeatureLevel::SM4) ? 0u : 1u);

You’ll probably need to modify shaderversion.usf to trigger a shader rebuild too.

4.15 P4 is working.