Creator3D 在微信小游戏和微信内置浏览器 DrawCall 影响差异巨大

重现步骤:

  1. 简单场景,700余个Quad,不合批
  2. 大约700多个DrawCall

示例项目:
C3D_112_test.zip (719.5 KB)

期望表现:

微信小游戏和微信内置浏览器表现差不多

实际表现:

微信小游戏
22FPS Renderer时间45ms 如图


微信内置浏览器
60FPS Renderer时间6.97ms

该问题在Creator3D 1.2.0上亦存在

同时测试了,开启自动合批,大约30个DrawCall,1W三角面,发现也是帧率差距很大。

我的猜测,不知道理解是否正确:
DrawCall本身 和 合批 都是 CPU Bound,微信小游戏使用 JavaScriptCore 不支持 JIT,而微信内置浏览器使用 WKWebView 支持 JIT,导致了JavaScript 在 CPU 执行效率的差异。

不过如果是这样的话,那对于 iOS 而言,是否 JavaScript 执行效率是主要矛盾,如此如果要打包原生 iOS App,是否使用 WKWebView 比 Native 的渲染后端整体性能要更高呢?

Drawcall 数量差别并不大,但是批次越多 CPU bound 越严重,主要就是 jit 导致的性能低下

理论上是这样的,但是太理想化了,苹果对 Webview 承载的内容审核较严格,容易不过审

确实如此,经实验发现,对于有些点数比较多的模型,合批后反而在iOS上出现了性能下降。