PowerVR SDK&Tools 2017 R2版本已經(jīng)發(fā)布,現(xiàn)在是時候來看一下新版本所包含的新內(nèi)容了。在這篇文章中,我們將仔細(xì)分析《PowerVR Low-Level GLSL Optimisation》這篇文檔,它能夠讓我們充分了解PowerVR Rogue體系結(jié)構(gòu)的每一項(xiàng)性能。
GLSL是OpenGL Shading Language的縮寫,可以翻譯為OpenGL著色語言,該語言是一種高級語言,通常與“上層”(高級)操作相關(guān)聯(lián),但它也可以進(jìn)行一些底層的優(yōu)化,很多時候這會被開發(fā)人員所忽略。
在PowerVR Rogue架構(gòu)中,著色器的性能通常取決于執(zhí)行一次著色所需的周期數(shù)。該架構(gòu)提供了多種選項(xiàng),用于配置如何通過流水線的方式在單個周期內(nèi)執(zhí)行USC ALU的多條指令,當(dāng)然這還要取決于其硬件配置。例如,在一個周期內(nèi)可以執(zhí)行兩條F16 SOP指令,也可以執(zhí)行F32到F16的轉(zhuǎn)換或者move / output / pack等指令。
或者,你可以在一個周期內(nèi)執(zhí)行FP32 Multiply-Add(MAD)指令以及FP32 / INT32 MAD / UNPACK指令,一個test(條件句)指令以及move/output/pack指令。為了更好利用USC核,數(shù)學(xué)表達(dá)式應(yīng)該以MAD格式書寫。
優(yōu)化PowerVR Rogue體系結(jié)構(gòu)的另一個技巧就是利用修飾符,在某些特定的情況下,像abs(),neg()和clamp(...,0.0,1.0)這樣的修飾符是閑置的。當(dāng)用于操作的輸入時,編譯器會將abs()和neg()轉(zhuǎn)換為閑置修飾符。另一方面,當(dāng)用于操作的輸出時,clamp(…, 0.0, 1.0)將會被轉(zhuǎn)換成閑置修飾符。
得益于這些優(yōu)化,您的應(yīng)用程序不僅可以使用較少的功耗來運(yùn)行,而且可以降低對硬件的要求。想了解更多的方法來優(yōu)化您的應(yīng)用程序嗎?請下載PowerVR Low Level GLSL Optimisation(PowerVR 底層GLSL優(yōu)化手冊),并找到更多的方法來利用PowerVR Rogue體系結(jié)構(gòu)!
-
powervr
+關(guān)注
關(guān)注
0文章
98瀏覽量
31061
發(fā)布評論請先 登錄
相關(guān)推薦
評論