2010-05-30 52 views
5

我必須在具有與intel gma 3000圖形芯片(onbard,Q963/Q965)相同的所有dell-pc的環境中運行wpf-app。該應用程序呈現只與軟件渲染(說得這麼用性能工具包的RenderCapability.Tier - 屬性,也Perforator可見。如何知道圖形卡是否爲wpf提供硬件渲染

在所有這些機器,安裝的DirectX 9c和輸入dxdiag在許多國家,但不是所有的這機器,Direct-3d和Direct-Draw-Accelerator被激活,我也檢查了註冊表,如果這些機器的設置禁用wpf-hw渲染,但事實並非如此,在一臺機器上,我還更新了視頻驅動程序和dx與

沒有成功。如果我解釋資源的權利,然後在已安裝的DirectX 9C(和D3D加速激活)的PC,也WPF硬件渲染髮生。 但在機器上面安裝了DX9C, H不過沒有硬件渲染。根據丹尼爾伯爾尼提供的規範,我也認爲至少在第1層渲染必須是可能的和主動的。

我不能說的唯一的事情就是內存,因爲圖形系統動態地分配系統內存並且沒有自己的內存。 如何找出特定的圖形芯片是否必須支持wpf的硬件渲染。這是否因爲使用活動的DirectX 9c還支持harware渲染?或者是否還有其他需要滿足的要求?dx9c需要進一步完善? 第二個問題是,如果wpf通過dx渲染,是通過direct-3d完成還是直接使用。關於這個話題有沒有很好的文檔?


原來的客戶PC的直接-3D加速活躍(在輸入dxdiag),howewer不起作用。測試直接3d的測試程序總是以錯誤結束。這使問題成爲支持問題,我將在涉及的公司支持部門打開一張票。

有關dx的哪個組件可用於在硬件中呈現wpf的問題可以如下回答: 通過媒體集成層(MIL)完成呈現。如果DirectX(適當的版本)可用且可操作,MIL將所有渲染命令直接寫入D3D。另外,DirectShow(或其後繼者)用於處理視頻。 媒體集成層是非託管代碼,似乎只有很少的文檔。

上述事實讓我產生了這樣的看法,即活躍的DirectX9c是一個明確的指示器,表明wpf可以並將會發生。因此芯片支持hw-rendering的問題可以通過檢查芯片是否支持dx9c(用於第2層渲染)來進行響應。 要求規範可以找到here(感謝丹尼爾伯爾尼)。

UPDATE

之所以D3D和硬件渲染並未在上述情況下的工作是登記鏡子視頻驅動程序提供遠程終端服務,如網絡會議做一個應用程序(這是軟件從支持部門,用於遠程管理客戶端PC)。 禁用這個鏡像驅動程序導致功能直接3d,從而發生WPF硬件呈現。然而,渲染級別只有1級(我認爲是因爲視頻內存的限制)。

我希望這篇文章能夠幫助其他有類似問題的人。

這裏是一些鏈接進入專題:

WPF Architecture OverviewHardware Acceleration in WPFIntroducing Direct2DAdvanced WPF Application Performance Tuning and AnalysisRenderCapability.Tier returns not the render mode

回答