Hi,
I am working on a project using 4.10 from GitHub (largely unchanged). When I compile and run in the DebugEditor configuration specifying the -game argument. I get an assert in FLinkerLoad::Serialize as it tries to load font data for an otf font used for text displayed on the loading screen. Call stack below:
UE4Editor-CoreUObject-Win64-Debug.dll!FLinkerLoad::Serialize(void * V, __int64 Length) Line 4255 C++
UE4Editor-Core-Win64-Debug.dll!operator<<(FArchive & Ar, __int64 & Value) Line 294 C++
UE4Editor-Core-Win64-Debug.dll!operator<<(FArchive & Ar, FCompressedChunkInfo & Chunk) Line 263 C++
UE4Editor-Core-Win64-Debug.dll!FArchive::SerializeCompressed(void * V, __int64 Length, ECompressionFlags Flags, bool bTreatBufferAsFileReader) Line 338 C++
UE4Editor-CoreUObject-Win64-Debug.dll!FUntypedBulkData::SerializeBulkData(FArchive & Ar, void * Data) Line 1168 C++
UE4Editor-CoreUObject-Win64-Debug.dll!FUntypedBulkData::LoadDataIntoMemory(void * Dest) Line 1306 C++
UE4Editor-CoreUObject-Win64-Debug.dll!FUntypedBulkData::MakeSureBulkDataIsLoaded() Line 1252 C++
UE4Editor-CoreUObject-Win64-Debug.dll!FUntypedBulkData::LockReadOnly() Line 507 C++
UE4Editor-SlateCore-Win64-Debug.dll!UFontBulkData::Lock(int & OutFontDataSizeBytes) Line 46 C++
UE4Editor-SlateCore-Win64-Debug.dll!FFreeTypeInterface::GetFontFace(const FFontData & InFontData) Line 783 C++
UE4Editor-SlateCore-Win64-Debug.dll!FFreeTypeInterface::GetRenderData(const FFontData & InFontData, const int InSize, wchar_t Char, FCharacterRenderData & OutRenderData, const float InScale) Line 386 C++
UE4Editor-SlateCore-Win64-Debug.dll!FFreeTypeInterface::GetMaxHeight(const FSlateFontInfo & InFontInfo, const float InScale) Line 346 C++
UE4Editor-SlateCore-Win64-Debug.dll!FSlateFontCache::GetMaxCharacterHeight(const FSlateFontInfo & InFontInfo, float FontScale) Line 1201 C++
UE4Editor-SlateCore-Win64-Debug.dll!FCharacterList::GetMaxHeight() Line 989 C++
UE4Editor-SlateCore-Win64-Debug.dll!FSlateFontMeasure::MeasureStringInternal(const FString & Text, int StartIndex, int EndIndex, const FSlateFontInfo & InFontInfo, bool IncludeKerningWithPrecedingChar, float FontScale, int StopAfterHorizontalOffset, FSlateFontMeasure::ELastCharacterIndexFormat CharIndexFormat, int & OutLastCharacterIndex) Line 137 C++
UE4Editor-SlateCore-Win64-Debug.dll!FSlateFontMeasure::Measure(const FString & Text, int StartIndex, int EndIndex, const FSlateFontInfo & InFontInfo, bool IncludeKerningWithPrecedingChar, float FontScale) Line 68 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateTextRun::Measure(int BeginIndex, int EndIndex, float Scale) Line 51 C++
UE4Editor-Slate-Win64-Debug.dll!FTextLayout::FRunModel::CreateBlock(const FTextLayout::FBlockDefinition & BlockDefine, float InScale) Line 1896 C++
UE4Editor-Slate-Win64-Debug.dll!FTextLayout::CreateLineViewBlocks(int LineModelIndex, const int StopIndex, const float WrappedLineWidth, int & OutRunIndex, int & OutRendererIndex, int & OutPreviousBlockEnd, TArray<TSharedRef<ILayoutBlock,0>,FDefaultAllocator> & OutSoftLine) Line 193 C++
UE4Editor-Slate-Win64-Debug.dll!FTextLayout::FlowLineLayout(const int LineModelIndex, const float WrappingDrawWidth, TArray<TSharedRef<ILayoutBlock,0>,FDefaultAllocator> & SoftLine) Line 371 C++
UE4Editor-Slate-Win64-Debug.dll!FTextLayout::FlowLayout() Line 325 C++
UE4Editor-Slate-Win64-Debug.dll!FTextLayout::UpdateLayout() Line 651 C++
UE4Editor-Slate-Win64-Debug.dll!FTextLayout::UpdateIfNeeded() Line 639 C++
UE4Editor-Slate-Win64-Debug.dll!FTextBlockLayout::ComputeDesiredSize(const FTextBlockLayout::FWidgetArgs & InWidgetArgs, const float InScale, const FTextBlockStyle & InTextStyle) Line 84 C++
UE4Editor-Slate-Win64-Debug.dll!STextBlock::ComputeDesiredSize(float LayoutScaleMultiplier) Line 192 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::CacheDesiredSize(float LayoutScaleMultiplier) Line 405 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 399 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float LayoutScaleMultiplier) Line 394 C++
UE4Editor-Slate-Win64-Debug.dll!PrepassWindowAndChildren(TSharedRef<SWindow,0> WindowToPrepass) Line 1054 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::DrawPrepass(TSharedPtr<SWindow,0> DrawOnlyThisWindow) Line 1106 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow,0> DrawOnlyThisWindow) Line 1143 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::DrawWindows() Line 927 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::Tick() Line 1441 C++
UE4Editor-MoviePlayer-Win64-Debug.dll!FSlateLoadingSynchronizationMechanism::SlateThreadRunMainLoop() Line 132 C++
UE4Editor-MoviePlayer-Win64-Debug.dll!FSlateLoadingThreadTask::Run() Line 163 C++
UE4Editor-Core-Win64-Debug.dll!FRunnableThreadWin::Run() Line 72 C++
UE4Editor-Core-Win64-Debug.dll!FRunnableThreadWin::GuardedRun() Line 23 C++
UE4Editor-Core-Win64-Debug.dll!FRunnableThreadWin::_ThreadProc(void * pThis) Line 67 C++
[External Code]
I tried clearing my saved and DDC folders in case something had jsut corrupted (although feels unlikely since it is asserting about mismatching thread IDs).
I tried Development Editor which obviously didn’t assert in checkSlow but also seemed to have no notable issues when running - the font displayed correctly, no font related errors. I also tried a couple of different maps as my startup map. Running Debug Editor without -game and then loading my desired map through the editor everything runs fine. So it looks specifically like Debug Editor with the addition of -game is the issue.
I finally tried just commenting out the check in LinkerLoad.cpp ln 4255 and it runs fine, which is why I have posted in bugs although I am still fully expecting it is something stupid I have done.
Anyone else encountered this or have any thoughts on what may be causing it?
Thanks,