打开网易新闻 查看精彩图片

UWA GOT Online For Unreal GPU模式近期全新发布,方便开发者从渲染和带宽的角度进行GPU分析。同时,此次更新中UWA也增加了丰富的GPU参数,涵盖了GPU SoC和GPU Counter模块。这些新增的参数不仅能够帮助Unreal开发者从宏观层面监控GPU的压力状况,还能够提供更全面、更精确的数据信息,以确定GPU压力的来源。

下面,我们将详细解读SoC GPU信息以及GPU Counter相关的数据,并给出UWA的建议,助力开发者更好地理解和优化GPU性能。

一、GPU SoC

GPU SoC目前支持MTK芯片和安卓10及以上的HISI SoC芯片设备,开发者可以通过这些参数,从更宏观的角度对设备的GPU运行情况进行监控,观察GPU运行状态、判断是否存在GPU降频情况。

GPU Freq

GPU Freq表示当前采样帧GPU的工作频率,不同型号和厂商的GPU具有不同的额定最大频率,且GPU会动态调整工作频率。开发者可以通过GPU频率观察GPU的工作情况,结合GPU Counter下的具体参数,快速判断GPU是否处于正常工作状态。

打开网易新闻 查看精彩图片

GPU Usage

GPU Usage表示GPU频率相对GPU额定最大频率的百分比,该参数走势和GPU频率走势一致。当GPU负载持续较高时,说明设备持续处于高压场景,长期处于这种情况容易引起GPU过热,造成游戏性能表现下滑,需要开发者结合GPU Counter模块重点关注这些场景的GPU压力。

打开网易新闻 查看精彩图片

DDR Freq

在HISI SoC设备上,还支持DDR Freq参数,表示设备系统内存频率,而DDR的工作状态也会影响到GPU的性能释放。

打开网易新闻 查看精彩图片

GPU Load

在MTK SoC设备上支持GPU Load统计,该值表示GPU的时钟周期数占当前可用时钟周期数的百分比,即当前额定频率的利用率。需要注意的是,GPU利用率仅表示当前频率下GPU的使用情况,而非GPU压力情况。

打开网易新闻 查看精彩图片

二、GPU Counter

GPU Counter是对GPU数据进行了更全面的补充。 本次更新增加了大量的GPU Counter参数,进一步完善了GPU数据的全面性和准确性。 其中一些参数在Mali、PowerVR、Adreno GPU芯片设备上都可以获取到,以便开发者对项目的GPU性能压力情况进行更准确的判断。

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

GPU Clocks

GPU Clocks,表示渲染一帧耗费的GPU时钟周期数,是用于衡量GPU性能的主要指标。通过GPU Clocks,开发者可以快速定位项目的GPU压力主要来自哪些场景,并结合GPU Counter下的其他参数对GPU压力情况进行具体分析。

打开网易新闻 查看精彩图片

GPU Shaded

GPU Shaded包括Fragment shaded、Vertices shaded和Cycles/Pixel三项指标。 Cycles/Pixel表示项目的平均每像素复杂度,新增的Fragment shaded则可以从另一个方面体现项目的Overdraw情况。

其中Fragment shaded表示每帧Fragment shader执行了多少次,用Fragment shaded数除以设备分辨率,可以侧面反映项目的Overdraw情况。当Overdraw较高时,容易引起发热和能耗方面的问题。我们可以通过降低半透明粒子特效的粒子数量、使用不规则面片代替矩形面片渲染粒子特效或UI等方式,减少项目的Overdraw层数,降低GPU压力。

打开网易新闻 查看精彩图片

而Vertices shaded则表示每帧Vertex shader执行了多少次。使用Vertices shaded除以输入图元数,即可得到平均每个图元进行了多少次Vertices shaded。

GPU Primitive-Culled Primitives

对GPU Primitive下的Culled Primitives,UWA也进行了更细致的拆分,新增了二级参数FacingCullingPrimitives(面剔除图元数)、FrustumCullingPrimitives(视锥剔除数)、CoverageCullingPrimitives(微图元剔除数)。

打开网易新闻 查看精彩图片

通过这些参数,开发者可以迅速确定Culled Primitives的构成比例,以便有针对性地检查和优化那些场景中可能存在GPU浪费的资源。

除了上述参数外,本次更新也根据不同品牌芯片的特点,分别获取到了独特的参数。通过这些参数,开发者可以对数据进行进一步分析,精准定位GPU性能压力的源头。

Mali芯片

GPU Shader Instructions

GPU Shader Instructions,即每帧GPU执行的Shader指令数。GPU Shader Instructions和现有的Shader Cycles是两个层面的含义,Shader Cycles是指Shader在GPU上实际运行时的处理周期,Shader Instructions指Shader所包含的所有指令操作数。

打开网易新闻 查看精彩图片

GPU Bandwidth-Read Total

在GPU Bandwidth的Read Total下,新增了二级参数Front-end Read、LoadStore Read和Texture Read,分别对应GPU的Tile Unit、Load/Store Unit和Texture Unit三个处理单元带宽,包括TileList数据、顶点输入属性数据、Uniform数据、颜色/深度数据、纹理数据的读取。

打开网易新闻 查看精彩图片

PowerVR芯片

Memory Bus Utilization

GPU Memory Bus Utilization,即每帧GPU内存总线负载。它表示当前GPU带宽消耗占总可用带宽的百分比。当GPU Memory Bus Utilization持续较高时,说明GPU访问内存的频率过于频繁,可以通过减少纹理资源与网格资源的大小和数量控制GPU缓存的占比。

打开网易新闻 查看精彩图片

Adreno芯片

GPU Bandwidth-Read Total

在GPU Bandwidth的Read Total下,新增Vertex Read、SP Read和Texture Read参数,和Mali GPU下一样,也包括了TileList数据、顶点输入属性数据、Uniform数据、颜色/深度数据、纹理数据的读取。

打开网易新闻 查看精彩图片

以上就是本次GOT Online For Unreal服务中 新增的GPU参数。希望开发者能够结合这些参数,更加充分地了解项目的GPU性能压力情况,进而实现更高效的问题解决与性能优化。未来,UWA还将继续深入研发,探索更多性能优化的可能性,为开发者提供更多实用的工具和功能。

如果对这些功能感兴趣,这个可前往UWA官网的“GOT Online支持设备列表”,选择合适的设备进行测试:

https://www.uwa4d.com/main/supported.html

希望快速试用的开发者,可以前往UWA官网,下载最新版Unreal SDK v2.2.0,并获得14天免费试用的权益。

https://www.uwa4d.com/#download