Halp! Material Won't Compile in Metal but does in Vulkan Preview

So, I’ve been working on a layered landscape material for “high- end” mobile. I’m trying to understand why everything seems to work as expected when using Vulkan preview but it crashes on preview for Metal iOS devices.

The logs for Metal are saying that I’m over the texture sampler limit…I do not get that error on Vulkan.

Are there significant differences in what is supported in each mode?

BTW…those two spots in the landscape were some additional tester layers I’ve been trying to add.

I was thinking that each being ES3.1 they would behave almost the same. Guess not.

Attaching what i think are the relevant log sections

**VULKAN Preview - works
 
[  0]LogLoad: Game class is 'GameModeBase'
[2017.10.17-07.21.41:458][  0]LogWorld: Bringing World /Temp/Autosaves/Game/MobileStarterContent/Maps/UEDPCMinimal_Default.Minimal_Default up for play (max tick rate 0) at 2017.10.17-03.21.41
[2017.10.17-07.21.41:459][  0]LogWorld: Bringing up level for play took: 0.366817
[2017.10.17-07.21.42:012][  0]LogLoad: Took 11.325642 seconds to LoadMap(/Temp/Autosaves/Game/MobileStarterContent/Maps/UEDPCMinimal_Default)
[2017.10.17-07.21.42:269][  0]LogRenderer: Reallocating scene render targets to support 1280x720 Format 10 NumSamples 1 (Frame:1).
[2017.10.17-07.21.42:269][  0]LogLoad: (Engine Initialization) Total time: 21.66 seconds
[2017.10.17-07.21.42:269][  0]LogLoad: (Engine Initialization) Total Blueprint compile time: 0.00 seconds
[2017.10.17-07.21.42:269][  0]LogExternalProfiler: No external profilers were discovered.  External profiling features will not be available.
[2017.10.17-07.21.42:288][  0]LogWindowsTextInputMethodSystem: Display: IME system now deactivated.
[2017.10.17-07.23.34:217][663]LogWindowsTextInputMethodSystem: Display: IME system now deactivated.
[2017.10.17-07.23.34:221][663]LogEngine: All Windows Closed
[2017.10.17-07.23.34:221][663]LogWindows: FPlatformMisc::RequestExit(0)
[2017.10.17-07.23.34:965][664]LogExit: Preparing to exit.
[2017.10.17-07.23.34:965][664]LogMoviePlayer: Shutting down movie player
[2017.10.17-07.23.36:008][664]LogExit: Game engine shut down
[2017.10.17-07.23.36:053][664]LogExit: Object subsystem successfully closed.




No Changes to Material...but errors out in iOS/Metal preview..here's the log

IOS/Metal – does not work.
 

[2017.10.17-06.15.29:662][  0]LogLoad: Game class is 'GameModeBase'
[2017.10.17-06.15.30:065][  0]LogWorld: Bringing World /Temp/Autosaves/Game/MobileStarterContent/Maps/UEDPCMinimal_Default.Minimal_Default up for play (max tick rate 0) at 2017.10.17-02.15.30
[2017.10.17-06.15.30:065][  0]LogWorld: Bringing up level for play took: 0.356992
[2017.10.17-06.15.30:510][  0]LogLoad: Took 11.167581 seconds to LoadMap(/Temp/Autosaves/Game/MobileStarterContent/Maps/UEDPCMinimal_Default)
[2017.10.17-06.15.30:760][  0]LogRenderer: Reallocating scene render targets to support 1280x720 Format 10 NumSamples 1 (Frame:1).
[2017.10.17-06.15.30:760][  0]LogLoad: (Engine Initialization) Total time: 20.77 seconds
[2017.10.17-06.15.30:760][  0]LogLoad: (Engine Initialization) Total Blueprint compile time: 0.00 seconds
[2017.10.17-06.15.30:761][  0]LogExternalProfiler: No external profilers were discovered.  External profiling features will not be available.
[2017.10.17-06.15.30:779][  0]LogWindowsTextInputMethodSystem: Display: IME system now deactivated.


****[2017.10.17-06.15.37:816][416]LogShaderCompilers: Warning: Failed to compile Material /Game/Landscape/Material/LandscapeMaterialGLG_Mat.LandscapeMaterialGLG_Mat for platform PCD3D_ES31, Default Material will be used in game.
[2017.10.17-06.15.37:816][416]LogShaderCompilers: Warning: 	/Engine/Private/MobileBasePassPixelShader.usf(336,10-59):  warning X3206: implicit truncation of vector type
[2017.10.17-06.15.37:816][416]LogShaderCompilers: Warning: 	/Engine/Private/MobileBasePassPixelShader.usf(337,10-71):  warning X3206: implicit truncation of vector type
[2017.10.17-06.15.37:816][416]LogShaderCompilers: Warning: 	/Engine/Private/MobileBasePassPixelShader.usf(50,14-37):  err0r X4510: maximum ps_4_0 sampler register index (16) exceeded
[2017.10.17-06.15.37:816][416]LogShaderCompilers: Warning: 	/Engine/Private/LandscapeVertexFactory.ush(55,14-36):  err0r X4510: maximum ps_4_0 sampler register index (16) exceeded****



[2017.10.17-06.15.51:419][258]LogWindowsTextInputMethodSystem: Display: IME system now deactivated.
[2017.10.17-06.15.51:423][258]LogEngine: All Windows Closed
[2017.10.17-06.15.51:423][258]LogWindows: FPlatformMisc::RequestExit(0)
[2017.10.17-06.15.51:645][259]LogExit: Preparing to exit.
[2017.10.17-06.15.51:645][259]LogMoviePlayer: Shutting down movie player
[2017.10.17-06.15.52:699][259]LogExit: Game engine shut down**

Any ideas???

is there a significant difference between what should render in Vulkan vs Metal??

I read in another thread that mobile landscape supports only 3 landscape layers…is that true?

It would be really nice if someone from Epic could go in depth about what the current state of mobile landscapes are for ES 3.1 / Metal. Basically what the best practices are for high-end mobile layered landscapes…

With the release of 4.18 is the best practice for high-end mobile now to just use the Forward Shader support that was included in 4.18? I suppose that would be only if targeting iOS?