目前遇到了这样的一个崩溃,崩溃栈如下 [Image Removed]
<br/>
目前我确定是访问了一个被释放的UniformBuffer触发的崩溃,我尝试了将相关的UniformBuffer新增引用计数可以规避这个问题,另外我也确定和CacheMeshDrawCommand机制有关,我尝试了r.MeshDrawCommands.UseCachedCommands 0也能规避这个问题。
<br/>
我注意到目前有这样一个提交,可能这类问题是目前已知https://github.com/EpicGames/UnrealEngine/commit/53071436de51dfbc42bf0faf7e170ebdb1b1b23b
<br/>
我想知道这个崩溃目前有新的fix吗?
[Attachment Removed]
Liu.Wei
(Liu.Wei)
2
Hi,
你好,据我所知我们没有修复过这个问题,有几个问题想先确认一下:
- 是否有明确的复现方式?
- 你的修复具体是修了哪里?
- 能否定位到是哪个UB被释放了,但仍然被GPU使用?是否能从原理上解释一下,我可以根据代码定位一下是否有这个问题。
[Attachment Removed]
目前定位到是MaterialParameterCollectionInstanceResource, 因为在修复中这样修改了一下,也还是能修复, 崩溃的原因目前和AI做一些验证和猜测,可以参考分析.txt [Image Removed]
[Attachment Removed]
Liu.Wei
(Liu.Wei)
5
Hi,
非常感谢提供信息,我想先问一下,这个问题是发生在编辑器的使用过程中,还是打包版本?
[Attachment Removed]
Hi,
感谢回复,是在打包版本中,编辑器下无法复现。目前我们刚刚定位到和MaterialParameterCollection GUID冲突有关,可能是在游戏中加载了相同GUID但是路径不同的MPC,导致MPC被错误释放导致的
[Attachment Removed]
Liu.Wei
(Liu.Wei)
7
根据线下交流,“是相同的mpc拷贝导致的 删掉冗余的保留一份就好了”。感谢提供信息,问题解决了就好。
[Attachment Removed]