Steps to Reproduce
- Extract the attached MergeRepro project
- Run Setup.bat to build, create the repro asset, and package
- Run RunCrashMerge.bat
- Check the log at Saved/Logs/MergeRepro-Crash.log
- Check the Call Stack and crash dump under Saved/StagedBuilds/Windows/MergeRepro/Saved/Crashes
Repro conditions configured by Setup.bat
- Config/DefaultEngine.ini: r.MeshStreaming=True
- A duplicate of SKM_Quinn_Simple at /Game/Repro/SKM_StreamedSource with bOverrideLODStreamingSettings=true, bSupportLODStreaming=true, MaxNumStreamedLODs=8
- After cooking, only the last LOD is inlined while LOD0 and LOD1 are split into .ubulk
- Windows Development packaged build
Repro code executed by RunCrashMerge.bat
[Image Removed]
- The mesh is merged right after loading without being assigned to any Component, so stream in has not started
Skeletal Mesh LOD streaming does not run in the Editor and PIE, so the crash reproduces only in a packaged build.
Results
RunCrashMerge.bat
Exit code 3 . Source Mesh state right before the merge
[Image Removed]
- Only the last LOD is loaded while LOD0 and LOD1 have only vertex count metadata and no buffer data
- Calling the merge produces the crash below
[Image Removed]
RunNormalMerge.bat
- Merges the same Mesh successfully after streaming completes and returns exit code 0
- Merged LOD0 vertex count 91986 = source 45993 x 2
Expected
- When any LOD has not been streamed in, return failure without crashing or merge only the loaded LOD range
- Log output that identifies the failure cause
- Document the all LODs loaded precondition in the USkeletalMergingLibrary::MergeMeshes() comment