當前位置:編程學習大全網 - 編程語言 - 移動GPU三種主流架構優缺點淺析

移動GPU三種主流架構優缺點淺析

導讀: GPU是Graphic Processor Unit的簡稱,顧名思義就是圖形處理器。 GPU的概念最早是從圖形工作站發展而來,從90年代的個人電腦普及開始,GPU迎來了其大發展的時代。 在90年代中期,桌面GPU經歷了2D到3D的跨越,從此3D圖形渲染取代2D成為PC遊戲的主流

在上圖中移動處理器中內存帶寬最高的是iPad 3/4,因為他們使用Retina屏幕,2048x1536的高分辨率對GPU帶寬要求更高,不過就算是這兩款產品,17GB/s的帶寬與PC顯卡上動輒200GB/s以上的帶寬相比還是小兒科。 沒有高帶寬就沒有大容量紋理數據,也就不會擁有高畫質。 盡管帶寬不是制約移動GPU發展的唯壹因素,但是在目前的限制下,移動GPU廠商關心的頭、、大事就是如何在盡可能小的帶寬需求下提升GPU性能及畫質,紋理壓縮是壹個方法,還有壹種就是使用不同的渲染架構。 目前在GPU領域主要有IMR、TBR及TBDR、三種主流架構 2. 移動GPU的模式

IMR(Immediate Mode Rendering)就如字面意思壹樣,提交的每個渲染命令都會立即開始執行,並且該渲染命令會在整條流水線中執行完畢後才開始執行下壹個渲染命令

TBR模式與IMR簡單粗暴的做法不同,TBR(Tile Based Rendering)它將需要渲染的畫面分成壹個個的矩形區塊(tile),tile壹般是4x4或者8x4的矩形塊。 模型的頂點經過Vertex Shader運算以後會組裝成壹個個的triangle,這些triangle會被緩存在壹個triangle cache裏面。 如果某個triangle需要在某個tile裏面繪制,那麽就會在該tile的triangle list中存壹個索引。 、、壹幀裏面所有的渲染命令都經執行完Vertex Shader生成triangle以後,每個tile就會擁有壹個triangle list,這list就包含了需要在該tile內部繪制的所有triangle。 然後GPU再基於triangle list執行每個tile的raster和Per-fragment operation

執行raster和Per-fragment operation時不需要反復的訪問frame buffer,depth buffer,stencil buffer。 這是因為GPU可以把整個tile的frame buffer/depth buffer/stencil buffer保存在壹個片上的高速緩存中,這樣GPU就直接訪問tile,而不需要訪問外部內存。 這大大減少了內存的帶寬消耗,也意味著能耗的降低

需要保存Vertex Shader執行後的結果以及每個tile的triangle list。 這意味著如果場景裏面有很多的頂點,那麽片上緩存就不可能存下這麽多頂點信息和triangle list,就不得不依靠外部內存來存儲,就會擁有額外的帶寬消耗。 不過慶幸的是當前的移動3D繪制都不會擁有太多的triangle的場景。 壹個復雜的模型也就1萬多個triangle,因此壹個通常的場景大概就是幾十萬triangle。 隨著移動遊戲越來越復雜精美,模型的復雜程度也會快速上升,這也是TBR架構在未來將會面臨的壹大挑戰

如果在壹幀裏面有兩遍及其以上的渲染,那麽就需要使用Frame buffer object來緩存中間結果,這對TBR又是壹大性能損耗。 根據我們前面的講解,TBR需要緩沖壹幀所有的圖元,所有圖元執行完畢後才開始raster和Per-fragment operation。 在這種情況下,壹旦後面的draw命令需要使用到前面渲染生成的結果,那麽就不得不在該命令執行前,要求GPU把緩存的所有draw命令都執行完畢,然後放棄當前緩存內容。 在極致情況下,例如每次draw都需要讀取前壹次draw渲染的結果,那麽TBR就會直接退化成IMR模式基於以上的缺點,我們可以看出在桌面GPU領域TBR沒有任何優勢,因此其完全退出桌面GPU市場。 但是在移動GPU市場它更能適應性能/帶寬/能耗三者的平衡

TBDR(Tile Based Deferred Rendering,貼圖延遲渲染)算是TBR的近親,它跟TBR原理相似,但是通過HSR(Hidden Surface Removal,隱藏面消除)操作,在執行Pixel Shader之前進壹步減少了不需要渲染的fragment,降低了帶寬需求。 在執行Pixel Shader之前,對Raster生成的每個像素都做depth test的比較,剔除被遮擋的像素,這就是HSR的原理。 理論上經過HSR剔除以後,TBDR每幀需要渲染的像素上限就是屏幕像素的數量(沒有考慮alpha blend的情況下)。 而傳統的TBR在執行復雜壹點的遊戲時可能需要渲染6倍於屏幕的像素

TBDR是PowerVR的王牌,因為TBR和HSR帶來的帶寬與運算開銷的降低,使得手機的續航能力讓人驚嘆。 下圖是PowerVR的SGX系列的GPU架構圖,可以看到其復雜程度的架構

  • 上一篇:程序員是不是很簡單
  • 下一篇:急找單片機高手........幫我解決如下問題
  • copyright 2024編程學習大全網