NVIDIA確認:開普勒架構(gòu)不完全支持DX11.1
AMD Radeon HD 7000系列在發(fā)布之初就旗幟鮮明地宣稱全球首個支持DirectX 11.1,而隨后的NVIDIA GeForce GTX 600系列卻在這方面含糊其辭,首發(fā)的時候完全就沒有明確提及,直到現(xiàn)在官方網(wǎng)站產(chǎn)品規(guī)格表中也沒有DirectX這個項目。根本原因是,開普勒架構(gòu)并不完全支持DX11.1,但又并非不支持那么簡單。
首先是德國網(wǎng)站heise.de,報道稱開普勒缺乏對DX11.1的完整硬件支持,但語焉不詳,并未解釋詳細情況。
BSN隨后聯(lián)系了NVIDIA歐洲、中東和非洲地區(qū)技術營銷主管Lars Weinand,得到了深入的解釋——
GTX 680支持DirectX 11.1,(只是)硬件特性級別為11_0,包含有所有的可選特性,其中有大量對游戲開發(fā)人員非常有用的功能,比如:
- Partial constant buffer updates (部分常量換成更新)
- Logic operations in the Output Merger (輸出合并的邏輯操作)
- 16bpp rendering (16bpp色深渲染)
- UAV-only rendering (僅UVA渲染)
- Partial clears (部分清理)
- Large constant buffers (大型常量緩沖)
(但是)我們沒有在開普勒硬件里開啟四個與游戲無關的特性,它們都屬于特性級別11_1:
- Target-Independent Rasterization (2D渲染中的目標獨立光柵化)
- 16xMSAA Rasterization (2D渲染中的16xMSAA多重采樣抗鋸齒光柵化)
- Orthogonal Line Rendering Mode (正交直線渲染模式)
- UAV in non-pixel-shader stages (非像素著色器階段的UAV)
簡單地說,我們確實通過DirectX 11.1 API支持11.1特性,而特性級別為11_0,不支持特性級別11_1。這聽上去有點拗口,主要是微軟命名的緣故。所以呢,從游戲相關功能的特性級別來說,我們確實支持DirectX 11.1。
BSN又找到了一些頂級游戲開發(fā)商的資深人士詢問這個問題,其中一個發(fā)行PC/X360/PS3跨平臺大作、下代引擎僅支持DX11 PC/Xbox 720/PS4的(猜猜是誰)是這樣解釋的:
DirectX 11.支持是所謂的毯子支持(Blanket Support),使用dx11_0、dx11_1(特性級別的)硬件,我們可以用刀幾乎所有功能。我們并不刻意區(qū)分它們兩個,因為硬件能力有別。
另一家的回復也差不多:
DirectX 11.1是一種增量升級,我們支持自己需要的所有特性,不管是dx11_0還是dx11_硬件。還記得DirectX 10和不同的版本么(DX10/10.1)?它們都可以通過軟件特性實現(xiàn)。DirectX 11.0、11.1之間的差別90%都在軟件上。
最后被找到的AMD宣稱南方群島架構(gòu)的Radeon HD 7000系列完全兼容DirectX 11.1,而且完整硬件支持特性級別11_1,而上代北方群島架構(gòu)的Radeon HD 6000系列都是DirectX 11.1、特性級別11_0。
另有消息稱,NVIDIA明年的開普勒更新版,包括GK112、GK114、GK117等核心都會完整硬件支持特性級別11_1。
【名詞解釋】:特性級別(Feature Level)
我們平常說的某硬件支持DX某個版本說的都是API(應用編程接口),而特性級別是微軟在DX10.1 API時代引入的一個概念,用于歸納某個特定API版本中的硬件支持功能集,允許開發(fā)人員簡化渲染流水線,在新舊硬件上只用單個版本的API,發(fā)揮新版運行時的性能和可用性優(yōu)勢。每一個較高的特性等級都是較低等級的嚴格超集,包含一些額外的特性。更高級的特性只會用在高級硬件上,但是硬件并不一定非得支持全部的特性等級。
簡單地說,特性級別是從DirectX功能的角度定義的,與DirectX API版本并無直接關聯(lián)。
現(xiàn)在一共有多達九個特性等級,分別是9_1、9_2、9_3、10_0、10_1、11_0、11_1,其中前三個統(tǒng)稱為Direct3D 10 Level 9。
GK104