GOT Online For Unreal | 支持GPU Counter、DrawCall和Triangle、功率

GOT Online For Unreal | 支持GPU Counter、DrawCall和Triangle、功率

注意啦!GOT Online For Unreal 新功能上线,快来看看有没有你心心念念的吧!

在GOT Online - Overview模式中,新增了GPU Counter、DrawCall、Triangle和功率数据采集等,同时也对新增了便于报告上传和查看的API接口,以便开发者在查看报告时可以更高效便利地定位项目的问题所在。

欢迎前往 https://www.uwa4d.com/#download 更新/下载最新UWA SDK For Unreal 2.1.2版本。

一、GPU Counter

近年来,GPU压力有趋势取代CPU坐上性能压力的第一把交椅,GPU压力带来的卡顿、掉帧、发热、降频等现象也颇让人头痛。行业中越来越多的Unreal项目,在展现CG级画面的同时,自然也无可避免地需要对项目的GPU压力进行重点关注。

GPU Counter模块支持对GPU性能压力原因进行精准定位。经过几轮迭代,已经支持Mali、Adreno和PowerVR的GPU芯片,并基于不同品牌芯片的架构特点,对不同维度的数据进行数据采集,以便开发者对项目的GPU性能压力进行优化。

以Mali GPU Counter下的GPU着色为例,测评报告页签中的Overdraw和Cycles/Pixel两个指标分别表示了运行过程中单帧中整个屏幕被填充的倍数和平均每个像素耗费的GPU时钟周期数。当场景中的Overdraw或Cycles/Pixel过高时,场景的GPU压力也会大幅上涨,并造成卡顿、发热等问题。

通过查看GPU着色模块,就可以快速定位高Overdraw和高Cycles的场景,判断这个场景的GPU压力较高是Overdraw还是Shader复杂度过高造成的,并进行有针对性的优化。

GPU Counter模块还支持其他GPU数据采集,以下为各芯片支持数据采集情况:

Mali GPU Counter:
GPU负载、GPU着色、GPU带宽、GPU图元、GPU Shader Cycles

Adreno GPU Counter:GPU负载、GPU缓存、GPU纹理过滤

PowerVR GPU Counter:GPU负载、GPU着色、GPU带宽、GPU图元

关于各个模块的具体介绍,可以参考之前的文章:
GPU Counter、Timeline功能上线 | 性能优化快人一步!
新功能|Mail GPU Counter模块新增GPU图元处理和GPU Shader Cycles
GPU Counter功能更新|支持Adreno、PowerVR芯片

需要注意的是,基于Mali GPU和PowerVR GPU架构不同,同一参数在不同品牌芯片上的推荐值也会存在差异,不同设备间横向对比的意义不大,更推荐大家在相同的设备上进行纵向对比。

同时,由于同品牌芯片的架构之间也会存在差异,UWA目前仅支持部分芯片的GPU Counter数据采集,具体支持设备列表可登录UWA官网对“Mali/Power VR/Adreno GPU Counter支持设备”列表进行查询:https://www.uwa4d.com/main/supported.html

二、DrawCall和Triangle

DrawCall和Triangle是影响渲染效率的两个最基本的参数,他们往往与项目的渲染情况相关。在Unreal SDK 2.1.2中,UWA优化了对DrawCall和Triangle数据的采集方式,规避了容易出现数据异常的默认接口,使数据采集更加准确。

在渲染模块中,我们可以看到DrawCall和Batch数量曲线。当数量较高时,可考虑从UI界面DrawCall数量是否过高、渲染物体的DrawCall合批是否正确等角度进行排查。

当画面中Triangle面片数过多时,则建议从单个模型的三角形面片数是否过多、场景中对象是否被渲染了多遍等角度进行排查。

三、功率

在硬件信息页,新增了功率峰值参数,具体包括测过程中设备的功率和电流情况。由于功耗与带宽的数据紧密相关,当项目带宽较高时,功耗也会相应上涨。因此需要关注测试过程中设备的功耗情况,以避免功耗较高时设备出现发热降频等现象。

需要注意的是,由于功耗是基于设备硬件的参数,不同设备的功耗情况可能存在较大差异,不建议在不同设备间进行功耗情况的横向对比。而当设备连接USB或充电时,功率值会受到较大影响,造成数据异常或出现负数的情况。故建议以未连接USB时测试的功率、电流数据为准。

四、UWAEngine::Tag接口

在GOT Online报告中,多数页面会以场景为单位对当前页面数据情况进行参数统计,对于大场景项目,或需要对同一场景下不同玩法进行区分的项目,则推荐开发者手动增加场景线以进行更加精细地定义区间。研发团队可使用以下API:

void Tag(string tag);

该函数可用于标记测试区间,使用后将会覆盖Unreal场景名。报告中看到的场景名,以及区间统计将会以Tag为准,具体效果如图所示。

五、UWAEngine.Upload接口

随着UWA Pipeline的自动化测试的推广,GOT Online与自动化测试工具已经成为大幅节省人力的重要手段。不同于以往测试完毕后需要手动点击上传数据按钮,集成Unreal SDK 2.1.2后,即可通过API进行数据的上传。API接口如下:

public static void Upload(string user, string pwd, int projectId)
public static void Upload(string user, string pwd, string projectName)

以上就是本次版本更新的主要内容了。UWA希望通过加大对Unreal项目的数据采集力度和提高报告查看的便利程度,进一步帮助开发者定位项目的性能压力,以针对性地对项目进行优化,提高项目的性能优化效率。

快来UWA官网下载使用吧!
下载链接:https://www.uwa4d.com/#download
说明:2.1.2版本前的SDK将不会再被支持。


关于GOT Online For Unreal

为了让研发团队更灵活地测试,并更快速地得到性能反馈,UWA推出了GOT Online For Unreal。它不仅便捷,还提供了数据的深度分析如引擎各模块的耗时分布、资源的具体信息等高级分析功能,目前该工具免费提供给Unreal开发者使用。

该工具的使用方法非常简单:

1)在UWA官网下载工具套件,参照文档说明集成SDK
2)在本地进行测试
3)把数据上传到UWA官网
4)登录UWA官网在项目页面中查看对应的报告