顯示卡的記憶體是這樣分配的
|XXXXXXXX| (假定1GB)
**
顯示卡自己保留 比如說跟driver互相傳遞的buffer,啟動顯卡
資源分配的有的沒有的...沒有規定會做多大 有的卡可能不太大
不過如果你想保留512MB給自己用也不是不行
++
每次啟動3D的時候 基本的buffer例如frame buffer,double buffer,z buffer
放置vertex的buffer,放shader code的buffer等等
---------
貼圖使用
一般用軟體看顯示記憶體用量,可能是**++--------或者是++--------
的總和 看軟體怎麼偵測.
但是,--------是應用程式所準備好 所有貼圖的所有"尺寸(MIP-MAP)"
真正影響效能的 是--------中那些會被最近的frame所讀取
如果已經很久沒讀取了 基本上可以放在主記憶體之中,這是AGP顯示卡以來
的基本功能,所以,--------得總和大於顯示記憶體總量也沒甚麼
為甚麼--------不會每次都讀取到?
基本上有幾種可能
1.貼圖種類不同 像是假設有冰山 有火山
那你看不見其中一種的時候 也不會讀取他的貼圖
這就和視角以及場景有關
2.貼圖只用到其中幾個尺寸
MIP-MAP是由最小2*2開始,4*4,8*8....一直到N*N
都準備好,要用到的時候會挑x或者y長度最接近的一個
送到貼圖filter去.
如果解析度比較低 因為MIP-MAP會挑選解析度相近的
所以會傾向選擇比較小的 所以這個frame的貼圖總用量也會相應變小
怎麼說?假設2560*1440,占了螢幕的1/10要選一個貼圖 大約會
選到512*512的,如果是1280*720 就應該是選到256的.
不過即使是高解析度這個仍然可以調整,這個參數叫做LOD(Level of details)
Bias.就是跟標準的尺寸比起來 你想要傾向選較小或者是較大的貼圖
選擇小一號的就會只需要1/4的記憶體動態用量跟頻寬
這個不影響貼圖使用的總量 但是會影響你有多大的顯示記憶體
可以跑順
因此在這個例子,"高"的2GB貼圖可能
(h表示常用)
2560*1440
hhhhhh--
1920*1080
hhhh----
1280*720 or LOD =-1
hh------
真正影響效能的量就是**++hh三種的總和
但是開放場景的話 貼圖的變化也會很大
那麼活動的總量就可能遠比你想像的還要高了
--
All Comments