引擎代码 gl.drawElements 导致 requestAnimationFrame 延后约 0.1 秒, cc3.6.1 和 cc2.4.11 有同样的情况

  • Creator 版本: 3.6.1、2.4.11

  • 目标平台: 微信 8.0.34 小游戏真机

  • 重现方式:2.4.11 ts 的 Hello World 项目微信小游戏真机运行,即可看到间隔大约为 1 秒的画面卡帧,卡帧时候画面降为 10 帧

  • 首个报错: 无

  • 之前哪个版本是正常的:无

  • 手机型号: 华为 nova 6 se

  • 手机浏览器: 微信

  • 编辑器操作系统: windows 10

  • 重现概率: 100%

最初遇到的问题是 Hello World 项目微信小游戏真机下跳帧,如下链接所示


引擎的 update 由循环的 requestAnimationFrame 驱动,requestAnimationFrame 的回调有些时候得大约 0.1 秒后执行,这种异常情况间隔大约 1 秒,最终确定该情况是 gl.drawElements 引发的,下图红框内引擎底层代码注释与否,决定该情况是否出现。
目前不清楚为何 WebGLRenderingContext 的 drawElements 接口会导致这样的情况,问题也无法进一步定位、解决,项目已经因为这个问题卡了好几天,希望哪位有相关问题经验的前辈能够帮忙看看 :pray:

2023/04/16 14:11 更新:
尝试过引擎版本 3.6.1 发布微信小游戏,一样有这样的问题

@jare @jareguo 有空帮忙看看吗,谢谢 :pray:

更新一下,今天发现该问题已经不存在。(这是用之前出问题的程序原封不动验证的结果)