關閉MSAA
- 之前在查一個渲染問題,一開始是定位到了CPU在waitforFrame
- 所以知道是GPU的問題
- 但如何定義GPU的問題在哪里,就很麻煩。
- 我一開始以為是drawcall的問題,因為我發現drawcall有350個
- 但降低到30個后,依然情況沒有好轉。畢竟drawcall是優化cpu性能的
- 通過framedebugger也沒辦法定位問題。他只能知道繪制順序,沒辦法定位每個效果的消耗時間
- GPU Usage也沒用,他只能定位到大概的一個函數消耗時間
- 我當時就是定位到Canavas.DrawBatchs消耗時間最多。
逐步排查
- 因為這個項目是在其他項目的基礎上改出來的
- 所以其他項目是30幀,這個項目是15幀,問題出在哪里,只需要找不同就行了。
- 兩個項目唯一的不同就是渲染管線的不同。
- 然后已知場景是用攝像機渲染出來的,而攝像機和管線有關聯的幾個設置就那么幾個
- 所以我依次把這幾個效果關閉,打包,看幀率。
- 最后排除得到影響因素是MSAA
MSAA的影響
- MSAA 是抗鋸齒,會大幅提高GPU的計算量,導致CPU一直在等待GPU計算完成