mipmap 二

minggoddess發表於2018-04-13

mipmap 之前講了生成 原理

這個講下我對效能的理解

mipmap 

對效能的影響

包含兩方面

minification時,取樣多個textel得到1個pixel顏色,如果是mipmap形成相鄰兩個pixel的兩組textels更為接近 會都在tex cache裡面 

1.這樣cache命中,速度快,

2.頻寬減小,沒有又從tex到cache來讀取資料

我之前有一種錯誤認識 頻寬和texturesize有關,其實只和 sample filter---point 1, bilinear 4, trilinear 8(mipmap level之間)fragment 有多少個(resolution決定) 有關

 

頻寬 

Memory Bandwidth 定義是prosser到memeory的data rate  GB/s

fragement的頻寬包括取樣tex 和繪製到color buffer &depth buffer這兩部分  對mipmap來說 tex cache命中增加 減小了取樣tex的頻寬

 

CPU到GPU之間的資料 這部分mipmap bind一次 8張全部繫結 每幀每次drawcall 前bindtexture-----這部分也許或許應該 至少不是GPU頻寬-------不知道對不對

這部分肯定是有的,bindtexture 雖然可以是隻傳地址 但是資源肯定要從記憶體到視訊記憶體 每次drawcall走一次 除非想Nintendo那樣共享memory

mipmap是增加了這部分 資料傳輸 但是這個量太低了  一幀大概100次 X一組mipmap那麼大  和GPU內部資料量不能比------也是不那麼確定的的

https://msdn.microsoft.com/en-us/library/windows/desktop/ff476259(v=vs.85).aspx

memory有這幾種型別default 型別只給GPU rw 只給GPU訪問的這塊memory是直接開在視訊記憶體還是開在記憶體 呢呢呢 需要查資料 

從遊戲開始載入資源就開這塊memory 從硬碟把texture資料加過去 就不是每幀 每次drawcall往視訊記憶體傳資料了

default 是視訊記憶體 references :Practical Rendering and Computation with Direct3D 11 這個吧

沒必要放system memory 只能gpu訪問