前大T领导在vivo,个人觉得VIVO的性能优化中的游戏模式技术文档写得真得好呀。虽然我主要使用华为和红米手机,但是个人对vivo手机也非常喜欢。
下述内容来源—VIVO开发平台官方链接:https://developers.vivo.com/doc/d/9730c0eb0083469da0cec73a53ad31bd
游戏插帧介绍
游戏插帧是一种提高游戏流畅度的技术,它可以在游戏原有帧数基础上,通过智能算法生成新的帧,既能提高游戏流畅度,也能降低系统负载。
游戏插帧工作原理
游戏插帧会根据游戏的历史帧和当前帧信息来估计生成帧的内容,并使用智能算法优化残影、模糊、抖动等问题,提升生成帧的质量效果。
在工程实践中,系统会根据当前设备的刷新率和游戏类型,智能调整插帧的数量和质量,从而保证更好的游戏体验。
游戏超分介绍
游戏超分简称QNSS。使用极低分辨率来渲染当前帧,然后对当前帧进行上采样,再融合历史帧数据最终得到游戏实际的帧画面,这样做既提升了帧率又保证了质量。QNSS技术不仅可以单独使用,还能优化诸如光追的极限性能场景,在大幅降低功耗的同时还提升了帧率。
游戏超分算法流程
算法基本流程,如图所示:
VAPT介绍
VAPT简介
VAPT基于Multi-Turbo SDK扩展开发,主要面向游戏应用,对游戏过程中的系统指标进行实时监控和预警,帮助游戏发现性能瓶颈,以便调整负载获得更好的游戏体验。
VAPT工作原理
开发者在需要的场景下,调用合适的Multi-Turbo SDK提供的接口,手机系统层接受到相应需求,进行相关系统指标的收集和监控,应用可以主动查询,也可以注册回调接收系统发送的系统预警,游戏根据当前的性能瓶颈和预警信息,进行负载调整以便控制温度以及稳定帧率,得到更好的游戏体验。
4D游戏振感介绍
4D游戏振感基于Multi-Turbo SDK扩展开发,结合线性马达的优秀振动能力,为游戏场景搭配独特的振动,给玩家更拟真的用户体验。该功能主要面向游戏应用。
通过AI算法和游戏接口识别游戏场景,当玩家在游戏中释放大招、弹反、射击、碰撞等场景时触发振动。通过不同的振动波形来模拟游戏情境,从而帮助玩家更好地感受游戏中的场景和情境,提高游戏的娱乐性、真实感和互动性。
4D游戏振感工作原理
游戏方在需要的游戏场景下,调用合适的Multi-Turbo SDK提供的接口,传递对应的场景信息。4D游戏振感在接到场景信息后,调用与之匹配的振动效果。
游戏原画模式介绍
色彩管理可以实现同一个画面在各个不同系统中保持视觉上的一致。3LUT在色彩管理的过程中起了非常重要的作用,它是统一不同系统、不同设备的色彩空间的重要工具。当前手机对每片屏进行3Dlut(17x17x17)色彩校准,进而实现色彩管理。
游戏原画模式工作原理
游戏端设计Srgb/P3/BT2020色域的游戏,对应游戏画质色域信息传递给手机,手机利用已有的色管功能可实现源画质风格再现,也可实现个性化色域风格调整。
超感触控介绍
超感触控能力介绍
重构了触控坐标分发、游戏渲染、图形合成、图像上屏的系统链路,优化了触控事件的响应时延。超感触控可以让玩家触控更跟手(更灵敏)。
超感触控技术方案一
(1)在手机系统上,因为游戏渲染的瞬时帧率是不固定的,而屏幕的刷新率是相对固定的,这导致了游戏输出图像的帧率和显示屏的刷新率并不是完全匹配的。这种不匹配,会导致游戏输出图像后,显示屏需要等待一段时间再去刷新或重复刷新某一帧,最终导致游戏画面的延迟和抖动。
(2)解决方法是要对触控链路进行优化:
(3)“超感触控”技术,正是对链路中的关键环节做了深度优化。
超感触控技术方案二
技术方案一通过帧同步减少了常规场景下阶段一和阶段二的等待时间;然而部分场景下仍有概率会出现游戏出帧快于SF消费导致渲染队列的堆积,引入不必要的帧等待时间。
技术方案二在技术方案一的基础上,系统端通过SF的被压间接控制游戏出帧节奏(framepacing),消除渲染队列,减少渲染队列堆积引入的帧等待时间。
超感分区触控
将游戏可触控区域根据需求划分为不同的区域,分别进行触控算法精细化调优。
陀螺仪抖动优化
通过陀螺仪的降噪算法和手颤抑制算法,减少抖动问题提升陀螺仪的稳定性。在使用陀螺仪进行瞄准和移动视野时,能够更稳定更平滑
陀螺仪时延优化
实现陀螺仪的即时取点,即刷即显。并配合陀螺仪数据预测算法,使游戏画面动起来快人一步。
自研帧率感知引擎介绍
帧率感知引擎介绍
帧率感知引擎是一种智能的系统调度技术,它可以动态地感知游戏流畅度变化,并根据不同场景使用最佳的资源分配策略,从而保证游戏画面的流畅,提升玩家的游戏体验。
帧率感知引擎工作原理
帧率感知引擎首先对游戏场景的帧负载计算结果进行分类,并根据分类结果预测接下来的游戏负载需求,从而使用最佳的资源分配策略对CPU、GPU和内存进行资源调配操作。
vivo帧率感知引擎,在原先的工作基础上,利用底层硬件单元取得了Cache Miss、指令流水线等更多关键的硬件底层信息,配合更加深度的的软硬件结合和软件定义硬件能力,让设备的性能得到全面释放,确保每一次操作都能达到最佳状态,无论是多任务处理还是高负载游戏,都能轻松应对。即使是硬件配置相同的手机,也能通过我们的帧率感知引擎,展现出更强的性能表现。
AI电竞信号引擎介绍
AI电竞信号引擎能力介绍
AI电竞信号引擎为游戏应用提供专用低时延传输模式、智能网络切换能力和游戏多网络并发传输能力,降低游戏延迟,提升游戏稳定性。
AI电竞信号引擎接入方式
您需要在App中集成Multi-Turbo SDK才能获取AI电竞信号引擎提供的能力(游戏多网络并发传输能力除外)。
AI电竞信号引擎稳时延传输模式
开启稳时延传输模式
在需要低时延传输时(如:MOBA游戏对局开始)调用该接口通知手机系统,这时手机系统会启用网络低时延策略,降低游戏时延。该接口需与结束通知接口配对使用。
publicvoidgameSceneStart()
AI电竞信号引擎关闭稳时延传输模式
在不需要稳时延传输时(如:MOBA游戏对局结束)调用该接口通知手机系统,这时手机系统会关闭网络优化策略,从而减少不必要的功耗,提升手机续航。
AI电竞信号引擎智能网络切换能力
在游戏过程中调用updateGameInfo接口反馈游戏时延给手机系统,系统通过端侧AI干扰预测模型实时感知和发现网络异常,结合优化后的选网策略,精准选择质量好的网络,保证游戏时延稳定;
String gameDelay = "324"; // 当前游戏时延 JSONObject jsonObject = new JSONObject(); try { jsonObject.put("8", gameDelay); String infoJson = jsonObject.toString(); VturboManager.getInstance().updateGameInfo(infoJson); } catch (JSONException e) { // Process exception }
游戏多网络并发传输能力
游戏App可以通过请求网络接口,实现同时使用多个网络接口传输游戏数据,以获得更稳定可靠的时延表现。
游戏多网络并发传输能力工作原理
以App客户端发送数据给服务器为例。App在两个网络通路上同时发送两份相同的数据,同时在服务器端实现数据去重处理,即可实现:
(1) 当其中一个网络通路发生丢包,用另外一个通路相同的数据包补齐,可以避免丢包;
(2) 当其中一个网络通路发生高延迟,另外一个通路数据包先到,可以稳定时延。
服务器发送数据给App客户端类似。