Enabling bShareMaterialShaderCode breaks memory tracking and wastes memory due to issues in ShaderCodeLibrary. It is also worth noting that after cooking with bShareMaterialShaderCode enabled causes the tracking for the pixel and vertex shaders to disappear from the memreport.

Tested in 4.21.2 (CL - 4753647), 4.22.3 (CL - 7053647), 4.23 (CL - 7247482), 4.24 (CL - 7235487)

Steps to Reproduce
  1. Download the attached project
  2. Open the NewMap map
  3. Content for Windows
  4. PIE
  5. Enter memreport as console command
  6. Enable Share Material Shader Code in packaging settings in Project settings
  7. Repeat steps 3-5
  8. Open the Memreports in notepad (Located in <Project Name>/Saved/Profiling/MemReports)

Expected: The memreports would be identical in terms of shader code memory usage

Result: The memreport that was taken after enabling Share Material Shader code consumes more memory

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-77543 in the post.

Login to Vote

Affects Versions4.
Target Fix4.24
Fix Commit8887328
Main Commit11123615
Release Commit9552237
CreatedJul 18, 2019
ResolvedSep 19, 2019
UpdatedJan 28, 2020