2008-09-26 79 views
7

爲了勾畫這個問題的背景:在工作中我們使用Dell Precision工作站。我目前使用的是NVidia Quadro FX1700。 我的團隊正在開發實時數據採集系統的圖形組件。 因此,我們一直在尋找是否圖形操作不佔用太多的CPU時間。對於快速檢查,我們有幾個我們運行的測試程序,它們以指定的速率(例如10 fps)繪製場景,我們使用普通的舊任務管理器來查看CPU使用情況。 其中一個程序在GDI DrawRectangle調用(已填充)上很沉重。這個程序一直用來消耗大約40%的CPU用戶時間,但大約一年左右(只是在這裏猜測),它只使用大約2-3%的內核時間。很顯然,這裏正在發生一些硬件加速。事實上,如果我關閉HW-accell,我們又回到原來的40%的用戶時間。所有這些當然都是好消息,因爲我們已經在考慮去參加OpenGL了。年復一年的GDI從未獲得硬件加速的好處。直到前一段時間。GDI已經加速。有誰知道這是什麼時候發生的?

有沒有人知道更多關於此?微軟做到了嗎?或者它是gfx卡供應商特定的?

編輯

日Thnx的答案已經(Ferrucio,Torlack和羅布·沃克),但我的問題沒有得到解答。我們在這裏談論一個填充矩形。可能是最簡單的優化功能:只需向GPU發送幾個座標並讓其翻轉即可。然而它總是在CPU端實現。 到目前爲止,答案讓我相信NVidia終於看到了光(超過10年)和加速GDI。並沒有公佈這個?根本沒有信息可以找到。 我的內部客戶問我關於圖形加速的問題,我只能說「好吧,我們很幸運」。

EDIT2

它似乎像它是根據不同的答案相關的驅動程序。那麼,NVidia多年來爲其工作站卡製作了蹩腳的GDI驅動程序。這家公司內部確實是一個公認的事實,GDI沒有加速,所有的測試都證實了這一點。

+7

我不同意接近。 GDI的使用相當廣泛,所以它的性能是相關的,即使答案恰好與一個非常具體的問題有關。 – reinierpost 2010-11-24 08:48:54

+4

儘管現在的問題已經有2.5年了,但我還是補充一點,我也不同意這個結論。對於許多編寫圖形代碼的人來說,這是一個潛在的有用的問題。 – nitro2k01 2011-04-15 04:05:23

+1

@reinierpost:您現在有足夠的聲望投票重新提出問題 - 請注意,雖然作者自己已經解決了問題,而不是人羣或主持人所期望的一見鍾情。我想事後看來(2008年10月一直是SO的早期階段......)QBziZ應該已經提交併接受了* Edit2 *作爲他自己的總結答案,而不是爲了讓答案最終得到更深入的答案而不是結束問題。這就是爲什麼我投票現在重新打開自己;) – 2012-05-29 07:24:00

回答

2

在某種程度上,GDI一直在加速。即使回到Win31的舊日,我記得買卡(Number9)的主要賣點是GDI的硬件加速。

1

Vista有一個新的display driver architecture這將提供一個顯着提高性能的機會。你比較像硬件/操作系統組合?

+0

我測試過的操作系統是XP Service Pack 2. – QBziZ 2008-09-26 23:33:29

7

GDI通過調用圖形設備驅動程序中的各種函數來工作。有一個核心的功能,每個驅動程序必須實施。其他功能可由駕駛員執行。如果不是,GDI將自己執行這些功能。

如果一個特定的功能沒有在硬件中實現,那麼驅動程序就沒有必要去執行該功能的軟件,因爲GDI可能會做得更好。 GDI非常適合性能優化。由於硬件實現的功能越來越多,這些功能不僅性能更好,而且GDI的工作量也更少,從而減少了花費在圖形上的CPU時間。

也可能出現這樣的情況,即顯卡供應商爲了快速地將卡推出市場,可能沒有實現該卡可以執行的所有可能的硬件功能。然後,該驅動程序的更高版本可能會實現該功能,從而提高性能。

1

許多二維的東西已經加速了一段時間,每個新的主要版本的Windows都改變了顯示驅動程序的工作方式。我相信它是在XP中,Windows改造了它的窗口管理器層。很難進行比較,因爲XP比任何早期版本更類似於Windows 2000/NT。

一些維基百科上的更多信息,Development of Windows XP

當然,Windows 2000是第一個包含DirectX的基於NT內核的Windows,並且也有一些圖形改進。 Windows 2000 (wikipedia)

我不相信在發佈之間顯示驅動程序模型/ 2D子系統發生了重大變化。所以如果你注意到這樣的變化,那很可能是由於nVidia做的事情。

5

GDI加速了一段時間。據我所知,它在一定程度上取決於你的硬件和驅動程序。爲什麼你看到這樣的表現只是最近似乎很奇怪。

但是,不要太高興 - Vista中不再支持GDI硬件加速。新的桌面組合引擎不支持它。然而,在Vista中,你確實獲得了快速移動的窗口,因爲內容並不總是需要被應用程序重新繪製(並且我認爲沒有撕裂)。