技美知识学习3700:现代移动端的TBR和TBDR渲染管线
學習教程來自:【技術美術百人計劃】圖形 3.7 移動端TB(D)R架構基礎
移動端GPU的TB(D)R架構
1. 當前移動端GPU概況
市場占比概況(數據來自學習教程PPT)1.1 移動端和桌面端功耗對比
移動端和桌面端功耗對比(數據來自學習教程PPT)差距約100倍1.2 移動端和桌面端帶寬對比
移動端和桌面端帶寬對比(來自學習教程PPT)差距約10倍2. 名詞解釋
SoC(System on Chip):芯片。把CPU GPU 內存 通信基帶 GPS模塊等整合在一起的芯片
System Memory:手機內存。CPU和GPU共用的一塊片內LPDDR物理內存,一般有幾個G
On-chip Memory:緩存。CPU和GPU的高速SRAM的Cache緩存,一般幾百K到幾M,比內存快幾倍到幾十倍,他們都共享內存地址空間(桌面端是分開的)。在TB(D)R架構下會存儲Tile的顏色、深度和模板緩沖
Stall:GPU必須串行的2次計算之間的等待過程
FillRate:ROP運行時鐘頻率 X ROP個數 X 每個時鐘ROP可以處理的像素個數
TB(D)R/Tile-Based(Deferred)Rendering:主流的移動GPU渲染架構,對應PC的IMR(Immediate Mode Rendering)。屏幕被分成16或32的像素塊渲染
TBR流程:VS-Defer-RS-PS
TBDS流程:VS-Defer-RS-Defer-PS(見7、8描述2個defer過程)
Defer:延遲,阻塞+批處理待渲染的一幀中的多個數據,然后一起處理
3. 立即渲染(IMR)
IMR工作流程(來自https://www.imaginationtech.com/)4. 基于塊元的渲染TB(D)R
5. TB(D)R的硬件渲染順序
TB(D)R工作流程(來自https://www.imaginationtech.com/)6. IMR和TB(D)R對比
TB(D)R對比和IMR對比(來自學習教程PPT)總體上看,TBR降低了功耗和帶寬,但幀率上并不比IMR快
TBR的優缺點:
優點:
缺點:
7. Binning過程(第一個Defer)
過程:圖元分配到對應的塊元
Binning過程(來自學習教程PPT)測試工具:Adreno Profiler
8. 不同GPU的Early-Depth-Test(第二個Defer)
8.1 Qualcomm Adreno的LDR(Android)
硬件的occlusion culling:在正常渲染管線之前,VS生成低精度depth texture,剔除不可見的三角形
8.2 Mali的FPK(Android)
Forward Pixel Kill技術:在Early-Z階段之后,使用一個FIFO隊列拋棄被遮擋的Quad(例子中是2*2的像素)
FPK過程(來自學習教程PPT)8.3 Power-VR的HSR(IOS)
Hidden Surface Removal技術:沿一條射線從第一個不透明片元向后剔除被遮擋的片元
HSR過程(來自學習教程PPT)9. 優化建議
作業
題目:打包場景到Android平臺,對比優化前和優化后的結果
測試環境:2.84 GHz 驍龍865八核 8GB運存
提前總結:以下優化效果測試了貼圖大小的影響,關閉了一些影響不大的后處理效果,沒有進行shader的修改(菜~~ 沒找到shader的位置,之后再完善吧)。
0. 優化前
場景來自Unity Asset 資源鏈接
優化前 PPT 1500ms優化前 1500ms
優化1:從上邊的圖看,瓶頸在GPU。經過嘗試后關閉了攝像機中一個后處理(遠處場景模糊處理),
1. 關閉耗時的后處理
關閉1個后處理 36.88ms2. 貼圖調整
貼圖調整前 為2048X2048 38ms左右如圖,當攝像機離散的變化到一個新位置時,渲染的時間會突然增加再慢慢減少,往復循環。
3. Shader
場景中使用的材質這個場景里的Shader沒找到從哪里能改,卒
4. 一些后處理效果的刪除
經測試,關掉這些后處理效果能在最終效果差別不大的情況下提升幀率(貼圖在2048分辨率下)
關閉的效果關閉后 平均28ms左右(關閉前38ms) 最高33ms 與貼圖改到 32X32 分辨率結果相近
效果圖
優化前
總結
以上是生活随笔為你收集整理的技美知识学习3700:现代移动端的TBR和TBDR渲染管线的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RPA操作企业微信接口
- 下一篇: 【软工Work1】四则加减乘除混合运算(