Android Vulkan 多线程 PSOPrecache 出现崩溃

第一个问题,FVulkanRHIGraphicsPipelineState在计数归零的时候会调用FRHIResource::MarkForDelete,然后被置入延迟销毁队列,最终在FRHIResource::DeleteResources中延迟销毁对象,然后在析构函数里将对象从GraphicsPSOLockedMap移除,从标记到移除过程都是线程不安全的。因此我们怀疑是PSO标记为删除的同时从GraphicsPSOLockedMap取出了PSO,导致线程竞争出现了野指针。

第二个问题,r.Vulkan.AllowSynchronization2=0 我们之前为了修复其他PSO崩溃问题已经开启了。

[Attachment Removed]