瀏覽單個文章
Artx1
Master Member
 

加入日期: Jun 2002
您的住址: 耗電量頗高的地方.
文章: 1,959
要餵飽現代的顯示卡談何容易....
其實通常都是引擎寫不好, 並不是軟體真的將顯示晶片發揮到極限了.

以現在而言, Quadro4 380XGL其實還是有隨著更換CPU而提高效能的狀況,
而其與Quadro4 550XGL, 可說僅有AGP8x的差距, 足證NV18的效能在解開了AGP4x的限制之後其實離瓶頸還相當地遠, 這是專業市場的範疇. 所以真的要找出顯示晶片的極限談何容易?
你不一定能知道到底是軟體本身有問題還是硬體真的跑不上去了.

基本上VS/PS的效率都是會隨著遊戲引擎的內容改變的,
都有相當的最佳化空間; 要說一張顯示卡無法改變的"瓶頸",
應該都屬於固定功能的幾個元件.
NVIDIA在CEDEC2003的文件中提到:
(下載: http://developer.nvidia.com/object/...sentations.html)

在管線效率最佳化一文中提到:
http://developer.nvidia.com/docs/IO...Performance.pdf
Page5

以目前的顯示晶片架構而言, 管線中會出現的瓶頸,
大略可以從Triangle Setup Engine為分界點, 分為兩個大項.
a. Transform Bound(意指與T&L有關的瓶頸), 可能發生在rasterizer環節前的任何地方.
b. fill bound (意指與Fillrate有關的瓶頸), 照樣可能發生在Triangle Setup後的任何地方.

由於Triangle Setup Engine與Rasterizer頭尾相接, 是顯示晶片中動作最單純, 最不會受到其他各種動作影響的部分, 所以所以只要沒有達到這個部分的極限, 軟體都有最佳化的空間. 實質上也可說只有這個環節才是一個顯示晶片真正的瓶頸.

會發生的各種瓶頸有以下八項:

1. CPU Limited
2. AGP Limited
3. Vertex Transform Limited
4. Triangle Setup Limited
5. Raster Limited
6. Fragment Shader Limited
7. Texture b/w Limited
8. Frame Buffer Limited

這八項
此文件由於是針對遊戲製作人員所寫作的, 所以提供的辨別流程也比較繁複, 有些並不是使用者可以自己實作的方法, 但是其實仍然有相當的參考價值.

在文件中, 有提供一些邏輯上的運作瓶頸找尋方法(Page7):
以下動作的格式為"做xxxxx, 如果FPS有變動則代表xxxx為瓶頸",
動作依序為:

1. 執行一個場景
2. 變動Frame Buffer色深 --> 如FPS有變動則為Frame Buffer Limited
3. 改變材質大小 --> 如FPS有變動則為Texture B/W Limited
4. 改變解析度--> 如果FPS有變動--> 再改變PS指令數量 --> FPS有變動則為PS效能瓶頸, 反之則為Rasterizer執行瓶頸
5. 改變VS指令-->如果FPS變動-->VS動作瓶頸
6. 改變頂點數量/模型大小 or 改變AGP頻寬設定(如8x->4x) --> 如FPS變動則為AGP瓶頸.
如果以上各種改變都沒有明顯的差異, 則應是CPU為效能瓶頸.

你可以透過nvHardpage來開啟Coolbit相關功能, 比如說Performance Graph,
這個小功能有助於幫助你辨別現在你的系統到底哪邊成為了瓶頸.
舊 2004-01-02, 03:30 PM #4
回應時引用此文章
Artx1離線中