瀏覽單個文章
宗毛
Elite Member
 
宗毛的大頭照
 

加入日期: Mar 2002
您的住址: 台北市
文章: 4,505
引用:
Originally posted by Araiman
嗯....先把一些事定義清楚

HARDWARE T&L是指用GRAPHICS CHIP去作Transform & Lighting
而fixed-function graphics pipeline是指針對某種graphics指令用硬體去實作其演算法 使其能在硬體上執行

譬如打光..若graphics上的fixed function用的是Phong reflectance modelling
那我下打光指令後..出來的效果就是用硬體去run Phong modelling 演算法出來的結果
如果我要用擬真度較高的BRDF呢?
很抱歉..由於我硬體FIXED FUNCTION PIPELINE沒把這東西作進去
你必需用CPU慢慢的算

9700其中一個"革命性"的改變就是
把所有FIXED FUNCTION PIPELINE都拿掉
所有Operation直接交 Programmable shader去處理

(see the RADEOPN 9700 section of this article
http://www.flipcode.com/articles/ar...ojoday2k2.shtml)



不過這樣就有個問題了
由於graphics library compile出來的binary code沒改變
因此若是沒使用shader的3D程式
仍然會向GPU要求使用某個fixed function unit
可是9700已經拿掉了...那怎麼辦

所以...我的推論是...ATI在驅動程式下手
把所有以前的fixed function全部寫成shader program
跟驅動程式bundle在一起

這樣一來..如果遇到要使用某fixed function時
就由driver直接把對應的shader丟到gpu去RUN就可以了...

所以..結論是...
9700仍然是個HW TNL的chip
但不再是個支援HW fixed function的graphics chip


多謝Araiman提供的資料,
我把TnL那段節錄出來:
http://www.flipcode.com/articles/ar...ojoday2k2.shtml

引用:
A few unique aspects differentiate the 9700 from earlier cards in the Radeon series. Firstly, it has no silicon devoted to the fixed function pipeline, and instead the driver implements the same transform and lighting calculations using vertex shaders. This changes the rules a bit when it comes to maximizing performance in your application. In the past, conventional wisdom prefered using fixed function over the programmable pipeline whenever possible, since the dedicated hardware was faster. On the 9700 the roles are reversed, since it's likely you can write a shader that's more efficient for your application than the driver's fixed function shaders. There's also significant overhead involved in switching between your own vertex shaders and using the fixed function pipeline since it requires loading up a large shader – one of the most expensive state change operations on the programmable hardware.
舊 2004-01-11, 11:57 AM #34
回應時引用此文章
宗毛離線中