2011-01-27 10 views
12

私のチームは、Intel Atom Z530ネットブックハードウェアプラットフォームに展開するWPFアプリケーションを開発中です。 Intel Atom Z530には、PowerVR SGX 535 GPUコアを搭載したIntel GMA 500統合グラフィックスが付属しています。 PowerVR SGX 535 GPUコアは、AppleのA4チップセットで使用されている正確なグラフィックスコアです。GMA 500統合グラフィックスでWPFパフォーマンスが遅い

私の質問: なぜPowerVR SGX 535グラフィックスでWPFが遅いのですか?

実際には、WPFアプリケーションのハードウェアアクセラレーションをオフにして、より良いパフォーマンス(画面遷移、ダイアログ遷移、2Dグラフィックスの対話)を実現します。 iPadテクノロジスタックは、同じハードウェアグラフィックスコアでより優れたUIパフォーマンスを実現できます。

ありがとうございました!

+0

私はビデオドライバを最新バージョンのDirectXでアップデートしようとしましたが、.Net 4をインストールしようとしましたか(多分いくつかのバグを解決して、 .net 3.5)、Win7を使ってこのデバイスのパフォーマンスが向上しているかどうかを確認します。 – Tony

+0

ドライバコメントをありがとう。インテルXP GMA 500ドライバとIEGDドライバの両方を試しました。両方とも同様のパフォーマンスを示します。しかし、私たちはIEGDドライバで素晴らしいOpenGLパフォーマンスを見つけました。 – Bjorn

+0

Intelは、GMA 500ドライバには修正を予定していないWPF固有のバグがあると言いました。 WPFはグラフィックスパイプライン上のすべての画面レイアウトを行うので、GMA 500パイプラインはWPFにとって小さすぎると聞いています。 GMA 500は3Dワークロードしか期待しておらず、すべてのスクリーンレンダリングの責任を追いつかない。 – Bjorn

答えて

1

WPFが設計段階と最初の実装段階にあったときに、それらのグラフィックを持つAtomプロセッサが決して考慮されていなかったのはほぼ確実です。 WPFは、GMA 500グラフィックスが出現するずっと前の5年前に開発されました。

軽量環境向けに設計されたSilverlight 4スタックを使用すると、より良い結果が得られる場合があります。 WPFで可能なことの多くは、Silverlightで類似または同一です。 WPFの3Dグラフィックスやその他の機能を使用していない場合は、少なくともXAMLのポートを簡単に取得できます。

+0

"パフォーマンスの低い"統合グラフィックソリューションは、ほとんどいつでも使われていました: - しかし、WPFは何らかの性能を備えたハードウェアスタック向けに設計されていました。関連するメモでは、ホスト環境とパススルー(例:GDI <-> DX、使用されている場合)が大きな違いになります。私はWindows 7が余分な長いパイプラインの問題のいくつかを修正したと思います。 –

+0

彼らはそれが本当ですが、MicrosoftのAvalon(後でWPF)の人々はそれらを対象としませんでした。彼らはほとんどすぐに軽量ソリューションのSilverlightを提供するようになりました。 –

+0

Silverlightのお勧めに感謝します。私たちのプロジェクトは現時点でWPFにコミットしており、現時点では切り替えられるオプションはありません。 – Bjorn

2

Windows Embedded Standard 7の.Net 4を実行していますか?私はWPFがXPよりもWindows 7のほうがはるかに優れていることを発見しました。

具体的なパフォーマンス上の問題は何ですか?

アニメーションの場合は、キャッシュされたコンポジション(.Net 4の機能)を使用して、アニメーションの対象となる背景にBitmapCacheを適用してみてください。また、使用するすべてのブラシを共有してフリーズしてください。

図形描画の場合は、図形や他の高層建築物を使用する代わりに、DrawingVisualsにドロップします。最後の手段としてGDI +を使用してWriteableBitmapsを描画することもできます。

また、デュアルコアのAtomsは、私の経験では、よりスムーズなWPF UIを提供します。可能であれば、Atom D510またはD525を試してください。彼らはより多くのパワーを使用し、より多くの熱を放ちますが、ユーザーエクスペリエンスの向上は私の製品にとって価値がありました。

iOSアプリはネイティブコードであることに注意してください。 WPFは、特にハードウェアリソースが限られている場合には、パフォーマンスが全体的に低速で、遥かに高いレベルの抽象化と非常に高速な開発を提供します。

+0

Windows Embedded Standard 2009で.NET 3.5 SP1を実行しています。 – Bjorn

+0

最も基本的な問題は、画面から画面への遷移です。基本画面(TextBlock、ラベル、テキストボックス、ボタン、グリッド)のレイアウトとレンダリングには1秒以上かかります。 – Bjorn

2

私は、XP上のすべてのGMAチップセットがひどいWPF性能を持つことを発見しました。フレームレートが低いだけでなく、ひどいグラフィカルなグリッチやアーティファクトがあります。表面が透けて見えるようになり、ビデオの表面が乱雑になり、マウスのオーバーがきつくなります。

私たちのソリューションは、問題のあるお客様に提供するレジストリパッチを使用して、ハードウェアアクセラレーションを無効にすることです。

関連する問題