深度解讀 - Windows 7核心圖形架構(gòu)細(xì)致分析

2009/9/26 10:30:12    編輯:Windows7之家 - Mary Jane     字體:【

Win7之家afsion.com.cn):深度解讀 - Windows 7核心圖形架構(gòu)細(xì)致分析

如現(xiàn)在大家所想的那樣,Windows7其實(shí)是Windows Vista的改進(jìn)版。Windows 7在Windows Vista的基礎(chǔ)上進(jìn)行了大量的完善工作,也加入了不少新特性。Vista與其上一代XP相比,提供了非常大的改進(jìn),然而一方面這些改進(jìn)過于巨大,用戶乃至相應(yīng)軟件廠商(如,DirectX 10應(yīng)用開發(fā)商)一時(shí)無(wú)法完全接受,另一方面,由于特性的不完全具備,Vista的表現(xiàn)沒有想象之中的那么好。到了Windows 7,包括操作系統(tǒng)本身、軟件廠商和用戶都已經(jīng)做好了準(zhǔn)備,因此反響比Vista更好也就不難理解了。

圖形界面一直是Windows系統(tǒng)的核心,而從Windows Vista開始,Windows就開始將提供一個(gè)富圖形化的桌面圖形界面作為要目,不僅僅是因?yàn)閂ista和7的桌面本身就是一個(gè)3D應(yīng)用程序,而是因?yàn)?Vista和7可以更好地發(fā)揮圖形加速硬件的作用。從Windows Vista到Windows7,操作系統(tǒng)與GPU的結(jié)合越來(lái)越緊密。




雖然人們經(jīng)?梢月牭Windows7的大更新在于一個(gè)DirectX 11.0 API,然而對(duì)于Windows系統(tǒng)的圖形架構(gòu)來(lái)說(shuō),雖然DirectX也很重要,不過這還不是全部。一個(gè)圖形架構(gòu)包括了如何利用GPU加速各種各樣的圖形應(yīng)用(2D、3D、打印等)、如何顯示到最終顯示設(shè)備上,以及包括設(shè)備檢測(cè)、控制。Window 7在圖形架構(gòu)方面的更新主要有如下方面:

WDDM 1.1:新的驅(qū)動(dòng)模型
DirectX 11:更新的Direct3D 11,以及相關(guān)的新Direct2D API
DXVA-HD:高清視頻回放加速
顯示設(shè)備連接和配置
色彩管理
高DPI輸出和可讀性
多GPU系統(tǒng)
聯(lián)合顯示適配器(又叫聯(lián)合渲染)

下面,會(huì)就這些改進(jìn)進(jìn)行簡(jiǎn)單的介紹。


Windows 7核心圖形架構(gòu)

Windows應(yīng)用程序使用各種如GDI(Graphics Device Interface,2D時(shí)代系統(tǒng)的主要圖形接口)、Direct3D、OpenGL這樣的API和系統(tǒng)圖形組件通信,而系統(tǒng)組件通過WDDM(Windows Display Driver Model,又名Longhorn Display Driver Model)與硬件交互,從Vista起,Windows就采用了和XP使用的XPDM不同的新的驅(qū)動(dòng)模型:WDDM,使用的驅(qū)動(dòng)模型在很大程度上決定了一個(gè)系統(tǒng)的圖形特性。Vista使用的WDDM版本為1.0,而Windows7使用的改進(jìn)版本為WDDM 1.1。


WDDM 1.1帶來(lái)的改動(dòng)挺多的,下面我們先來(lái)看看WDDM 1.0相對(duì)XPDM的改動(dòng),也就是Vista相對(duì)XP的改動(dòng)

 

XPDM:非合成模型
 

WDDM:合成模型
 
在垂直同步之謎 XP/Vista與3D性能測(cè)試中, 筆者解釋過XP/Vista的模型的不同之處,在WDDM模型下,所有的應(yīng)用程序生成的顯示畫面最后會(huì)在DWM(Desktop Windows Manager,桌面窗口管理器)內(nèi)進(jìn)行合成為單一的最后輸出畫面,因此獲得了更好的顯示效果(天生的所有程序垂直同步)、額外效果(縮略圖、縮放)以及 可以支持更大的左面,不過,原始的WDDM 1.0只是實(shí)現(xiàn)了這個(gè)大架構(gòu)上的轉(zhuǎn)換,細(xì)節(jié)上仍未夠完美:
 

在Vista下,GDI(繪制通常的2D窗口的API,此外還有很多其他圖形操作使用GDI)和DirectX(3D應(yīng)用API)具有著不同的處理方 法:Direct3D是硬件加速的,而GDI則不是(GDI在XPDM時(shí)是硬件加速的),因此Vista用戶在一些圖形程序上會(huì)感到比XP慢;而且GDI 應(yīng)用程序先經(jīng)過CPU軟件處理到系統(tǒng)內(nèi)存上,再傳輸?shù)?span id="hhwgzmp" class="nounderline">顯卡驅(qū)動(dòng)分配的GDI顯存區(qū)域上(也在系統(tǒng)內(nèi)存當(dāng)中),再由DWM負(fù)責(zé)將畫面合成輸出到顯示器

Windows 7當(dāng)中,GDI獲得了硬件加速(這個(gè)見下面)——不過在混合使用GDI和Direct3D API的時(shí)候,GDI仍然無(wú)法硬件加速,不過,GDI直接輸出到驅(qū)動(dòng)的GDI顯存區(qū)域,減少了一個(gè)步驟,同時(shí)降低了內(nèi)存消耗(同時(shí)對(duì)混用的 Direct3D API也有效);顯然,混合食用API來(lái)進(jìn)行圖形編程并不是一個(gè)好主意(當(dāng)然,同時(shí)使用GDI和Direct3D意味著這個(gè)是一個(gè)老的、窗口模式的3D應(yīng) 用程序,如Windows模式的老3D游戲)

老的WDDM 1.0處理GDI應(yīng)用程序就如前面說(shuō)過的一樣


而在Windows 7 WDDM 1.1模型當(dāng)中,單獨(dú)的GDI將會(huì)通過WDDM與GPU進(jìn)行硬件加速,同時(shí)經(jīng)過GDI顯存區(qū)域輸出到DWM,表現(xiàn)在實(shí)際操作上,就是大部分窗口操作都變得 比Vista更流暢,日常工作更快捷(大部分2D應(yīng)用程序都使用了GDI API,因?yàn)镚DI包括的內(nèi)容太多,因此必須對(duì)其保持兼容;關(guān)于GDI,后面還有相關(guān)內(nèi)容)


Windows XP的Direct3D/GDI驅(qū)動(dòng)架構(gòu)


Windows Vista核心圖形架構(gòu),比起XP來(lái)要豐富了很多

Windows 7核心圖形架構(gòu),老的GDI/GDI+仍被單獨(dú)支持,不過,Windows 7提供了它們對(duì)應(yīng)功能的新的實(shí)現(xiàn)方法相比Vista帶的DirectX 10,Windows 7自帶了DirectX 11,和WDDM 1.0到1.1的變化不同,DirectX 11的版本號(hào)表示其變化更大一些。Windows 7 DirectX 11改變了以往的工作模式,將Direct3D 10.1升級(jí)到Direct3D 11,同時(shí)將以前Vista無(wú)法硬件加速的GDI/GDI+的工作重新劃分、引入新的Direct2D和DirectWrite API來(lái)完成:

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

Direct2D:
硬件加速的即時(shí)模式2維圖形API,它在2維幾何圖形、位圖和文本方面有著較高的性能和質(zhì)量。Direct2D API是設(shè)計(jì)與GDI、GDI+和Direct3D之間進(jìn)行互操作的。

DirectWrite:
DirectWrite提供高質(zhì)量的文本呈現(xiàn)、具有獨(dú)立分辨率的輪廓字體、完整的Unicode文本以及布局支持。在使用Direct2D的時(shí)候,DirectWrite是硬件加速的。

當(dāng)系統(tǒng)不支持Direct3D 10的時(shí)候,Windows 7會(huì)通過一個(gè)額外的10Level9軟件層使用D3D9來(lái)完成工作,顯然,為了最好的效率,你需要使用Direct3D10的顯卡,因?yàn)閃indows 7的DWM基于Direct3D 10


字體抗鋸齒:DirectWrite效果

Direct3D 11

Windows 7帶的Direct3D 11是D3D10的超集,它的特點(diǎn)是可以同時(shí)支持運(yùn)行在Direct3D9和Direct3D10.1硬件上,實(shí)際上,DirectX 11會(huì)提供Vista的支持,而不是像Direct 10出來(lái)時(shí)那樣,只支持Vista而無(wú)法兼容上一代系統(tǒng),這導(dǎo)致了軟件開發(fā)廠商們向DirectX 10轉(zhuǎn)移的緩慢。DirectX 11支持多個(gè)硬件平臺(tái)和多種操作系統(tǒng)的 特性讓其更容易被接受。同時(shí)Direc3D 11本身也具有這不少的改進(jìn),這一點(diǎn)會(huì)有專文討論(計(jì)劃中),這里先談?wù)揥indows 7對(duì)整個(gè)圖形操作的改進(jìn),通過更多地將GDI/GDI+納入DirectX體系獲得硬件加速,圖形界面的性能會(huì)越來(lái)越好(當(dāng)然,這需要軟件廠商們使用新的 Direct2D/DirectWrite進(jìn)行編寫)。微軟希望將所有的圖形操作都構(gòu)建在DirectX之上。

通過Vista中缺失的GDI硬件加速納入到DirectX體系中重新獲得硬件加速,并且性能要更快;未來(lái)顯卡廠商們將不再需要提供GDI加速

顯示技術(shù) 


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

Windows 7使用默認(rèn)的sRGB色彩空間作為所有設(shè)備都統(tǒng)一的工作流,但是精度提升到30位——每一個(gè)色彩通道都增加了兩位;Windows 7最高支持48位的scRGB模式,高精度+擴(kuò)展范圍+高動(dòng)態(tài)

 

WDDM 1.1要求驅(qū)動(dòng)支持BGRA,BGRA是最快的色彩格式
 
顯示設(shè)備連接和配置 
 

在Windows 7中,所有的應(yīng)用程序都在一個(gè)統(tǒng)一的虛擬桌面中顯示,這個(gè)虛擬桌面分辨率為64Kx64K(65536x65536)
 

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


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

在LDA配置下,程序界面在不同的輸出中漫游基本上是透明的,叫做Dynamic adapter switching動(dòng)態(tài)適配器切換

在多顯示器下,Windows 7提供了一個(gè)新的全局快捷鍵功能:Win + P,可以快速設(shè)置多顯示器工作狀態(tài),這個(gè)快捷鍵本來(lái)是特地為了投影儀應(yīng)用而設(shè)計(jì)

總的來(lái)說(shuō),Windows 7的圖形架構(gòu)比起Vista來(lái)更加完善,應(yīng)用也更加方便。最明顯的就是GDI API的變遷了,現(xiàn)在GDI應(yīng)用程序也獲得了硬件加速,就如同XP下一樣,比其Vista下只能處理器來(lái)進(jìn)行處理,因此用戶們可以感覺到日常應(yīng)用會(huì)更加流暢。

文/IT168