- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                高级性能分析:使用PVRTune 的Fantasy Warrior 3D 
在上一篇文章中,我阐述了如何使用PVRTune GPU性能记录工具中的时间数据和高级计数器识别Fantasy Warrior 3D演示在基于PowerVR的目标设备上运行时是否受CPU限制。
本文中,我将描述一些PVRTune的高级分析计数器,并阐述如何使用这些计数器更好地分析GPU工作负载。
每三角形的顶点值
每个三角形的顶点数都有一个平均值。输入的顶点数量除以输入的三角形数量便是这个平均值。此计数器显示了已转化的顶点如何在三角形中实现共享。
这个值在最大值3(表明没有共享且每个三角形每顶点都有一个索引)及数值接近或低于1中进行变化。数值越低,则待处理的几何图形最优。
如果对几何数据进行合理分类,便可以提高顶点处理的效率。一般要遵循的原则是:指数缓冲区中领近三角形之间共享的顶点数越多,每个三角形顶点值则越低。
在这款游戏中,每三角形顶点值是1.5,则意味着比理想值(每三角形顶点值 = 1)略高。为获得最佳性能,三角形应按空间位置来分类,以提高转化后顶点的缓存效率。
可以使用Imagination的三角形分类算法来优化网格。最新发布的PowerVR图形SDK v4.0中包含了此分类算法(可查阅PVRTGeometry.h文件)。
三角形剔除
这个值表示数据写入参数缓冲区之前经剔除后转化的三角形百分比。这些剔除的三角形包括子像素、背面和离屏多边形。
在这款游戏中,该值(80.2%)非常高。这意味着GPU已经浪费了很多时间处理被贴图排斥的多边形(GPU –贴图负载)。可以使用PVRTrace决定是否存在很多离屏多边形或者背面剔除是否总是失效。
HSR效率
该计数器可以展示隐面消除(HSR)的有效性 (更多关于HSR的信息点击此处),其在处理之前排除了模糊的像素。这可表示用来着色的像素与提交总像素的百分比。 
任何被不透明的多边形阻挡且任何不可见的像素在早期都是被排除的。这样可避免不可见像素的处理和纹理加工成本过高,最大化地优化了性能并节省了内存带宽。
该款游戏中的HSR效率(21.0%)有点偏低。可以使用PVRTrace检查是否场景中有太多混合对象或是否所有不透明绘图出现在透明绘图之前。
ISP过载
图像合成处理器(ISP)是PowerVR GPU的一部分,并在深度和模板测试中获取原始数据并进行隐面消除 (HSR)。该计数器可以展示是否此单元已成为一个瓶颈。
此款游戏的ISP计数器呈现的值高达75.6%。ISP过载事件非常罕见,只有当一个或多个贴图必须处理大量重叠的多边形(如高透支)时才会发生。可以使用PVRTrace发现场景中是否有高透支现象。
Z加载/存储
对于大多数的渲染,深度和模板缓冲区仅包含必须完成相关渲染的临时数据。在PowerVR GPU架构中,片上深度和模板缓冲区则用于存储这些数据。当利用适当的API机制时,应用程序不会从片上缓冲区中上传或编辑数据。这使应用程序可以避免临时的缓冲区进行冗余系统内存传输。
Z加载/存储事件表明,已经对GPU中的深度/模板数据进行上传或处理。除非一个给定的应用程序需要保持深度或模板信息,应用程序应该使用适当的API机制来避免这些成本颇高的数据传输操作。
数值在0%以上表示发生了Z加载/存储。为避免这些操作,应确保不需要保存的深度和模板缓冲区在每个渲染开始时就已被清除,且在渲染结束后便已无效。
纹理加载
该计数器可以表示相比其峰值吞吐量,纹理单元的平均负荷值。
高数值(如超过50%)则表明纹理单元花费了大量的时间从系统内存中获取纹理的数据和/或执行线性插值滤波操作。
当负载很高时,应使用以下计数器获得更多的参考信息:
纹理过载(%):如果纹理负载高,则可能出现纹理过载。这将降低活动槽的占用率,进而降低着色器处理因数据关联性引起的隐藏延迟的能力。
这款游戏中的纹理负载是80.6%——这个数值非常高。这可能是由于高透支或场景中有太多混合对象导致的。纹理过载计数器应该帮助我们缩小瓶颈。
纹理过载
纹理过载时计数器会加以显示。每次纹理过载都表明,纹理样本请求队列已满,如着色处理单元提交需求的速度比纹理单元处理的速度要快得多。
                
原创力文档
                        

文档评论(0)