Description

artists are dealing with greatly increased iteration times due to long shader compiles when working in the material editor. This has regressed over time as we add more features to the point were working in materials of decent complexity becomes painful.

Below are the results of the repro steps in this bug across multiple engine versions to get a snapshot of how things have increased and what we can realistically hope to cut down to:

Release-4.22 (feels very slow)

[2019.04.18-14.45.23:433][191]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.45.26:607][510]MaterialEditorStats: Base pass shader: 132 instructions
[2019.04.18-14.45.26:607][510]MaterialEditorStats: Base pass shader with Surface Lightmap: 160 instructions
[2019.04.18-14.45.26:607][510]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 206 instructions
[2019.04.18-14.45.26:607][510]MaterialEditorStats: Base pass vertex shader: 45 instructions
[2019.04.18-14.45.26:607][510]MaterialEditorStats: Texture samplers: 6/16
[2019.04.18-14.45.26:607][510]MaterialEditorStats: Texture Lookups (Est.): VS(0), PS(4)
[2019.04.18-14.45.26:607][510]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)
[2019.04.18-14.45.32:987][198]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.45.33:015][198]LogMaterial: Display: Missing cached shader map for material FMatExpressionPreview MaterialExpressionTextureSample_40, compiling. 
[2019.04.18-14.45.33:044][198]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.45.36:964][505]MaterialEditorStats: Base pass shader: 132 instructions
[2019.04.18-14.45.36:964][505]MaterialEditorStats: Base pass shader with Surface Lightmap: 160 instructions
[2019.04.18-14.45.36:964][505]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 206 instructions
[2019.04.18-14.45.36:964][505]MaterialEditorStats: Base pass vertex shader: 45 instructions
[2019.04.18-14.45.36:964][505]MaterialEditorStats: Texture samplers: 7/16
[2019.04.18-14.45.36:964][505]MaterialEditorStats: Texture Lookups (Est.): VS(0), PS(4)
[2019.04.18-14.45.36:964][505]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)

Release-4.21 (Feels very slow and sometimes compiles when deselecting nodes for no reason)

[2019.04.18-15.06.55:247][198]MaterialEditorStats: Texture Lookups (Est.): VS(0), PS(4)
[2019.04.18-15.06.55:248][198]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)
[2019.04.18-15.06.57:144][424]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-15.06.59:674][676]MaterialEditorStats: Base pass shader: 128 instructions
[2019.04.18-15.06.59:674][676]MaterialEditorStats: Base pass shader with Surface Lightmap: 146 instructions
[2019.04.18-15.06.59:675][676]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 202 instructions
[2019.04.18-15.06.59:675][676]MaterialEditorStats: Base pass vertex shader: 36 instructions
[2019.04.18-15.06.59:675][676]MaterialEditorStats: Texture samplers: 6/16
[2019.04.18-15.06.59:675][676]MaterialEditorStats: Texture Lookups (Est.): VS(0), PS(4)
[2019.04.18-15.06.59:675][676]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)
[2019.04.18-15.07.08:992][766]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-15.07.09:020][766]LogMaterial: Display: Missing cached shader map for material FMatExpressionPreview MaterialExpressionTextureSample_40, compiling. 
[2019.04.18-15.07.09:048][766]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-15.07.12:032][ 15]MaterialEditorStats: Base pass shader: 128 instructions
[2019.04.18-15.07.12:032][ 15]MaterialEditorStats: Base pass shader with Surface Lightmap: 146 instructions
[2019.04.18-15.07.12:032][ 15]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 202 instructions
[2019.04.18-15.07.12:032][ 15]MaterialEditorStats: Base pass vertex shader: 36 instructions
[2019.04.18-15.07.12:033][ 15]MaterialEditorStats: Texture samplers: 7/16
[2019.04.18-15.07.12:033][ 15]MaterialEditorStats: Texture Lookups (Est.): VS(0), PS(4)
[2019.04.18-15.07.12:033][ 15]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)

Release-4.20.3 (feels very slow)

[2019.04.18-14.53.38:628][ 16]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.53.38:646][ 16]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.53.41:822][363]MaterialEditorStats: Base pass shader: 124 instructions
[2019.04.18-14.53.41:822][363]MaterialEditorStats: Base pass shader with Surface Lightmap: 141 instructions
[2019.04.18-14.53.41:822][363]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 197 instructions
[2019.04.18-14.53.41:822][363]MaterialEditorStats: Base pass vertex shader: 36 instructions
[2019.04.18-14.53.41:822][363]MaterialEditorStats: Texture samplers: 6/16
[2019.04.18-14.53.41:822][363]MaterialEditorStats: Texture Lookups (Est.): VS(0), PS(4)
[2019.04.18-14.53.41:822][363]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)
[2019.04.18-14.53.43:220][529]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.53.57:198][143]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.53.57:227][143]LogMaterial: Display: Missing cached shader map for material FMatExpressionPreview MaterialExpressionTextureSample_40, compiling. 
[2019.04.18-14.53.57:255][143]LogMaterial: Display: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-14.54.00:991][508]MaterialEditorStats: Base pass shader: 124 instructions
[2019.04.18-14.54.00:991][508]MaterialEditorStats: Base pass shader with Surface Lightmap: 141 instructions
[2019.04.18-14.54.00:991][508]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 197 instructions
[2019.04.18-14.54.00:991][508]MaterialEditorStats: Base pass vertex shader: 36 instructions
[2019.04.18-14.54.00:991][508]MaterialEditorStats: Texture samplers: 7/16
[2019.04.18-14.54.00:991][508]MaterialEditorStats: Texture Lookups (Est.): VS(0), PS(4)
[2019.04.18-14.54.00:991][508]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)

Release-4.18 (THIS FELT RIGHT. Quick compiles, speedy workflow)

[2019.04.18-15.29.13:632][633]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)
[2019.04.18-15.29.22:695][380]LogMaterial: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-15.29.23:164][409]MaterialEditorStats: Base pass shader: 124 instructions
[2019.04.18-15.29.23:164][409]MaterialEditorStats: Base pass shader with Surface Lightmap: 141 instructions
[2019.04.18-15.29.23:164][409]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 197 instructions
[2019.04.18-15.29.23:164][409]MaterialEditorStats: Vertex shader: 31 instructions
[2019.04.18-15.29.23:164][409]MaterialEditorStats: Texture samplers: 6/16
[2019.04.18-15.29.23:164][409]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)
[2019.04.18-15.29.29:847][ 26]LogSlate: Took 0.000160 seconds to synchronously load lazily loaded font '../../../Engine/Content/Slate/Fonts/Roboto-Light.ttf' (159K)
[2019.04.18-15.29.31:140][118]LogMaterial: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.18-15.29.31:160][118]LogMaterial: Missing cached shader map for material FMatExpressionPreview MaterialExpressionTextureSample_40, compiling. 
[2019.04.18-15.29.31:631][140]MaterialEditorStats: Base pass shader: 124 instructions
[2019.04.18-15.29.31:631][140]MaterialEditorStats: Base pass shader with Surface Lightmap: 141 instructions
[2019.04.18-15.29.31:631][140]MaterialEditorStats: Base pass shader with Volumetric Lightmap: 197 instructions
[2019.04.18-15.29.31:631][140]MaterialEditorStats: Vertex shader: 31 instructions
[2019.04.18-15.29.31:631][140]MaterialEditorStats: Texture samplers: 7/16
[2019.04.18-15.29.31:631][140]MaterialEditorStats: User interpolators: 2/4 Scalars (1/4 Vectors) (TexCoords: 2, Custom: 0)

Release-4.7.6 (Feels VERY fast)

[2019.04.17-19.37.09:294][689]LogMaterial: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.17-19.37.09:299][689]LogMaterial: 0.000052 seconds spent updating 1 materials, 1 interfaces, 0 instances, 0 with static permutations.
[2019.04.17-19.37.10:213][796]MaterialEditorStats: Info Base pass shader with static lighting: 94 instructions
[2019.04.17-19.37.10:213][796]MaterialEditorStats: Info Base pass shader with only dynamic lighting: 63 instructions
[2019.04.17-19.37.10:213][796]MaterialEditorStats: Info Vertex shader: 33 instructions
[2019.04.17-19.37.10:213][796]MaterialEditorStats: Info Texture samplers: 5/16
[2019.04.17-19.38.49:541][242]LogTexture:Display: Building textures: T_Tech_Dot_M (AutoDXT)
[2019.04.17-19.38.49:580][242]LogMaterial: Missing cached shader map for material M_Tech_Hex_Tile_Pulse, compiling. 
[2019.04.17-19.38.49:584][242]LogMaterial: 0.000066 seconds spent updating 1 materials, 1 interfaces, 0 instances, 0 with static permutations.
[2019.04.17-19.38.49:605][242]LogMaterial: Missing cached shader map for material FMatExpressionPreview MaterialExpressionTextureSample_40, compiling. 
[2019.04.17-19.38.50:532][353]MaterialEditorStats: Info Base pass shader with static lighting: 94 instructions
[2019.04.17-19.38.50:532][353]MaterialEditorStats: Info Base pass shader with only dynamic lighting: 63 instructions
[2019.04.17-19.38.50:532][353]MaterialEditorStats: Info Vertex shader: 33 instructions
[2019.04.17-19.38.50:532][353]MaterialEditorStats: Info Texture samplers: 6/16
Steps to Reproduce
  1. Create a new, blank, blueprint project in the editor with Starter Content
  2. Open the material "M_Tech_Hex_Tile_Pulse"
    • Located in (/Game/StarterContent/Materials)
  3. In the comment box labelled "Base Color," select the topmost parameter node and change its value to 0.3 in the details panel
  4. In the comment box labelled "BumpOffset," select the texture sample node and change its texture to "T_Tech_Dot_M" in the details panel.
  5. View the Stats window in the material Editor
  6. View the output log

Result:
Observe that intruction counts for all passes are higher than in previous versions of the engine. (comparison below)

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-72985 in the post.

10
Login to Vote

Won't Fix
ComponentUE - Graphics Features
Affects Versions4.224.23
CreatedApr 17, 2019
ResolvedAug 27, 2021
UpdatedAug 27, 2021
View Jira Issue