微信小游戏线上出现大量【gpuDescriptors】引擎报错,卡死无法游戏

今天查看微信后台日志时,发现大量的引擎层面的报错。玩家反馈是界面卡死,显示图集混乱。



image

翻查论坛历史,早在2022年1月就有人反馈过,居然这么久没人理。跪求处理,或指出方向,到底是什么操作会导致引擎出现这种毁灭性的错误?

渲染报错 - Creator 3.x - Cocos中文社区
渲染报错的问题 - Creator 3.x - Cocos中文社区

引擎版本:3.6.1

@jare @panda

追加信息,用户反馈的界面有一个共同点,就是用过了UIMeshRender + 3D Particle System

发下有问题的项目

线上项目,而且不是必现

粒子的贴图用的atlas?
单独用粒子不走uiMeshRender会不会报错?

对,粒子用的atlas。 尴尬的是我司所有测试机都没发现问题

单独用粒子不挂uiMeshRender会报错吗?

UI层级上单独挂粒子吗?没试过这样用,这样显示不出来的。
如果是3D层级上使用粒子,那没有问题

atlas分辨率多大,哪些机型报错?

2048*2048,GPU粒子。

机型没完全统计:
HUAWEI WLZ-AN00
HUAWEI ELE-AL00
HONOR OXF-AN10
HUAWEI ELS-TN00
HUAWEI JNY-AL10


不看不知道,居然全是华为的= =

atlas改成1024看看呢

这个不大可行。现在打算先把UIMeshRender + 3D Particle System这种做法去掉,使用序列帧特效。目前这个也是我的猜测,实际的问题还未定位到

要想办法复现,并定位到是什么原因导致引擎代码中的gpuDescriptorSet为null


现在怀疑是这个错误导致的,这个错误在浏览器上表现为警告,但可能在某些机型上会报错。

升级3.6.1遇到的问题 - Creator 3.x - Cocos中文社区
之前在这张帖子里反馈过,官方说修复了。我看了一下pr,没有相关的修复代码。升级到3.7问题仍然存在。

是不是都是鸿蒙3.0设备,我司游戏引擎也在鸿蒙3.0的设备上有渲染相关bug,已解决

具体原因:超出尺寸的buffer不能同帧修改数据

1赞

请问怎么解决的呢?我现在只是在UI上挂了一个3D粒子就有问题

分享一下测试结果, 环境web chrome
当粒子系统capacity小于4, 且playOnAwake未启用时
将粒子节点放置在场景上就会报错 (此时不会播放, 但粒子系统会占用一个draw call)
具体错误成因不明

解法是关闭粒子节点active
当需要播放时打开active并在同帧中播放