After upgrade to 4.21, during cooking, the SM4/DX10 shaders are being compiled.

We recently updated our Unreal Engine to version 4.21. After that we noticed that during cooking, the SM4/DX10 shaders are being compiled. Our game and GPU are both DX11 and we are cooking for Win64. Why would Unreal Engine compile SM4/DX10 shaders during cooking? It seems it started after we upgraded to 4.21.

These are some lines from our cooking log:

UATHelper: Packaging (Windows (64-bit)): LogShaders: Display: Compiling M_Widget3DTerritoryNodes: Platform=PCD3D_SM4, Usage=LightingModel=MSM_DefaultLit, BlendMode=BLEND_Translucent, SpecialEngine=0, TwoSided=0, TSNormal=1, Masked=0, Distorted=0, WritesEveryPixel=1, ModifiesMeshPosition=0, Usage={}, StaticMaterialLayers=
UATHelper: Packaging (Windows (64-bit)): LogShaders: Warning: 28 Shaders among 1 VertexFactories
UATHelper: Packaging (Windows (64-bit)): LogMaterial: Display: Missing cached shader map for material M_LargeRugOrnate_2, compiling.
UATHelper: Packaging (Windows (64-bit)): LogMaterial: Warning: D:\P4\twd_main\TWD\Content\Environment\Prop\Decor_01\Plush\M_LargeRugOrnate_2.uasset: Failed to compile Material for platform PCD3D_SM4, Default Material will be used in game.

It seems, in UE 4.21 all the code that was choosing “Only cache shaders for the quality level that will actually be used to render”, is now moved inside #if STORE_ONLY_ACTIVE_SHADERMAPS, which is set to 0.