2011-07-08 4 views
1

私は、グラフを更新する(> 40)リアルタイム(30fps)というものを多用しているMDIアプリケーションに取り組んでいます。各グラフは、3Dジオメトリを潜在的にレンダリングする必要があります。私はSlimDX(それぞれ)を使用して各ウィンドウのDirect2Dを使用しようとしましたが、16以上のウィンドウを追加するとパフォーマンスが低下します。誰でもこのフィードバックが役に立つかもしれない経験がありますか?D3D10/11とMDIウィンドウを使用したパフォーマンス

  • 私は現在、ドキュメントによるとウィンドウごとに1つのスワップチェーンを持つD3D10/11 APIを使用しています。 D3D9のドキュメントでは、表示する前にウィンドウを切り替えることができます。これが推奨されます。代わりにD3D9に切り替えるだけでいいですか?スワップチェーンの切り替えに問題はありますか?
  • スワップチェーンの問題ではない場合は、D2Dをスキップして自分自身の頂点バッファを管理し、D3Dを使ってレンダリングするほうがよいでしょうか?

よろしくお願いいたします。

+0

はい、私はそれをやっています。 [さまざまなモジュール(タイミング、ヒープ割り当てなど)のスパイクを検出するシステムなので、不正なシステムを見つけるためには多数のウィンドウが必要です。] –

答えて

0

大きなウィンドウ/コンテキストを> 40個のセルに分割し、それぞれにグラフを描画してどのようなパフォーマンスを得るのですか(シザーテストを使用してセル境界を適用できますか?

これが貧弱な場合は、複雑さを軽減したり、描画を最適化する必要があります。

1つのウィンドウですべてのコンテンツをすばやくレンダリングできる場合は、1つのウィンドウで処理することを検討してください。独自の最大化/ドラッグ可能なスプリッタの動作を実装することはそれほど難しいことではありません。

+0

はい、これは計画Bです。私はそれがパフォーマンスヒットを持っていないだろうと思います。しかし、それで、個々のグラフのサイズを変更する、組み込みのコンテキストメニュー、ウィンドウを閉じる/最小化する、そして私が必要とする最も重要なもの、履歴を見るためのスクロールバーなど、ウィンドウの組み込みの細かさを失う。私は各機能のホイールを書き換えなければならないでしょう... –

+0

@RCaloca:Windowsの組み込みのスクロールバーとボタンコントロールを、その機能の少なくとも一部に使用してみてください。子コントロールからの複雑なクリッピングは、非常に多くの別個のコンテキストほど多くのパーフェクトヒットを引き起こすことがあります。 –