收藏
回答

IOS 14 15 16 帧数低

游戏引擎 AppID 操作系统 微信版本 基础库版本
cocos wx432e4b0b93c6b7ef iOS 8.0.42 3.1.2

3.3 iOS 14.0 ~ iOS 15.3 系统的性能问题

iOS 14 之后,很多H5游戏都遇到性能问题,问题可以归结为:多个drawcall 之间是会共享同一份 vertexBuffer 和 indexBuffer 的,每个 drawcall 使用一个偏移值在共享的 vertexBuffer 和 indexBuffer 中找到本次渲染的数据,在 >= iOS14 系统上,这会使得性能反而变得非常糟糕。

一般不同引擎的社区都有相应的解决方案,如Cocos CreatorEgret Engine

我们会和引擎团队逐步建联,后续使用最新版的引擎在高性能模式下会自动做这个修复,目前请参照社区的解决方案手动适配。

已经适配的引擎列表: Cocos Creator:2.x版本 >= 2.4.9,3.x版本 >= 3.4.2。

特别注意,cocos < 2.4.9必须手动适配,Cocos的修复仅仅是针对浏览器,对小游戏无效。Cocos适配示意:

    // 这里执行修复代码,此处仅为 cocos 引擎修复示意,不同引擎修复方式不同
    cc.MeshBuffer.prototype.checkAndSwitchBuffer = function (vertexCount) {
      if (this.vertexOffset + vertexCount > 65535) {
        this.uploadData();
        this._batcher._flush();
      }
    };     
    cc.MeshBuffer.prototype.forwardIndiceStartToOffset = function () {
      this.uploadData();
      this.switchBuffer();
    }


Cocos的修复仅仅是针对浏览器,对小游戏无效,请问我们怎么修改可以对小游戏有效,开启高性能模式会自动解决吗,如果不开启高性能模式如何手动适配?

回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容