Failed to compile Material after transition from Win10 to Win11

Hi ,

I made copies of MI_CesiumThreeOverlaysAndClipping and ML_CesiumRasterOverlay, added Opacitiy via Material Parameter Collection in order to animate opacity for weather tiles, and it worked well. Then I upgraded OS to Windows11. Animation still works, but there is also flickering and very slow start of the level. When I open MI_CesiumThreeOverlaysAndClipping from editor, I get a lot of red errors in a log.

I get the same thing when try to open any of Cesium Materials even in blank project !!! I tried with different versions of UE (5.6 and 5.7) and several versions of Cesium, starting 2.20. It’s all the same. Here is the error log from a blank cesium project:

LogShaderCompilers: Warning: Failed to compile Material /CesiumForUnreal/Materials/Blends/MLB_CesiumAlphaBlendBaseColor.MLB_CesiumAlphaBlendBaseColor:Material_0 for platform PCD3D_SM6, Default Material will be used in game.
Shader debug info dumped to: “C:\Users\user\Documents\Unreal Projects\test\Saved\ShaderDebugInfo\PCD3D_SM6\Material_0_5fafea6009fcecc3\Default\FLocalVertexFactory\TMaterialCHSFNoLightMapPolicy\0”
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4572,45): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4572:45: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBases.Normals[0] = Local0 ;
^
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4586,60): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4586:60: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBasesFullySimplified.Normals[0] = Local0 ;
^
LogShaderCompilers: Warning: Failed to compile Material /CesiumForUnreal/Materials/Blends/MLB_DitherFade.MLB_DitherFade:Material_0 for platform PCD3D_SM6, Default Material will be used in game.
Shader debug info dumped to: “C:\Users\user\Documents\Unreal Projects\test\Saved\ShaderDebugInfo\PCD3D_SM6\Material_0_4bd466792d5fa0c0\Default\FLocalVertexFactory\TMaterialCHSFNoLightMapPolicy\0”
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4572,45): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4572:45: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBases.Normals[0] = Local0 ;
^
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4586,60): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4586:60: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBasesFullySimplified.Normals[0] = Local0 ;
^
LogShaderCompilers: Warning: Failed to compile Material /CesiumForUnreal/Materials/Layers/ML_DitherFade.ML_DitherFade:Material_0 for platform PCD3D_SM6, Default Material will be used in game.
Shader debug info dumped to: “C:\Users\user\Documents\Unreal Projects\test\Saved\ShaderDebugInfo\PCD3D_SM6\Material_0_c167aa10c9ec5fc3\Default\FLocalVertexFactory\TMaterialCHSFNoLightMapPolicy\0”
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4572,45): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4572:45: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBases.Normals[0] = Local0 ;
^
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4586,60): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4586:60: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBasesFullySimplified.Normals[0] = Local0 ;
^
LogShaderCompilers: Warning: Failed to compile Material /CesiumForUnreal/Materials/Blends/MLB_CesiumClipping.MLB_CesiumClipping:Material_0 for platform PCD3D_SM6, Default Material will be used in game.
Shader debug info dumped to: “C:\Users\user\Documents\Unreal Projects\test\Saved\ShaderDebugInfo\PCD3D_SM6\Material_0_dd957f692e5de5b0\Default\FLocalVertexFactory\TMaterialCHSFNoLightMapPolicy\0”
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4572,45): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4572:45: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBases.Normals[0] = Local0 ;
^
C:\Program Files\Epic Games\UE_5.7\Engine\Shaders\Private\MaterialTemplate.ush(4586,60): Shader TMaterialCHSFNoLightMapPolicy, Permutation 0, VF FLocalVertexFactory:
/Engine/Generated/Material.ush:4586:60: error: use of undeclared identifier ‘Local0’
Parameters.SharedLocalBasesFullySimplified.Normals[0] = Local0 ;
^
LogSlate: Window ‘MI_CesiumThreeOverlaysAndClipping’ being destroyed

I couldn’t find anyone complaining about this problem. I also can not claim that the problem is Windows 11, but that is the only change I made. Any ideas?

Thanks.

Hey @nick_w2u ,

This one is definitely out in the weeds, I can give you some trouble shooting steps that may help, or at least get us on the path to figuring out what the issue is. I am assuming you are using the latest Unreal Engine and the latest Cesium for Unreal versions here. I am fairly confident this won’t be a Cesium Issue, and probably not an Unreal issue either. Most likely needs shaders rebuilt or drivers updated.

  1. Clear Cache and Rebuild.
    Close Unreal.
    Delete/move and backup the following folders. These should all regenerate safely without breaking anything, but to be safe you can move and rename them. /DerivedDataCache/, /Saved/,/Intermediate/ and potentially %LOCALAPPDATA%\UnrealEngine\Common\DerivedDataCache\
    After that, open your project, it may take a while.
  2. Update your graphics drivers through the NVIDIA or AMD utility, not windows update. You may have to do 1. again after this, but try opening your project first. (doesn’t hurt to windows update here as well)
  3. Clean install of latest Unreal Engine and Cesium for Unreal. (Also prbably want to repeat 1. before this as well)

If the above doesn’t work, you can also try:

  1. Force SM5 instead of SM6 (SM: Shader Model).
    Project settings > Platforms > Windows: Set Default RHI to DirectX 11 OR under targeted RHIs, uncheck SM6 and ensure SM5 is checked
  2. Disable Hardware Ray Tracing
    Project Settings > Engine > Rendering > Hardware Ray Tracing: Uncheck “Support Hardware Ray Tracing”. If using LUmen, set Global Illumination > Method to “Software Ray Tracing”

You shouldn’t have to resort to changing Shader Model or disabling Hardware Ray Tracing, but let us know how this goes!

I found a problem and it’s actually plugin version. In more details, I’m using CesiumUrlTemplateRasterOverlay instances, the problem is Refresh(Target is Cesium Raster Overlay), when triggered it refreshes not only the RasterOverlay (Material Layer Key) ,but the whole 3DTileset. I made a test and placed the first node Refresh(Target is Cesium Raster Overlay) and then node Refresh Tileset(Target is Cesium3DTileset), visually they look the same. So the flickering, which was my main problem, was a result of refreshing the whole 3DTilest. The last plugin version that works correctly is 2.20. I will downgrade my project to UE 5.6 in order to continue my work, but I hope that this information will be useful for some next plugin version, In case that my assumption is correct. Please let me know if you have more information about this issue.

If you could provide some screenshots of the behaviour and the BP setup, for both the version that works for your use case and the version that doesn’t work. Screenshots and steps to reproduce can help us determine if this is a bug, or behaviour that could potentially be better documented.

Cheers!