[Image Removed]
在PreCompilePSO时,5.5版本增加了Breadcrumb数据给Insights。
Insights开启Auto-Connect,也就是PC包启动就会连接上Insights,此时如果触发了来自FileCache的PSO预编译,因为没有AddDispatchPrerequisite,所以它引用的Breadcrumb数据会提前由FRHIBreadcrumbAllocator给Free掉,导致后续PSO异步编译完成,进行WalkOut时非法访问内存0xddddddddd:
#if WITH_RHI_BREADCRUMBS if (PSOCompilationDebugData.BreadcrumbNode) { FRHIBreadcrumbNode::WalkOut(PSOCompilationDebugData.BreadcrumbNode); } #endif // WITH_RHI_BREADCRUMBS
看了PipelineStateCache.cpp文件的修改记录,是在5.5时,重构了Breadcrumb,并且在PreCompilePSO时新增Breadumb数据给Insights。
请帮忙看看,谢谢。