在上一篇文章中,我闡述了如何使用PVRTune GPU性能記錄工具中的時間數(shù)據(jù)和高級計(jì)數(shù)器識別Fantasy Warrior 3D演示在基于PowerVR的目標(biāo)設(shè)備上運(yùn)行時是否受CPU限制。
本文中,我將描述一些PVRTune的高級分析計(jì)數(shù)器,并闡述如何使用這些計(jì)數(shù)器更好地分析GPU工作負(fù)載。
每三角形的頂點(diǎn)值
每個三角形的頂點(diǎn)數(shù)都有一個平均值。輸入的頂點(diǎn)數(shù)量除以輸入的三角形數(shù)量便是這個平均值。此計(jì)數(shù)器顯示了已轉(zhuǎn)化的頂點(diǎn)如何在三角形中實(shí)現(xiàn)共享。
這個值在最大值3(表明沒有共享且每個三角形每頂點(diǎn)都有一個索引)及數(shù)值接近或低于1中進(jìn)行變化。數(shù)值越低,則待處理的幾何圖形最優(yōu)。
如果對幾何數(shù)據(jù)進(jìn)行合理分類,便可以提高頂點(diǎn)處理的效率。一般要遵循的原則是:指數(shù)緩沖區(qū)中領(lǐng)近三角形之間共享的頂點(diǎn)數(shù)越多,每個三角形頂點(diǎn)值則越低。
在這款游戲中,每三角形頂點(diǎn)值是1.5,則意味著比理想值(每三角形頂點(diǎn)值< = 1)略高。為獲得最佳性能,三角形應(yīng)按空間位置來分類,以提高轉(zhuǎn)化后頂點(diǎn)的緩存效率。
可以使用Imagination的三角形分類算法來優(yōu)化網(wǎng)格。最新發(fā)布的PowerVR圖形SDK v4.0中包含了此分類算法(可查閱PVRTGeometry.h文件)。
三角形剔除
這個值表示數(shù)據(jù)寫入?yún)?shù)緩沖區(qū)之前經(jīng)剔除后轉(zhuǎn)化的三角形百分比。這些剔除的三角形包括子像素、背面和離屏多邊形。
在這款游戲中,該值(80.2%)非常高。這意味著GPU已經(jīng)浪費(fèi)了很多時間處理被貼圖排斥的多邊形(GPU –貼圖負(fù)載)。可以使用PVRTrace決定是否存在很多離屏多邊形或者背面剔除是否總是失效。
HSR效率
該計(jì)數(shù)器可以展示隱面消除(HSR)的有效性 (更多關(guān)于HSR的信息點(diǎn)擊此處),其在處理之前排除了模糊的像素。這可表示用來著色的像素與提交總像素的百分比。
任何被不透明的多邊形阻擋且任何不可見的像素在早期都是被排除的。這樣可避免不可見像素的處理和紋理加工成本過高,最大化地優(yōu)化了性能并節(jié)省了內(nèi)存帶寬。
該款游戲中的HSR效率(21.0%)有點(diǎn)偏低。可以使用PVRTrace檢查是否場景中有太多混合對象或是否所有不透明繪圖出現(xiàn)在透明繪圖之前。
ISP過載
圖像合成處理器(ISP)是PowerVR GPU的一部分,并在深度和模板測試中獲取原始數(shù)據(jù)并進(jìn)行隱面消除 (HSR)。該計(jì)數(shù)器可以展示是否此單元已成為一個瓶頸。
此款游戲的ISP計(jì)數(shù)器呈現(xiàn)的值高達(dá)75.6%。ISP過載事件非常罕見,只有當(dāng)一個或多個貼圖必須處理大量重疊的多邊形(如高透支)時才會發(fā)生??梢允褂肞VRTrace發(fā)現(xiàn)場景中是否有高透支現(xiàn)象。
Z加載/存儲
對于大多數(shù)的渲染,深度和模板緩沖區(qū)僅包含必須完成相關(guān)渲染的臨時數(shù)據(jù)。在PowerVR GPU架構(gòu)中,片上深度和模板緩沖區(qū)則用于存儲這些數(shù)據(jù)。當(dāng)利用適當(dāng)?shù)腁PI機(jī)制時,應(yīng)用程序不會從片上緩沖區(qū)中上傳或編輯數(shù)據(jù)。這使應(yīng)用程序可以避免臨時的緩沖區(qū)進(jìn)行冗余系統(tǒng)內(nèi)存?zhèn)鬏敗?/p>
Z加載/存儲事件表明,已經(jīng)對GPU中的深度/模板數(shù)據(jù)進(jìn)行上傳或處理。除非一個給定的應(yīng)用程序需要保持深度或模板信息,應(yīng)用程序應(yīng)該使用適當(dāng)?shù)腁PI機(jī)制來避免這些成本頗高的數(shù)據(jù)傳輸操作。
數(shù)值在0%以上表示發(fā)生了Z加載/存儲。為避免這些操作,應(yīng)確保不需要保存的深度和模板緩沖區(qū)在每個渲染開始時就已被清除,且在渲染結(jié)束后便已無效。
紋理加載
該計(jì)數(shù)器可以表示相比其峰值吞吐量,紋理單元的平均負(fù)荷值。
高數(shù)值(如超過50%)則表明紋理單元花費(fèi)了大量的時間從系統(tǒng)內(nèi)存中獲取紋理的數(shù)據(jù)和/或執(zhí)行線性插值濾波操作。
當(dāng)負(fù)載很高時,應(yīng)使用以下計(jì)數(shù)器獲得更多的參考信息:
紋理過載(%):如果紋理負(fù)載高,則可能出現(xiàn)紋理過載。這將降低活動槽的占用率,進(jìn)而降低著色器處理因數(shù)據(jù)關(guān)聯(lián)性引起的隱藏延遲的能力。
這款游戲中的紋理負(fù)載是80.6%——這個數(shù)值非常高。這可能是由于高透支或場景中有太多混合對象導(dǎo)致的。紋理過載計(jì)數(shù)器應(yīng)該幫助我們縮小瓶頸。
紋理過載
紋理過載時計(jì)數(shù)器會加以顯示。每次紋理過載都表明,紋理樣本請求隊(duì)列已滿,如著色處理單元提交需求的速度比紋理單元處理的速度要快得多。
評論
查看更多