当前位置: 首页 > news >正文

Unreal游戏GPU性能优化检测模式全新上线

UWA已经在去年推出了针对于Unity项目的GPU性能优化工具,通过对GPU渲染性能、带宽性能以及各种下探指标,帮助Unity项目研发团队定位由GPU导致的发热耗电问题。这个需求在Unreal团队中也极为强烈,因此UWA将该功能移植到针对Unreal项目的GOT Online测试工具中,帮助UE团队优化项目更有抓手。

一、性能简报

在GOT Online For Unreal测评报告中,UWA罗列了测试时的FPS、GPU Clocks和GPU Bound。

GPU Clocks是可以衡量渲染一个画面的GPU端的工作量,该值不受帧率影响,只要画面内容不变,Clocks就不变。这里有个定量公式:当单帧Clocks * 目标帧率大于设备的GPU最大频率,那么帧率是一定会跑不满帧。同时,为了避免设备高频运行导致快速降频,我们建议把GPU的Clocks工作控制在80%以内相对安全。

GPU Bound表示GPU性能高压区间,在上图中用红色区域标出,此时GPU计算耗费的时钟周期数过高,无法支持满帧运作。有了指标,我们也能明确优化重点:即把Clocks降低到正好能跑满30帧/60帧的范围。

针对GPU Clocks和GPU带宽,UWA也在图表下列出更为细分的优化指标。研发团队可以快速了解哪些指标超出了合理值。

性能简报的目的是帮助大家在繁复的性能指标中,快速筛选出高优先级的优化任务。如需针对某些指标做更为深层的下探,就可以前往报告中对应的界面中,对各个参数具体进行分析。

一般而言,我们建议大家从GPU性能和带宽两个角度分别剖析。

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

GPU渲染分析
在分析Clocks时,我们需要从细化维度即顶点压力和片元压力分别定位。

  • 当顶点压力过高时,会体现在参数GPU Primitive,即GPU绘制的图元数量中。开发者可以迅速确定Culled Primitives的构成比例,以便有针对性地检查和优化那些场景中可能存在GPU浪费的资源。

  • 片元阶段的计算量体现在总共要绘制多少个像素。在UWA报告中,GPU Shaded中的Fragment Shaded参数代表了GPU在每帧中执行Fragment Shader的总执行次数。而其中,渲染分辨率就决定了绘制一遍移动端设备的全屏要绘制多少个像素。

除此之外也提供了Overdraw的检测趋势,便于我们快速发现场景中有哪些Overdraw过高导致的GPU Bound。

GPU带宽分析
分析GPU压力的另一个维度就是带宽,虽然不直接影响帧率,但是非常影响能耗。由于GPU读、写带宽较高时都会造成大量的发热和耗电,需要开发者重点关注。

除了以帧为单位,报告中也展示了以秒为单位的GPU Bandwidth(In seconds),以便开发者进行数据换算和对齐。

在下方的相关指标中,也展示了GPU Texture Filter、GPU Stall、功率等参数,协助开发者做进一步定位。

二、场景概览

在场景概览的性能概览页下,开发者可以快速查看上述所有参数在各个场景中的性能情况,并结合推荐值和标红情况,判断各个场景中各项参数值是否在合理范围内,掌握项目各个场景的性能情况。

除了在网页端,开发者也可以通过导出数据功能,导出这些参数和对应场景的场景性能表,以便更自由地在本地进行备份和分析。

三、渲染资源分析

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

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

在网格资源分析页,同样也可以通过网格资源渲染利用率信息,定位网格资源的使用情况。

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

四、GPU温度

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

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

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


以上就是GOT Online For Unreal GPU模式的主要功能介绍,希望开发者们可以通过这些新功能,更高效地找到项目性能GPU问题的症结所在,从而提升游戏的整体性能和流畅度。相信在开发者和UWA的共同努力下,游戏项目将会拥有更加精美、流畅的画面。

欢迎前往UWA官网,下载最新版Unreal SDK v2.2.0:
UWA | 致力于游戏VR和AR应用提供项目研发解决方案 | 简单优化、优化简单 | 侑虎科技

相关推荐
Unreal游戏GPU参数详解,游戏性能优化再升级
GPU Counter功能更新|支持Adreno、PowerVR芯片
新功能|Mali GPU Counter模块新增GPU图元处理和GPU Shader Cycles
GPU Counter、Timeline功能上线 | 性能优化快人一步!

相关文章:

Unreal游戏GPU性能优化检测模式全新上线

UWA已经在去年推出了针对于Unity项目的GPU性能优化工具,通过对GPU渲染性能、带宽性能以及各种下探指标,帮助Unity项目研发团队定位由GPU导致的发热耗电问题。这个需求在Unreal团队中也极为强烈,因此UWA将该功能移植到针对Unreal项目的GOT Onl…...

设计网页用什么软件

在设计网页时,可以使用多种软件来完成不同的任务。以下是一些常用的网页设计软件,以及它们的特点和用途。 1. Adobe Photoshop: Adobe Photoshop 是一款功能强大的图像编辑软件。在网页设计中,它常用于创建和编辑网页所需的图像、…...

⑪ - 测试工程师通识指南

📖 该文隶属 程序员:职场关键角色通识宝典✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝典🏅...

RabbitMQ知识点总结和复习

之前项目中用到RabbitMQ的场景主要是订单信息的传递,还有就是利用RabbitMQ的死信队列属性设置,实现延迟队列效果,实现超时支付取消功能,以及在两个不同项目中传递数据等场景。 最近几年的工作中都是一直用的RabbitMQ,…...

ContEA阅读笔记

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化:不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来,实体对齐的研究一直基于知识图谱是静态的假设&#xff…...

使用nvm切换nodejs版本

查看可以安装的版本: 使用nvm list显示已安装的nodejs版本: 选择一个版本下载: 切换对应的版本:...

机器学习_KNN算法

机器学习_KNN算法 K-近邻(K-Nearest Neighbors,简称KNN)算法是一种基本的机器学习分类和回归算法 其核心思想是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别…...

学QT的第一天~

#include "mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { //窗口相关设置// this->resize(427,330); this->setFixedSize(427,330); //设置图标 this->setWindowIcon(QIcon("C:\\Users\\Admin\\Desktop\\pictrue\\dahz.jpg&q…...

《QT实用小工具·四十九》QT开发的轮播图

1、概述 源码放在文章末尾 该项目实现了界面轮播图的效果,包含如下特点: 左右轮播 鼠标悬浮切换,无需点击 自动定时轮播 自动裁剪和缩放不同尺寸图片 任意添加、插入、删除 单击事件,支持索引和自定义文本 界面美观,圆…...

uniapp 自定义 App启动图

由于uniapp默认的启动界面太过普通 所以需要自定义个启动图 普通的图片不可以过不了苹果的审核 所以使用storyboard启动图 生成 storyboard 的网站:初雪云-提供一站式App上传发布解决方案...

39-1 Web应用防火墙 - WAF应用程序层绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、双重URL编码绕过 什么是URL编码 URL编码是一种将特殊字符转为%加上其ASCII值的方式,以确保在URL中传输时不会被误解或导致错误。例如,字母"s"的URL编码是"…...

【1】STM32·FreeRTOS·新建工程模板【一步到位】

目录 一、获取FreeRTOS源码 二、FreeRTOS源码简介 2.1、FreeRTOS源码文件内容 2.2、FreeRTOS内核 2.3、Source文件夹 2.4、portable文件夹 三、FreeRTOS手把手移植 3.1、FreeRTOS移植准备 3.2、FreeRTOS移植步骤 3.2.1、将 FreeRTOS 源码添加至基础工程、头文件路径等…...

linux下sd卡的备份与还原

在Ubuntu上制作SD卡备份镜像,你可以使用dd命令。以下是一个基本的步骤和示例代码: 插入SD卡到电脑。确定SD卡设备路径,使用lsblk或sudo fdisk -l命令。确定备份镜像文件的路径。使用dd命令制作备份。 示例代码: bash# 查看连接的…...

Spring Boot项目中集成Logback作为日志框架-笔记

在Spring Boot项目中集成Logback作为日志框架是一个标准做法,因为Spring Boot默认就使用Logback作为日志系统。以下是集成Logback的步骤: 1. 默认集成 Spring Boot会自动配置Logback,所以通常情况下,你不需要添加任何额外的依赖或…...

Python_GUI框架 PyQt 与 Pyside6的介绍

Python_GUI框架 PyQt 与 Pyside6的介绍 一、简介 在Python的GUI(图形用户界面)开发领域,PyQt和PySide6是两个非常重要的工具包。它们都基于Qt库,为Python开发者提供了丰富的GUI组件和强大的功能。当然Python也有一些其他的GUI工…...

Github入门

GitHub 入门指南:从零开始学习使用 GitHub GitHub 是全球最大的代码托管平台之一,不仅是开发者们交流与协作的重要场所,也是学习与分享优秀代码的宝库。无论你是一位新手开发者还是经验丰富的专家,GitHub 都是你必须掌握的利器之…...

【Web漏洞指南】XSS漏洞详细指南

【Web漏洞指南】XSS漏洞详细指南 概述XSS的三种类型执行任意 JS 代码的方式在原始HTML中注入绕过手法在 HTML标记内注入绕过手法在JavaScript代码中注入绕过手法其他绕过手法XSS常见有效载荷检索Cookies窃取页面内容键盘记录器查找内部IP地址端口扫描器自动填充密码捕获窃取 Po…...

Labels and Databases for Mac:强大的标签与数据库管理工具

Labels and Databases for Mac是一款集标签制作与数据库管理于一体的强大工具,专为Mac用户打造,旨在提供高效、便捷的标签制作与数据管理体验。 这款软件拥有丰富的内置标签格式,用户可轻松创建各种标签、信封和卡片,满足个性化需…...

视频降噪算法 Meshflow 介绍

介绍 Meshflow 视频降噪算法来自于 2017 年电子科技大学一篇高质量论文。 该论文提出了一个新的运动模型MeshFlow,它是一个空间平滑的稀疏运动场 (spatially smooth sparse motion field),其运动矢量 (motion vectors) 仅在网格顶点 (mesh vertexes) 处…...

情感类ppt素材

小清新手绘插画风毕业季毕业相册同学录画册纪念册PPT下载 - 觅知网这是一张关于清新毕业相册的PPT模板,清新风格设计,加上风为装饰元素,包含毕业相册、毕业季、毕业、同学、纪念等主题内容,也可用作毕业相册PPT、毕业季PPT、毕业P…...

专家解读 | NIST网络安全框架(1):框架概览

随 着信息技术的快速发展,组织面临着越来越严峻的网络安全挑战。NIST网络安全框架(NIST Cybersecurity Framework,CSF)是一个灵活的综合性指南,旨在协助各类组织建立、改进和管理网络安全策略,以加强网络安…...

【NodeMCU实时天气时钟温湿度项目 3】连接SHT30传感器,获取并显示当前环境温湿度数据(I2C)

今天,我们开始第三个专题:连接SHT30温湿度传感器模块,获取当前环境实时温湿度数据,并显示在1.3寸TFT液晶显示屏上。 第一专题内容,请参考 【NodeMCU实时天气时钟温湿度项目 1】连接点亮SPI-TFT屏幕和UI布局设计…...

Unity3D DOTween

简单介绍一下 DOTween 插件的使用。 导入插件 先到 Asset Store 获取 DOTween 插件,然后在 Package Manager 的 My Assets 中搜索,下载并导入插件。 导入后,会自动弹出一个窗口,提示需要先对插件进行配置。 点击上图中的按钮&am…...

罗宾斯《管理学》第13版/教材讲解/考研真题视频课程/网课

本课程是罗宾斯《管理学》(第13版)精讲班,为了帮助参加研究生招生考试指定考研参考书目为罗宾斯《管理学》(第13版)的考生复习专业课,我们根据教材和名校考研真题的命题规律精心讲解教材章节内容。 序号名…...

docker-compose启动mysql4.7环境搭建

注意: 下面挂载的目录需要自己创建文件夹比如: /home/dockerInfo/composeInfo/volumes/mysqlVolume/var/log/mysql(数据文件) /home/dockerInfo/composeInfo/volumes/mysqlVolume/var/lib/mysql(日志文件)…...

StarryCoding入门教育赛2 题解 C++代码(推荐学习)

比赛地址:https://www.starrycoding.com/contest/6 比赛介绍 系列赛名称:StarryCoding 入门教育赛难度:语法~较低时长: 1.5 1.5 1.5小时比赛时间:约每2-3天一场,一般为晚上18:30~20:00赛后题解&#xff1…...

【JAVA进阶篇教学】第九篇:MyBatis-Plus用法介绍

博主打算从0-1讲解下java进阶篇教学,今天教学第九篇:MyBatis-Plus用法介绍。 在 MyBatis-Plus 3.5.0 中,LambdaQueryWrapper支持多种条件构造方式,除了等于(eq)、不等于(ne)、大于&a…...

实时音视频通信的主要矛盾及解决方法

实时音视频通信的主要矛盾及解决方法 实时音视频通信的主要矛盾及解决方法实时音视频通信的主要矛盾矛盾的解决方法增加带宽减少数据量适当增加延时提高网络质量快速准确地评估带宽 总结参考 实时音视频通信的主要矛盾及解决方法 实时音视频通信的主要矛盾 实时音视频通信的主…...

【Delphi 爬虫库 4】使用封装好的 XML 解析库对 XML 数据进行解析

由于官方提供的TXMLDocument组件并不是特别好用,有着体积大,速度慢,调用不方便等缺点。 这里直接利用封装好的XML 解析库来对Xml数据进行解析与生成。 文章目录 1、生成XML文件2、解析XML文件3、生成带注释的XML文件4、删除XML文件节点 1、生…...

Flask简介

Flask简介 安装概述使用PyCharm创建一个Flask程序 Flask程序的基本结构初始化路由和视图函数启动服务器请求-响应循环 安装 概述 Flask算是小型框架,小到可以称为“微框架”。Flask 非常小,因此你一旦能够熟练使用它,很可能就能读懂它所有的…...

网站开发的技术方案/百度收录入口提交

操作系统环境 一台ubutun16.04,一台ubutun server18.04 说明 ubutun内部有ssh来帮我们连接另一台主机,但是每次连接都要输入对方主机密码才能连接: 那么怎么实现两台主机间不需要输入密码就可以实现连接呢?这就是我今天要说的主机间免密…...

网站建设企业关键词/推广吧

hexdump 语法SYNOPSIS hexdump [options] file [...]-n length (Interpret only length bytes of input.) -s offset Skip offset bytes from the beginning of the input. -x 两字节的十六进制显示 # 查看整个文件 hexdump mapper2# 查看前100个字节 hexdump mapper2 -n 100…...

临沂市网站建设/什么软件可以发布推广信息

本文以MVC框架为例,实现log记录 在默认情况下,asp.net core有自带的可实现将日志输出到控制台,注意,此时需要,运行时,要运行自托管模式才能调出控制台。如何选择自托管模式;如下 如何使用logg…...

wordpress 文本小工具编辑器/河南网站推广

前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习。 1、text-indent text-indent 属性规定文本块中首行文本的缩进。主要实现就像word那种首行缩进的效果。 详解http://www.w3school.com.cn/cssref/pr_text_text-indent.asp转载于…...

好看的网站设计公司/搜索引擎营销的方法包括

本文主要说明Java中继承与组合的概念,以及它们之间的联系与区别。首先文章会给出一小段代码示例,用于展示到底什么是继承。然后演示如何通过“组合”来改进这种继承的设计机制。最后总结这两者的应用场景,即到底应该选择继承还是组合。1、继承…...

口碑营销怎么做/seo和网络推广有什么区别

在给出这道题的解题报告之前,先看下记忆化搜索的个人理解。 以最简单的递归求阶乘的函数进行说明。 常见的求阶乘的代码是这样的: int fac(int n) {if(n 1)return 1;elsereturn n * fac(n - 1); } 为了实现不重复递归调用,使用一个全局数…...