功能上新|全新GPU性能优化方案

GPU优化迎来了全新的里程碑!我们深知移动游戏对高品质画面的追求日益升温,因此UWA一直着眼于移动设备GPU性能优化,以确保您的游戏体验尽善尽美。然而,不同GPU芯片之间的性能差异及可能导致的GPU瓶颈问题,让优化工作变得更具挑战性。在全新升级的UWA SDK 2.4.8版本中,我们推出了UWA GOT Online GPU模式,带来了全新的GPU性能优化方案。

现在,让我们一一介绍这些重要功能。

  • 性能简报:该页面可以快速地帮助开发者把控项目的GPU性能压力情况
  • GPU分析:分别从渲染和带宽两个角度,对GPU性能压力进行分析
  • 渲染资源分析:开启纹理和网格资源分析功能,定位这些资源的具体使用情况
  • Overdraw快照:更便捷地定位Overdraw压力来源
  • GPU温度:快速判断设备发热的原因是否主要来自GPU

性能简报

如下图,UWA列出了测试时的FPS、GPU Clocks数据,并用浅红色背景标注了GPU Bound帧。GPU Bound表示GPU性能高压区间,此时GPU计算耗费的时钟周期数过高,可能无法支持满帧运作。

同时,UWA也在图表下列出了GPU性能、渲染统计、纹理资源分析和网格资源分析4个模块的参数情况和对应的优化任务队列。

简报的目的是帮助大家在茫茫多的性能指标中,快速筛选出高优先级的优化任务。如需要针对某些指标做更为深层的下探,就可以使用下文中的各个功能进行分析。

GPU分析

GPU渲染分析

GPU Clocks是衡量GPU性能的主要指标,结合该曲线,开发者可以快速判断各个场景中的GPU压力。

同时,UWA也展示出了GPU Shaded、GPU Shader Cycles、GPU Primitive指标的均值和性能走势。当某个场景中的GPU Clocks较高时,通过这些指标的推荐值和性能曲线,开发者就可以快速判断是哪些参数造成的GPU渲染计算压力,并采取相应的优化方案。

GPU带宽分析

由于GPU读、写带宽较高时都会造成大量的发热和耗电,需要开发者重点关注。

在相关参数中,也展示了GPU Texture Filter、GPU Stall、GPU Texture Cache Miss和GPU Primitive等参数。比如当GPU Stall较高时,就说明GPU发起外部读写请求时等待时间较长,存在较高带宽压力。

需要注意的是,由于目前UWA在不同厂商GPU芯片采集到的参数不同,所以各个界面相关的指标可能因为GPU不同而变化。

渲染资源分析

当参与渲染的纹理和网格资源越多、采样越多时,资源内存会变高,GPU带宽和GPU Clocks也会相应上涨。为了保证让参与渲染计算的资源物尽其用,开发者可以手动开启纹理和网格资源分析功能,定位这些资源的具体使用情况。

纹理资源分析

在纹理资源分析页,除了纹理资源的内存、数量、尺寸等参数外,我们还可以查看纹理渲染利用率、是否开启Mipmap和Mipmap采样率等数据。

通过纹理渲染利用率,开发者即可快速定位到一直在内存中但从未参与过渲染的纹理资源,以此排查是否存在场景中不可见的渲染物体、不合理的打包或加载策略等可能造成此种浪费的因素。

而通过Mipmap 0层采样率是否较低(低于20%),则可以判断哪些纹理资源的尺寸过大,开发者就可以通过降低这些纹理资源分辨率缓解内存和GPU压力,同时也不会影响画面效果。

网格资源分析

在网格资源分析页,除了和纹理资源相似的资源渲染利用率外,我们也可以查看网格的最大屏占比和最小渲染密度数据。渲染利用率为0的网格资源和纹理资源优化方式相似,而网格最大屏占比和最小渲染密度则可以用于排查网格资源的精度是否合理。

当网格的最大屏占比小于0.02%时,说明网格在手机屏幕中只占很小的一部分,可见性较低。如果网格的复杂度较高,说明网格的精度过高,开发者可以考虑使用更低精度的模型进行替换。

渲染密度则表示在平均每一万像素中网格的顶点数,如果该值大于1000,则说明我们在很小的画面中绘制了过于复杂的网格。因此,当此网格的渲染密度最小时,该数值仍然高于1000,那么此网格的顶点数大概率是过高的,开发者可以考虑对这些网格资源进行减面操作,或使用LOD分级处理。

Overdraw快照

Overdraw表示项目运行过程中单帧中整个屏幕被填充的倍数。在游戏运行过程中,场景中半透明物体的重合会使得同一个像素点在一帧中会被绘制多次,容易造成Overdraw过高,引起设备发热。

在Overdraw快照模块,UWA通过Fragment Shaded(渲染像素总数)与设备渲染分辨率,换算得到了Overdraw的计算值,以帮助开发者对项目的Overdraw情况进行排查。

在测试GPU模式时,开发者可以手动Dump采集场景中具体的Overdraw情况。

在Overdraw快照模块,即可查看Dump帧各个相机的Overdraw情况。其中Overlay-UI(UWA)相机展示的是UGUI中Overlay部分的Overdraw信息,即所有没有挂在任何相机下UI的Overdraw信息。

在柱状图下方,还可以查看所选柱状图的Overdraw热力图,其中颜色越亮,表示该处像素在当前帧中被填充的次数较多,Overdraw较高,GPU的压力就越大。

开发者可以结合报告截图和Overdraw热力图,更便捷地定位项目的Overdraw压力来源。

GPU温度

GPU压力较高时容易引起设备发热。UWA统计了设备的GPU、CPU、电池温度,以便开发者判断设备发热的原因是否主要来自GPU。

若确认是由于GPU压力导致发热,接下来可以进一步排查与GPU温度情况有关的参数,譬如FPS、GPU Clocks、GPU Bandwidth等。而功率则会和GPU温度相互影响,也是反映能耗和发热问题的重要参数。

这里特别建议大家:由于CPU和GPU芯片位置较近,当CPU压力较大产生发热时,也可能带动GPU一起发热。所以在优化GPU发热问题时,也要适当结合CPU压力情况进行排查分析。总的来说,当项目存在耗电快、温度高的现象时,开发者可以从GPU性能压力、GPU带宽、CPU主线程、CPU子线程等方面着手,优化发热问题。

更多UWA SDK 2.4.8新功能

NEW

  • GOT Online-Overview模式支持子线程打点分析
  • 支持从POCO脚本控制UWA SDK配置项
  • 新增截图上传选项

在此次更新中,UWA更进一步地拆分和细化了项目的GPU压力成因,为您带来前所未有的优化体验。我们的目标是让您更便捷、高效地定位项目的GPU压力来源,告别盲目猜测,拥抱精准优化。

如果您对新功能感兴趣,请前往UWA官网下载最新版UWA SDK 2.4.8:
UWA | 致力于游戏VR和AR应用提供项目研发解决方案 | 简单优化、优化简单 | 侑虎科技

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/33852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

摆动序列——力扣376

文章目录 题目描述贪心题目描述 贪心 int wiggleMaxLength(vector<int>& nums){int n=nums.

css实现文字首行缩进的效果

<div class"content"><p>站在徐汇滨江西岸智塔45楼&#xff0c;波光粼粼的黄浦江一览无余。近处&#xff0c;是由龙华机场储油罐改造而来的油罐艺术中心和阿里巴巴上海总部办公处。远处&#xff0c;历史悠久的龙华塔挺拔秀丽&#xff0c;总投资逾600亿元…

【NLP】深入浅出全面回顾注意力机制

深入浅出全面回顾注意力机制 1. 注意力机制概述2. 举个例子&#xff1a;使用PyTorch带注意力机制的Encoder-Decoder模型3. Transformer架构回顾3.1 Transformer的顶层设计3.2 Encoder与Decoder的输入3.3 高并发长记忆的实现self-attention的矩阵计算形式多头注意力&#xff08;…

Cloud Studio实战——热门视频Top100爬虫应用开发

最近Cloud Studio非常火&#xff0c;我也去试了一下&#xff0c;感觉真的非常方便&#xff01;我就以Python爬取B站各区排名前一百的视频&#xff0c;并作可视化来给大家分享一下Cloud Studio&#xff01;应用链接&#xff1a;Cloud Studio实战——B站热门视频Top100爬虫应用开…

理解-面向对象

目录 对象&#xff1a; 举例&#xff1a; 封装: 好处: 继承: 多态&#xff1a; 类和对象之间的关系 对象&#xff1a; 把一个东西看成对象&#xff0c;我们就可以孤立的审查它的性质&#xff0c;行为&#xff0c;进而研究它和其他对象的关系。 对象是一个应用系统中用…

分割一切模型 Fast SAM C++推理部署---TensorRT (有核心代码)

Fast SAM C推理部署—TensorRT 核心源代码在结尾处有获取方式 晓理紫 0 XX开局一张图&#xff0c;剩下… 1 为什么需要trt部署 主要是在GPU上推理可以获得更高的推理速度。可与onnxruntim推理向比较一下 对比视频 2 TensorRt部署 2.1 环境与条件 需要配置TensorRt相关环境 这…

【数字化处理】仿生假体控制中肌电信号的数字化处理研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

FileZilla Server安装配置使用说明

作者&#xff1a;John 链接&#xff1a;https://www.zhihu.com/question/20577011/answer/2360828234 来源&#xff1a;知乎 第一步&#xff1a;右键点击”立即下载“ 第二步&#xff1a;服务器端点击&#xff0c;“windows平台”版本 第三步&#xff1a;这个安装最新的“Fi…

探究使用HTTP代理ip后无法访问网站的原因与解决方案

目录 访问网站的原理是什么 1. DNS解析 2. 建立TCP连接 3. 发送HTTP请求&#xff1a; 4. 服务器响应&#xff1a; 5. 浏览器渲染&#xff1a; 6. 页面展示&#xff1a; 使用代理IP后访问不了网站&#xff0c;有哪些方面的原因 1. 代理IP的可用性&#xff1a; 2. 代理…

【ARM64 常见汇编指令学习 15 -- ARM 标志位的学习】

文章目录 ARM 标志位介绍Zero Condition flag(零标志位)零标志位判断实例 上篇文章&#xff1a;ARM64 常见汇编指令学习 14 – ARM 汇编 .balign,.balignw,.balign 伪指令学习 下篇文章&#xff1a;ARM64 常见汇编指令学习 16 – ARM64 SMC 指令 ARM 标志位介绍 在ARM架构中&am…

PLL 的 verilog 实现

锁相环&#xff08;PLL&#xff09;是一种常用的频率、相位追踪算法&#xff0c;在信号解调、交流并网等领域有着广泛的应用。本文对全数字锁相环的原理进行介绍&#xff0c;随后给出 verilog 实现及仿真。 PLL 锁相原理 锁相环结构如下图所示&#xff0c;主要由鉴相器、环路滤…

设计模式之简单工厂模式

一、概述 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。 简单工厂模式&#xff1a;又叫做静态工厂方法模式&#xff0c;是由一个工厂对象决定创建出哪一种产品类的实例。 二、适用性 1.当一个类不知道它所…

CSS 中的优先级规则是怎样的?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐内联样式&#xff08;Inline Styles&#xff09;⭐ID 选择器&#xff08;ID Selectors&#xff09;⭐类选择器、属性选择器和伪类选择器&#xff08;Class, Attribute, and Pseudo-class Selectors&#xff09;⭐元素选择器和伪元素选择器…

Kafka 概述

Kafka 为什么需要消息队列&#xff08;MQ&#xff09;使用消息队列的好处&#xff08;1&#xff09;解耦&#xff08;2&#xff09;可恢复性&#xff08;3&#xff09;缓冲&#xff08;4&#xff09;灵活性 & 峰值处理能力&#xff08;5&#xff09;异步通信 消息队列的两…

掌握Python的X篇_30_使用python解析网页HTML

本篇将会介绍beutifulsoup4模块&#xff0c;可以用于网络爬虫、解析HTML和XML&#xff0c;对于没有接触过前端&#xff0c;不了解HTML是如何工作的&#xff0c;需要先解释一下什么事HTML。 1. HTML 网页中的各种布局等的背后都是非常简单的纯文本格式&#xff0c;那种格式称为…

【杨辉三角的两种解法——(超级详细)】

杨辉三角 1.杨辉三角简介&#x1f575;️ 杨辉三角&#xff0c;是二项式系数在三角形中的一种几何排列。在欧洲&#xff0c;这个表叫做帕斯卡三角形。帕斯卡&#xff08;1623----1662&#xff09;是在1654年发现这一规律的&#xff0c;比杨辉要迟393年&#xff0c;比贾宪迟600…

7.3 详解NiN模型--首次使用多层感知机(1x1卷积核)替换掉全连接层的模型

一.前提知识 多层感知机&#xff1a;由一个输入层&#xff0c;一个或多个隐藏层和一个输出层组成。&#xff08;至少有一个隐藏层&#xff0c;即至少3层&#xff09; 全连接层&#xff1a;是MLP的一种特殊情况&#xff0c;每个节点都与前一层的所有节点连接&#xff0c;全连接…

设计模式(6)原型模式

一、介绍 Java中自带的原型模式是clone()方法。该方法是Object的方法&#xff0c;native类型。他的作用就是将对象的在内存的那一块内存数据一字不差地再复制一个。我们写简单类的时候只需要实现Cloneable接口&#xff0c;然后调用Object::clone方法就可实现克隆功能。这样实现…

emqx-5.1.4开源版使用记录

emqx-5.1.4开源版使用记录 windows系统安装eqmx 去官网下载 emqx-5.1.4-windows-amd64.zip&#xff0c;然后找个目录解压 进入bin目录,执行命令启动emqx 执行命令 emqx.cmd start使用emqx 访问内置的web管理页面 浏览器访问地址 http://localhost:18083/#/dashboard/overv…

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)

题目&#xff1a;提取全部5页发布日热度的值&#xff0c;计算所有值的加和 地址&#xff1a;https://match.yuanrenxue.cn/match/2 思路分析 本题我们会简单说一下两种不同的方式去处理&#xff0c;一种是不还原混淆代码直接从源代码硬扣生成逻辑&#xff0c;另一种则是还原…