新功能|Mail GPU Counter模块新增GPU图元处理和GPU Shader Cycles_uwa 捕获gpu元数据原理-程序员宅基地

技术标签: Unity  游戏检测  人工智能  智能检测  游戏开发  万象更新| UWA新功能  

Mail GPU Counter模块自上线后受到了广泛好评,已经有不少项目通过查看GPU着色和带宽信息,定位到GPU的高压场景和性能瓶颈。基于GPU优化越来越强烈的需求,UWA在新版本测评报告中新增的了几项重要参数,以便开发者对项目的GPU压力进行更全面的认识和高效的定位。

即日起,使用UWA SDK 2.4.3版本进行GOT Online Overview模式测试,便可在Mail GPU Counter模块下查看项目运行时的GPU图元处理和GPU Shader Cycles情况

一、GPU图元处理

渲染面是产生GPU压力的重要因素之一,我们可以通过 Overview 模式里的 Triangle 指标来查看和分析哪些画面的渲染面较多。

渲染面过多,一方面可能是模型过于复杂,一般可以通过 LOD、HLOD 等常用技术来简化远距离的模型,在不影响画质的情况下显著降低渲染面;另一方面,可能是地形、大建筑物等大面积模型没有进行适当的拆分,导致进入视域体的面片可能不多,但提交GPU的渲染面依然很多。

对于第二种情况,我们可以通过新功能“GPU图元”来进行初步的判断。

总图元数:提交到GPU端的图元总数,该数值基本等同于引擎端统计的渲染面片总数。

可见图元数:在GPU端通过各种裁剪之后,留下的参与渲染的三角面。

可见图元不包括:因为在视域体外而被裁剪的三角面,因为朝向而被裁剪的三角面。因此,在3D场景中,比较理想的情况下,可见图元的数量应该接近或高于 50%(对于大部分模型,有一半三角面会因为朝向被裁剪)。如果某些角度下,可见图元的比例非常低,则很可能存在上文提到的第二种情况,从而可以针对性地检查和优化场景中,这个角度下,被提交到GPU的大面积模型。

GPU图元处理数量过多会对设备的带宽和能耗造成较大的影响,应尽量在程序端完成剔除,并减小送往GPU的图元数。此外,总图元数数值基本等同于引擎端统计的渲染面片总数,开发者也可以通过这一数值侧面评估处理的渲染面片数是否合理。

二、GPU Shader Cycles

Shader复杂度过高是GPU压力较大的主要原因之一,后处理、大地形、水体、人物建模、还有粒子特效都容易存在Shader复杂度过高的情况。

为了帮助大家排查Shader复杂度过高的问题,在UWA的报告中针对这部分参数做了支持和细化。Shader Cycles数表示GPU在Shader处理上占用的Cycles数,展示测试过程中的Shader复杂度情况。

除了总Shader Cycles数外,GPU Shader Cycles还列出了Shader Arithmetic Cycles、Shader Interpolator Cycles、Shader LoadStore Cycles、Shader Texture Cycles四项数据。用户可以快速定位到高Shader复杂度场景下,数学计算、顶点到像素插值、寄存器读取、纹理处理相关Cycles数中,哪一个单元是Shader复杂度过高的瓶颈,以便针对性地对项目的Shader复杂度情况进行排查和优化。

三、其他参数指标细化

除了Mail GPU Counter模块外,这次更新中,UWA还对一些数据项进行了细化。

1、增加温度显示
Overview模式硬件信息下的温度模块新增CPU温度、GPU温度和电池温度三项数据,以助于定位设备发热原因。

2、Timeline支持显示线程名,如主线程、渲染线程等。

3、Resource模式新增AssetBundle驻留信息
在我们排查内存问题的时候,会发现Unity内存总值偏高,但主流资源和Mono占用并不高,这时候就需要留意是否可能其他内存造成的,例如AssetBundle的驻留内存。

在GOT Online Resource模式下,我们可以看到项目运行过程中的资源驻留情况。当驻留内存比较大时,就可以通过优化缓存策略的方式减少驻留数量,从而达到降低Unity内存的效果。

以上就是这次的新功能介绍了,希望这次的支持可以帮助研发团队在优化过程中更高效精准地定位项目GPU压力的痛点,事半功倍。您可以注册并激活UWA账号即可获得UWA SaaS服务的免费试用权限,快来体验吧~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/UWA4D/article/details/125215184

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法