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