Files
UnrealEngineUWP/Engine/Source/Editor/MaterialEditor
jason nadro 48fa80a2e1 Fix global shader non-determinism due to un-initialized data in the memory images for shader maps due to the TMaps and Variants used by the generic stat system.
- Memory Image serialization is problematic due to padding in structures and uninitialized data.  This can be handled by marking up each class and member with macros, but this can be invasive for common types like TMaps and TVariants.
- To fix the issue I've completely removed the shader stats from the memory image serialization and this avoids the issue, and most of the code can stay the same.
- Generic stats aren't store on the FShader anymore, and the stats have been moved to an array on the FShaderEditorOnlyDataEntry data object owned by the FShaderMapResourceCode owned by the base shader map class.  This data is natively serializated we don't have the issues that the memory images do.
- This required fixup on the interfaces that query for the generic shader stats to get this data from a different location.
- Wrap all the code in WITH_EDITORONLY_DATA
- Turn the stats into a struct, FGenericShaderStat, and we just store an array of them.  We don't really need fast lookup.

#rb dan.elksnitis, Laura.Hermanns

[FYI] Zousar.Shaker

[CL 34317171 by jason nadro in ue5-main branch]
2024-06-12 14:41:45 -04:00
..