发现外网有个关于TextureStreaming的崩溃报告,堆栈如下

发现外网有个关于TextureStreaming的崩溃报告,堆栈如下

FRenderAssetInstanceState::RemoveElement(int ElementIndex, int & NextComponentLink, int & BoundsIndex, const UStreamableRenderAsset * & Asset) Line 204 C++

FRenderAssetInstanceState::RemoveComponentByHandle(int ElementIndex, TArray<UStreamableRenderAsset const *,TSizedInlineAllocator<12,32,TSizedDefaultAllocator<32>>> * RemovedRenderAssets) Line 462 C++

FDynamicRenderAssetInstanceManager::IncrementalUpdate(TArray<UStreamableRenderAsset const *,TSizedInlineAllocator<12,32,TSizedDefaultAllocator<32>>> & RemovedRenderAssets, float Percentage) Line 103 C++

FRenderAssetStreamingManager::IncrementalUpdate(float Percentage, bool bUpdateDynamicComponents) Line 432 C++

FRenderAssetStreamingManager::UpdateResourceStreaming(float DeltaTime, bool bProcessEverything) Line 1843 C++

FStreamingManagerCollection::UpdateResourceStreaming(float DeltaTime, bool bProcessEverything) Line 878 C++

IStreamingManager::Tick(float DeltaTime, bool bProcessEverything) Line 727 C++

FStreamingManagerCollection::Tick(float DeltaTime, bool bProcessEverything) Line 850 C++

崩溃定位如下,崩溃类型是EXCEPTION_ACCESS_VIOLATION_WRITE(貌似RenderAssetMap.Find(Element.RenderAsset)为空)

RenderAssetMap.Find(Element.RenderAsset)->HeadLink = Element.NextRenderAssetLink;

想了解下后面的UE版本是否有过类似问题,并修复?

请问引擎版本是多少?

UE5.3.2

Hi,

抱歉,我搜了一下内部的信息,我们的确有遇到过类似的堆栈,但是都是非常低频,所以我们目前也没有什么解决方案。可能需要更多信息,或者更好的复现环境,才能定位。

粗略的看了一下代码,没有看出来RenderAssetMap.Find(Element.RenderAsset)为空的理由。