發布情況
根據
微軟公布了一份白皮書《Windows開發者預覽版中的Windows驅動模型增強》,Windows Vista DX10、Windows 7 DX11,但是接下來不會有Windows 8 DX12的組合,新一代系統只會小幅升級到DX11.1,但這並不意味著不值得期待。微軟稱,Windows 8不僅會針對開發人員提供大量的DX11更新,也會讓普通用戶和系統製造商體驗到新的樂趣。
主要改進
- 高級著色器(HLS)模型性能改進,能讓開發人員只用
GPU而無需動用CPU來做更多事:雙精度
著色器功能。
- 在移動平台和低配置設備上,基於Tile
渲染器的D3D11.1應用程式性能更高:沒有覆寫和丟棄。
- DX11.1硬體上所有著色器階段均可開啟著色器調試:每個階段都有UAV。
- D3D11程式無需為大量樣本分配記憶體即可使用高質量渲染算法:無序訪問查看與
多重採樣抗鋸齒樣本訪問。
- 針對遊戲開發人員的高效
緩衝管理:改進一致性緩衝的控制。
新特性
同以往每個版本的DirectX更新一樣,本次DirectX 11.1的更新主要圍繞兩個方面展開,分別是Debug(意為除錯)和Extended(擴展,包括功能和
編譯方式的拓展)。本次更新的主要項目如下:
・Shader tracing(shader追蹤)
・Direct3D device sharing(D3D設備共享)
・Check support of new Direct3D 11.1 features and formats(全新D3D特性支持)
・Create larger constant buffers than a shader can access(允許創建大於shader可訪問尺寸的常buffer)
・Use logical operations in a render target(對渲染目標執行邏輯操作)
・Force the sample count to create a rasterizer state(為每一個
光柵化過程強制樣本數)
・Process video resources with shaders(通過shader處理
視頻過程)
・Change subresources with new copy options(通過新的copy選項改進資源體系)
・Discard resources and resource views(放棄傳統的資源管理和資源視圖模式)
・Support a larger number of UAVs(支持大量的UAV[UnorderedAccessViews]操作)
・Bind a subrange of a constant buffer to a shader(為shader綁定作為子區間的常buffer)
・Retrieve the subrange of a constant buffer that is bound to a shader(檢索每一個綁定常buffer作為子區間的shader的常buffer子區間)
・Clear all or part of a resource view(清除所有關於資源視圖的內容)
・Map SRVs of dynamic buffers with NO_OVERWRITE(以非overwrite方式為SRVs動態buffer創建地圖)
・Use UAVs at every pipeline stage(在每條
渲染管線上使用UAV)
本次DirectX 11.1更新最大的亮點來自Core Structures部分,包括D3D11 Feature data double的DoublePrecisionFloatShaderOps和D3D11 Feature data arthitecture的TileBasedDeferredRenderer,也就是我們通常所說的DP Shader Ops以及TBDR。
DP Shader Ops
作為DirectX 11.1在桌面部分最引人注目的更新,DP Shader Ops的引入足以引發一場革命,因為它為DP Shader的實用打開了最後一道API端的大門。
DP shader(Double Precision Float Shader,雙精度浮點shader)是微軟在DirectX 11中首次引入的shader類型。與傳統的常規shader相比,DP shader的最大特點在於在shader處理數據及運算過程中全面引入雙精度規則,這讓DP shader具備了遠高於常規shader的運算精度,配合FMA的套用,DP shader可以稱得上桌面套用範圍內完全無損的shader類型。
遺憾的是,DirectX 11中所包含的DP shader部分僅僅是在
編程及數據定義規則上進行了擴展,並為引入更多的指令及執行模式。由此可見,要想讓DP shader真正走向實用,DP shader Ops的引入是必不可少的。在傳統的
光柵化過程中,全部的浮點shader數據均為
單精度,就我們套用場合來看,FP32格式的shader數據已經足以保證程式運行精度的需求,DP數據在精度上是多餘的。既然單精度FP32精度已經夠用,引入DP shader的目的何在呢?答案來自一個顯赫的名字
光線追蹤。光線追蹤對圖形進步的意義毋庸多言,其精美的效果以及重大意義幾乎每天都在被無數人無數次的重複著。按照
微軟對未來桌面圖形處理過程的規劃,光線追蹤的引入已經迫在眉睫。
在光線追蹤處理過程中,處理光線交匯的運算部分必須仰仗雙精度浮點數據來維持運算過程及結果的正確性。如果使用慣用的處理精度,光線在與物體互動作用2次以上之後將會發生不可忽略的數據溢出,如果按照常規處理過程要求的那樣讓一束光線與物體互動作用最少6~8次,甚至30~50次的話,最終結果必定已經面目全非。由此可見,要保證
光線追蹤能夠實用化並與現階段的shader體系有機的結合在一起,DP shader的引入是必不可少的。而DirectX 11.1中的DP Shader Ops,正是這一切能夠得以實現的基礎。
TBDR
DirectX 11.1的另一個更新TileBasedDeferredRenderer幾乎與桌面圖形體系完全無關。
Tile-Based Deferred Render是Power VR獨特的
TBR技術的一種延伸實現手段。TBR/TBDR通過將每一幀畫面劃分成多個矩形區域,並對區域內的所有像素分別進行Z值檢查,在任務進入渲染階段之前就將被遮擋的不可見像素剔除掉。由於在渲染之前進行Z-culling操作,TBR/TBDR極大地削減了最終被渲染像素的數量,不僅大幅降低了系統對像素的處理壓力,更極大的節約了
顯存頻寬及空間的開銷。廣泛採用TBR/TBDR技術的
GPU,主要包括Imagination為移動領域提供的SGX Series5系列。
通過DirectX 11.1的TileBasedDeferredRenderer重新對TBDR技術進行了支持,
圖形函式館接口的打開讓希望使用TBDR技術的
程式設計師獲得了在
DirectX環境下即可完成
編譯程式的機會,這對於平衡性能與功耗之間的關係,進而讓程式設計師在DirectX框架下完成移動設備程式的構造有著重要的意義。
更新目的
windows8 M3作為
開發者預覽版,其目的不僅在於為開發者提供一個能夠對新作業系統特性進行預覽的平台,實際上
微軟希望通過M3向業界及用戶傳遞的更重要的信息,在於其重整
桌面圖形業界以及跨平台的未來作業系統及圖形API發展趨勢。而這種信息的傳達,則需要藉助DirectX 11.1來進一步強化和實踐。
傳統的
光柵化處理過程從出現到今天經歷了漫長的歷史,它對於整個計算機視覺
虛擬現實技術的發展可謂貢獻良多。但由於其本身固有的諸多缺陷,比如“本沒有光卻硬要說這裡有光”的欺騙性處理方式,傳統光柵化在今天已經成了嚴重製約顯示技術進步以及特效表達的障礙。作為桌面圖形界得領導者,微軟自然首當其衝的感受到了來自技術端的限制以及需求端的壓力。尋找改進甚至替代傳統光柵化過程的處理方式,已經成了改進桌面圖形套用領域停滯不前現狀的唯一出路。因此對擁有很大優勢的
光線追蹤技術的追求,也便順理成章的成了微軟面前最好的選擇。既然要改革圖形處理過程,將光線追蹤引入甚至是納入到
光柵化處理過程當中來,為這個過程逐步打下基礎並創造條件顯然是必要的。通過DirectX 11/11.1出現並逐步完善的DP Shader,其目的便在於此。
而對於跨平台來說,
微軟的決心則更加堅定。windows8 M3的發布向世人表達了微軟繼續稱霸X86
桌面作業系統的決心之外,更向所有人傳達了一個明確的信號:微軟將以前所未有的決心開始大舉進軍移動領域。伴隨著移動領域極為旺盛的需求增長,微軟將注意力轉向該領域是理所當然的。然而移動領域不像桌面,這並不是一個微軟熟悉並且說了算的地方,這裡的天空依舊是屬於Open GL ES的,缺乏說話的地位和分量顯然是微軟極為頭疼的問題。如果微軟想要快速介入,TBDR這一Imagination在移動領域廣為使用的技術顯然會是一個很好的突破口。只要將
程式設計師成功地吸引到
DirectX的旗下,攻陷移動領域,或者起碼能夠在該領域獲得充分的話語權,進而影響該領域的發展就是遲早的事情了。因此,可以說在本次DirectX 11.1的所有更新中,最引人矚目的就是TBDR的引入。DirectX 11.1不僅有助於幫助
微軟進一步在移動領域推廣windows8,更能讓微軟進一步擴大自己的領地和影響力。
硬體支持
AMD
顯示卡方面,
南方群島架構的Radeon HD 7000系列顯示卡完整支持DirectX 11.1,而上一代
北方群島架構的Radeon HD 6000系列部分支持DirectX 11.1,但特性級別僅支持DX11.0;
NVIDIA方面,克卜勒架構的GTX 600系列支持DirectX 11.1,但不完全支持完整硬體特性級別的DirectX 11.1,而下一代的克卜勒改進架構GTX 700系列,包括GK112、GK114、GK117等核心都會完整支持硬體特性級別DirectX 11.1。