深度解讀 – Windows 7核心圖形架構細緻分析貼)

來源:互聯網
上載者:User

原帖地址:http://technet.microsoft.com/zh-cn/library/ee921514.aspx

      如現在大家所想的那樣, Windows7 其實是 Windows Vista 的改進版。 Windows 7 在 Windows Vista 的基礎上進行了大量的完善工作,也加入了不少新特性。 Vista 與其上一代 XP 相比,提供了非常大的改進,然而一方面這些改進過於巨大,使用者乃至相應軟體廠商(如, DirectX 10 應用開發商)一時無法完全接受,另一方面,由於特性的不完全具備, Vista 的表現沒有想象之中的那麼好。到了 Windows 7 ,包括作業系統本身、軟體廠商和使用者都已經做好了準備,因此反響比 Vista 更好也就不難理解了。
     圖形介面一直是 Windows 系統的核心,而從 Windows Vista 開始, Windows 就開始將提供一個富圖形化的案頭圖形介面作為要目,不僅僅是因為 Vista 和 7 的案頭本身就是一個 3D 應用程式,而是因為 Vista 和 7 可以更好地發揮圖形加速硬體的作用。從 Windows Vista 到 Windows7 ,作業系統與 GPU 的結合越來越緊密。


      雖然人們經常可以聽到 Windows7 的大更新在於一個 DirectX 11.0 API ,然而對於 Windows 系統的圖形架構來說,雖然 DirectX 也很重要,不過這還不是全部。一個圖形架構包括了如何利用 GPU 加速各種各樣的圖形應用( 2D 、 3D 、列印等)、如何顯示到最終顯示裝置上,以及包括裝置檢測、控制。

 

Window 7 在圖形架構方面的更新主要有如下方面:


WDDM 1.1 :新的驅動模型
DirectX 11 :更新的 Direct3D 11 ,以及相關的新 Direct2D API
DXVA-HD :高清視頻回放加速
顯示裝置串連和配置
色彩管理
高 DPI 輸出和可讀性
多 GPU 系統
聯合顯示適配器(又叫聯合渲染)
下面,會就這些改進進行簡單的介紹。

Windows 7 核心圖形架構

       Windows 應用程式使用各種如 GDI ( Graphics Device Interface , 2D 時代系統的主要圖形介面)、 Direct3D 、 OpenGL 這樣的 API 和系統圖形組件通訊,而系統組件通過 WDDM ( Windows Display Driver Model ,又名 Longhorn Display Driver Model )與硬體互動,從 Vista 起, Windows 就採用了和 XP 使用的 XPDM 不同的新的驅動模型: WDDM ,使用的驅動模型在很大程度上決定了一個系統的圖形特性。 Vista 使用的 WDDM 版本為 1.0 ,而 Windows7 使用的改進版本為 WDDM 1.1 。


WDDM 1.1 帶來的改動挺多的,下面我們先來看看 WDDM 1.0 相對 XPDM 的改動,也就是 Vista 相對 XP 的改動


XPDM :非合成模型


WDDM :合成模型

      在垂直同步之謎 XP/Vista 與 3D 效能測試中,筆者解釋過 XP/Vista 的模型的不同之處,在 WDDM 模型下,所有的應用程式產生的顯示畫面最後會在 DWM ( Desktop Windows Manager ,桌面視窗管理員)內進行合成為單一的最後輸出畫面,因此獲得了更好的顯示效果(天生的所有程式垂直同步)、額外效果(縮圖、縮放)以及可以支援更大的左面,不過,原始的 WDDM 1.0 只是實現了這個大架構上的轉換,細節上仍未夠完美:

      在 Vista 下, GDI (繪製通常的 2D 視窗的 API ,此外還有很多其他圖形操作使用 GDI )和 DirectX ( 3D 應用 API )具有著不同的處理方法: Direct3D 是硬體加速的,而 GDI 則不是( GDI 在 XPDM 時是硬體加速的),因此 Vista 使用者在一些圖形程式上會感到比 XP 慢;而且 GDI 應用程式先經過 CPU 軟體處理到系統記憶體上,再傳輸到顯卡驅動分配的 GDI 顯存地區上(也在系統記憶體當中),再由 DWM 負責將畫面合成輸出到顯示器

       Windows 7 當中, GDI 獲得了硬體加速(這個見下面) —— 不過在混合使用 GDI 和 Direct3D API 的時候, GDI 仍然無法硬體加速,不過, GDI 直接輸出到驅動的 GDI 顯存地區,減少了一個步驟,同時降低了記憶體消耗(同時對混用的 Direct3D API 也有效);顯然,混合食用 API 來進行圖形編程並不是一個好主意(當然,同時使用 GDI 和 Direct3D 意味著這個是一個老的、視窗模式的 3D 應用程式,如 Windows 模式的老 3D 遊戲)

老的WDDM 1.0 處理GDI 應用程式就如前面說過的一樣

        而在 Windows 7 WDDM 1.1 模型當中,單獨的 GDI 將會通過 WDDM 與 GPU 進行硬體加速,同時經過 GDI 顯存地區輸出到 DWM ,表現在實際操作上,就是大部分視窗操作都變得比 Vista 更流暢,日常工作更快捷(大部分 2D 應用程式都使用了 GDI API ,因為 GDI 包括的內容太多,因此必須對其保持相容;關於 GDI ,後面還有相關內容)


Windows XP 的Direct3D/GDI驅動架構


Windows Vista 核心圖形架構,比起XP 來要豐富了很多

      Windows 7 核心圖形架構,老的 GDI/GDI+ 仍被單獨支援,不過, Windows 7 提供了它們對應功能的新的實現方法相比 Vista 帶的 DirectX 10 , Windows 7 內建了 DirectX 11 ,和 WDDM 1.0 到 1.1 的變化不同, DirectX 11 的版本號碼表示其變化更大一些。 Windows 7 DirectX 11 改變了以往的工作模式,將 Direct3D 10.1 升級到 Direct3D 11 ,同時將以前 Vista 無法硬體加速的 GDI/GDI+ 的工作重新劃分、引入新的 Direct2D 和 DirectWrite API 來完成:

      以前的圖形操作大部分由 Diredt3D 和 GDI/GDI+ 完成(此外還有一個 WIC——Windows Image Component ,管理掃描、列印和圖形解碼等工作),而在 Vista 當中, GDI 是無法硬體加速的 —— 因此 Vista 顯得很慢,在 Windows 7 中, GDI 的工作除了通過 WDDM 模型的改變獲得硬體加速之外,它們還按照面向的應用重新劃分為 Direct2D ( 2D 加速)、 DirectWrite (文本處理)和 DXGI 1.1 (裝置控制),這些新的 API 或者新分配到的 API 具有著硬體加速,例如, Direct2D 就實際上是通過 Direct3D 10 來完成加速:

Direct2D
     硬體加速的即時模式 2 維圖形 API ,它在 2 維幾何圖形、位元影像和文本方面有著較高的效能和品質。 Direct2D API 是設計與 GDI 、 GDI+ 和 Direct3D 之間進行互操作的。

DirectWrite
    DirectWrite 提供高品質的文本呈現、具有獨立解析度的輪廓字型、完整的 Unicode 文本以及布局支援。在使用 Direct2D 的時候, DirectWrite 是硬體加速的。

     當系統不支援 Direct3D 10 的時候, Windows 7 會通過一個額外的 10Level9 軟體層使用 D3D9 來完成工作,顯然,為了最好的效率,你需要使用 Direct3D10 的顯卡,因為 Windows 7 的 DWM 基於 Direct3D 10


字型消除鋸齒:DirectWrite 效果


Direct3D 11

       Windows 7 帶的 Direct3D 11 是 D3D10 的超集,它的特點是可以同時支援運行在 Direct3D9 和 Direct3D10.1 硬體上,實際上, DirectX 11 會提供 Vista 的支援,而不是像 Direct 10 出來時那樣,只支援 Vista 而無法相容上一代系統,這導致了軟體開發廠商們向 DirectX 10 轉移的緩慢。     

      DirectX 11 支援多個硬體平台和多種作業系統的特性讓其更容易被接受。同時 Direc3D 11 本身也具有這不少的改進,這一點會有專文討論(計劃中),這裡先談論 Windows 7 對整個圖形操作的改進,通過更多地將 GDI/GDI+ 納入 DirectX 體系獲得硬體加速,圖形介面的效能會越來越好(當然,這需要軟體廠商們使用新的 Direct2D/DirectWrite 進行編寫)。微軟希望將所有的圖形操作都構建在 DirectX 之上。

通過 Vista 中缺失的 GDI 硬體加速納入到 DirectX 體系中重新獲得硬體加速,並且效能要更快;未來顯卡廠商們將不再需要提供 GDI 加速。

顯示技術

     Windows 7 支援一系列的顯示技術,包括將數字輸出作為原生輸出(支援 HDMI 和 DisplayPort ,而老的 VGA 類比輸出被建議棄用), Windows 7 還原生支援更多的內容來源,如 Blu-Ray 、 JPEG-XR 、 HDR 圖片等。

     Windows 7 使用預設的 sRGB 色彩空間作為所有裝置都統一的工作流程,但是精度提升到 30 位 —— 每一個色彩通道都增加了兩位; Windows 7 最高支援 48 位的 scRGB 模式,高精度+擴充範圍+高動態


WDDM 1.1 要求驅動支援BGRA BGRA 是最快的色彩格式

顯示裝置串連和配置


Windows 7 中,所有的應用程式都在一個統一的虛擬桌面中顯示,這個虛擬桌面解析度為64Kx64K 65536x65536

      虛擬桌面按照顯示器分為不同的視圖,每一個視圖對應一個適配器;一個適配器並不意味著一塊顯卡,一塊顯卡串連多個顯示器的時候,它就含有多個適配器,類似地, SLI 或者 CrossFireX 串連的單顯示器就意味著其是一個單一的適配器(從 Vista 開始加入,叫做 Linked-Adapter 特性)。


不過,在Vista 下,無法使用多塊不同GPU 廠商的顯卡,而Windows 7 則可以

在 LDA 配置下,程式介面在不同的輸出中漫遊基本上是透明的,叫做 Dynamic adapter switching 動態配接器切換

     在多顯示器下, Windows 7 提供了一個新的全域快速鍵功能: Win + P ,可以快速設定多顯示器工作狀態,這個快速鍵本來是特地為了投影儀應用而設計

    總的來說, Windows 7 的圖形架構比起 Vista 來更加完善,應用也更加方便。最明顯的就是 GDI API 的變遷了,現在 GDI 應用程式也獲得了硬體加速,就如同 XP 下一樣,比其 Vista 下只能處理器來進行處理,因此使用者們可以感覺到日常應用會更加流暢。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.